assume cs:code,ds:data
data segment
dd 100001
dw 100
dw 0
data ends
;这个程序是在记事本里写的!!!
code segment
start:
mov ax,data
mov ds,ax
mov ax,ds:[0] ;为什么不加ds:测试结果不对
mov dx,ds:[2] ;同上(默认不是ds段吗?)
div word ptr ds:[4] ;同上
mov ds:[6],ax ;同上
mov ax,4c00h
int 21h
code ends
end start
=====================================================================================
问题:
当不加ds时,debug调试到mov ax,[0]时,计算机指令改变了(变成了:mov ax,0000),导致结果错误!!
[0]不代表地址了???计算机默认ax的段地址可是ds啊!!!原因是什么啊???
===================================================================================== |