adong 发表于 2017-1-28 12:48:10

王爽实验5.5编译出现错误不知道是啥请大神看下

本帖最后由 adong 于 2017-1-28 13:13 编辑

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 ax,c
           mov es,ax
          
           mov bl,0
           mov cx,8
          
        s: add es:,
           mov ax,b
           mov ds,ax
           add es:,
           inc bl
           loop s
          
           mov ax,4c00h
           int 21h

code ends
end start

人造人 发表于 2017-1-28 15:42:35

1. 不要用符号c,把c换成其它
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

d segment ;c换成d
db 0,0,0,0,0,0,0,0
d ends ;c换成d

code segment

start: mov ax,a
       mov ds,ax
         
         mov ax,d ; c换成d
         mov es,ax
         


2. 谁告诉你这样的指令
add es:, ;我没听说过这样的指令

adong 发表于 2017-1-28 15:55:25

感谢大神,小虾米就是该在失败中成长对吧

adong 发表于 2017-1-28 16:05:36

人造人 发表于 2017-1-28 15:42
1. 不要用符号c,把c换成其它




不过大神,你说的是没有es:[...]这样的内存寻址方式,还是说没有用低地址寻址的方式呀?
还是说不能直接用内存的寻址方式做加法?
还是说要用一个寄存器做加法后,再用寄存器去改变内存的值呀?
万分感谢

人造人 发表于 2017-1-28 16:12:53

adong 发表于 2017-1-28 16:05
不过大神,你说的是没有es:[...]这样的内存寻址方式,还是说没有用低地址寻址的方式呀?
还是说不能直接 ...

你把你列出的那几种情况都试试就知道了
也就那几种,用不了多久就试完了,试完后相信你印象深刻,很难忘却
页: [1]
查看完整版本: 王爽实验5.5编译出现错误不知道是啥请大神看下