王爽汇编第六章的一点问题??求助
assume cs:codea segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov ds,ax
mov bx,0
mov ax,b
mov es,ax
mov cx,8
s: mov al, 不要这句
add es:,al 这为什么不能改成add es:,, 是不是两个内存中的数据不能直接相加啊?? inc bx
loop s
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s0: mov al,es:
mov ,al
inc bx
loop s0
mov ax,4c00h
int 21h
code ends
end start 楼主看清楚了mov al,
addes:,al
这里是al有字节的限制啊 加的是字节 如果改成了add es:,那不就是加字了吗? 两个内存单元直接不能直接进行数据传送和运算操作的。
但是可以给内存单元直接赋值。
因此,你的ADD 指令只能通过寄存器中转进行
页:
[1]