一段代码引发的惨案!!!!^_^
assume cs:codedata segment
db 16 dup (8);重复定义16个1为字节型数据
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,16
mov bx,0
L:mov al,ds:
mov ds:,al
inc bx
loop L
mov ax,4c00h
int 21h
code ends
end start
;;将定义的十六个字节数据复制到下一行
;;为什么会调错误 调试中出现了“or ,cl”看不懂
;;最后显示效果有几个错误的数据!!!
;;8.9章节
因为你在复制的时候盖住了下面的代码段,MASM是按你写代码的顺序控制段的,data在code的上面,所以下面就是代码段,而你的data段只有16byte,当然会覆盖下面code段的内容 隐袭战龙 发表于 2014-3-10 17:29 static/image/common/back.gif
因为你在复制的时候盖住了下面的代码段,MASM是按你写代码的顺序控制段的,data在code的上面,所以下面就是 ...
它出现的“or ,cl”那是什么意思呢!就是这个指令的不解,它为啥会出现 or 指令,它出现的含义是啥? yuinitiatec++ 发表于 2014-3-15 11:32 static/image/common/back.gif
它出现的“or ,cl”那是什么意思呢!就是这个指令的不解,它为啥会出现 or 指令,它出现的含义是啥?
这个指令其实是你存进去的数据覆盖了代码段,从而导致的无意义指令,你把数据段扩充16byte就可以了
页:
[1]