crsmm03 发表于 2012-9-30 11:45:21

王爽汇编第六章的一点问题??求助

assume cs:code
a 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

乱闯 发表于 2012-9-30 21:41:43

楼主看清楚了mov al,
                        addes:,al
这里是al有字节的限制啊 加的是字节      如果改成了add es:,那不就是加字了吗?

阿卡0 发表于 2012-10-1 11:05:46

两个内存单元直接不能直接进行数据传送和运算操作的。
但是可以给内存单元直接赋值。
因此,你的ADD 指令只能通过寄存器中转进行
页: [1]
查看完整版本: 王爽汇编第六章的一点问题??求助