我编了一个很简单的程序如下(只是为尝试,请不要在功能上纠缠):
DAT SEGMENT
A1 DB ?
A2 DB 8
K1 EQU 100
DAT ENDS
COD SEGMENT
ASSUME DS:DAT,CS:COD
MOV AX,DAT
MOV DS,AX
MOV BX,100
MOV [BX],'ok'
MOV BYTE PTR DS:[106],23H
COD ENDS
END
保存为test.asm。汇编、连接后,生成test.exe。然后我运行debug.exe。先是用以下命令:
debug [driver:\path\]test.exe
后来又尝试不带文件名运行debug.exe,用以下命令加载文件:
-N [driver:\path\]test.exe
-L
不管我用哪一种方式装载程序,用-R检查寄存器却显示
-R
AX=0000 BX=0000 CX=001F DX=0000 SP=0000 SI=0000
DS=13C9 ES=13C9 SS=13D9 CS=13D9 IP=0000 NV UP EI PL NZ NA PO NC
13C9:0000 0008 ADD [BX+SI],CL DS:0000=CD
-
我的问题是:
为什么BX不是0064?
代码装到了那个地方(内存地址)?
或者我的调试方法出错了?
望各位指正!