直接将书本中那句mov cx,_给删除了,因为看论坛上说程序编译时默认会将CX赋值为整个程序长度。
用MASM5.0编译、连接,然后DEBUG程序查看,一切正常。
但是用RadASM编译,新建项目时程序类型选择的是DOSapp,模版选择的是标准dos exe模版,编译、连接顺利完成,但是对生成的可执行文件进行DEBUG,结果如下:
D:\PROGRA~1\MASM>DEBUG TEST2.EXE
-R
AX=0000 BX=0000 CX=0119 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000
DS=15CC ES=15CC SS=15DC CS=15EC IP=0000 NV UP EI PL NZ NA PO NC
15EC:0000 8CC8 MOV AX,CS
-U
15EC:0000 8CC8 MOV AX,CS
15EC:0002 8ED8 MOV DS,AX
15EC:0004 B82000 MOV AX,0020
15EC:0007 8EC0 MOV ES,AX
15EC:0009 BB0000 MOV BX,0000
15EC:000C 8A07 MOV AL,[BX]
15EC:000E 26 ES:
15EC:000F 8807 MOV [BX],AL
15EC:0011 43 INC BX
15EC:0012 E2F8 LOOP 000C
15EC:0014 B8004C MOV AX,4C00
15EC:0017 CD21 INT 21
请问为啥此时的CX=0119H,而不是0019H?
谢谢 |