tianxing9151 发表于 2011-4-29 21:41:55

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:能不能行的通啊?

故乡的风 发表于 2011-4-29 21:57:46

加法指令 ADD(Addition)

格式: ADD OPRD1,OPRD2
----

功能: 两数相加
----

说明:
      1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可 以是任意一个存储器操作数.这给程序的编写带来了很大的方便.OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数

       2. OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的         ,但不允许两个都是存储器操作数.理由是指令代码的寻址方式中规定了两个操作数(除立即数)至少有一个是寄存器操作数.


上面的是汇编金手指的解释。

tebi 发表于 2011-5-13 21:19:46

instruction operand must have size             命令操作数必须有长度
一般是不允许两个内存的内容相加的,要指定长度:byte ptr/word ptr,但一般加了还是有错误的。所以一般不用内存+内存。
页: [1]
查看完整版本: instruction operand must have size 这是什么问题造成的?