为何存入的数据会发生错误???
assume cs:codedata segment
db 16 dup (1);重复定义16个1为字节型数据
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,16
mov bx,16
mov si,0
L:mov al,ds:
mov ds:,al
add dl,ds:
inc si
loop L
mov ax,4c00h
int 21h
code ends
end start
;;将定义的十六个字节数据复制到下一行
;;调试成功!!!!!!不过有差错出现了一些乱数据
;;dup的使用!!!
;;8.9章节,这个程序有点小小的问题!!!这是怎么回事,那里出现问题呢?
assume cs:code
data segment
db 16 dup (1);重复定义16个1为字节型数据
db 16 dup (0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,16
mov bx,16
mov si,0
L:mov al,ds:
mov ds:,al
add dl,ds:
inc si
loop L
mov ax,4c00h
int 21h
code ends
end start 楼主想知道为什么会这样吗?我加了db 16 (0)就能正确运行了,是因为代码段是紧跟在数据段的后面。
楼主可以调试一下。看看,所以当你在拷贝数据的时候就会覆盖代码段的内容。楼主可以试试!
枫界易城 发表于 2014-3-1 22:07 static/image/common/back.gif
楼主想知道为什么会这样吗?我加了db 16 (0)就能正确运行了,是因为代码段是紧跟在数据段的后面。
楼主可 ...
它所覆盖的数据是从偏移地址16开始的么? 恩恩,是这样的!
页:
[1]