jackonly 发表于 2017-5-9 21:52:00

汇编的一个小问题

我的汇编代码是这样的
assume cs:abc

abc segment

start: mov ax,0ffffh
           mov ds,ax
           mov ax,0020h
           mov es,ax
           mov cx,6
           mov ax,0
        lo:mov dx,ds:
           mov es:,dx
           inc ax
           inc ax
           loop lo
          
           mov ax,4c00h
           int 21h
abc ends

end start

然后编译的时候出错了,提示如下
1.asm(11) : error A2031: must be index or base register
1.asm(12) : error A2031: must be index or base register

好像是不能用ax作为递增的寄存器,为什么呢?

jackonly 发表于 2017-5-9 21:53:22

求各位大大解释一下,为什么上面用了ax,下面就不能用ax了,我把递增换成dx就不报错了!!!为什么呢?

jackonly 发表于 2017-5-9 21:54:26

jackonly 发表于 2017-5-9 21:53
求各位大大解释一下,为什么上面用了ax,下面就不能用ax了,我把递增换成dx就不报错了!!!为什么呢?

说错了,是换成bx

人造人 发表于 2017-5-9 21:59:36

jackonly 发表于 2017-5-9 21:54
说错了,是换成bx

正常,ax寄存器不能参与寻址

jackonly 发表于 2017-5-9 22:06:58

人造人 发表于 2017-5-9 21:59
正常,ax寄存器不能参与寻址

哦哦,谢谢啦
页: [1]
查看完整版本: 汇编的一个小问题