instruction operand must have size 这是什么问题造成的?
本帖最后由 loop 于 2011-5-14 19:25 编辑assume cs:code
a segment
db1,2,3,4,5,6,7,8
a ends
b segment
db1,2,3,4,5,6,7,8
b ends
dsegment
db0,0,0,0,0,0,0,0
dends
code segment
start:mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,d
mov ss,ax
mov sp,25
mov cx,8
mov bx,0
s:add ds:,es:
push ds:
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start小甲鱼老师帮忙看一下这样写的程序为什么编译不了?
这是实验5第5小题,我知道这样写的是跟题目要求的不一样~~我就是想看看 add ds:,es:能不能行的通啊? 加法指令 ADD(Addition)
格式: ADD OPRD1,OPRD2
----
功能: 两数相加
----
说明:
1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可 以是任意一个存储器操作数.这给程序的编写带来了很大的方便.OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数
2. OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的 ,但不允许两个都是存储器操作数.理由是指令代码的寻址方式中规定了两个操作数(除立即数)至少有一个是寄存器操作数.
上面的是汇编金手指的解释。 instruction operand must have size 命令操作数必须有长度
一般是不允许两个内存的内容相加的,要指定长度:byte ptr/word ptr,但一般加了还是有错误的。所以一般不用内存+内存。
页:
[1]