(1) 将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。
assume cs:codesg
codesg segment
mov ax,2000h
mov ss,ax
mov sp,10
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00h
int 21h
codesg ends
end
(2) 用debug跟踪t1.exe的执行过程,写出没一步执行后,相关寄存器中的内容和栈顶的内容。
D:\text>debug t1.exe
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=144B CS=144B IP=0000 NV UP EI PL NZ NA PO NC
144B:0000 B80020 MOV AX,2000
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=144B CS=144B IP=0003 NV UP EI PL NZ NA PO NC
144B:0003 8ED0 MOV SS,AX
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=0008 NV UP EI PL NZ NA PO NC
144B:0008 83C40A ADD SP,+0A
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=000B NV UP EI PL NZ NA PE NC
144B:000B 58 POP AX
-t
AX=143B BX=0000 CX=0016 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=000C NV UP EI PL NZ NA PE NC
144B:000C 5B POP BX
-t
AX=143B BX=3206 CX=0016 DX=0000 SP=000E BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=000D NV UP EI PL NZ NA PE NC
144B:000D 50 PUSH AX
-t
AX=143B BX=3206 CX=0016 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=000E NV UP EI PL NZ NA PE NC
144B:000E 53 PUSH BX
-t
AX=143B BX=3206 CX=0016 DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=000F NV UP EI PL NZ NA PE NC
144B:000F 58 POP AX
-t
AX=3206 BX=3206 CX=0016 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=0010 NV UP EI PL NZ NA PE NC
144B:0010 5B POP BX
-t
AX=3206 BX=143B CX=0016 DX=0000 SP=000E BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=0011 NV UP EI PL NZ NA PE NC
144B:0011 B8004C MOV AX,4C00
-t
AX=4C00 BX=143B CX=0016 DX=0000 SP=000E BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=2000 CS=144B IP=0014 NV UP EI PL NZ NA PE NC
144B:0014 CD21 INT 21
-p
Program terminated normally
(3)psp的头两个字节是cd20,用debug加载t1.exe,查看psp的内容。
D:\text>debug t1.exe
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=143B ES=143B SS=144B CS=144B IP=0000 NV UP EI PL NZ NA PO NC
144B:0000 B80020 MOV AX,2000
-d 143b:0 ff
143B:0000 CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 2E 0E 8A 03 . ........O.....
143B:0010 2E 0E 17 03 2E 0E 1D 0E-01 01 01 00 02 FF FF FF ................
143B:0020 FF FF FF FF FF FF FF FF-FF FF FF FF DB 13 4C 01 ..............L.
143B:0030 EE 12 14 00 18 00 3B 14-FF FF FF FF 00 00 00 00 ......;.........
143B:0040 05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
143B:0050 CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20 .!...........
143B:0060 20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20 .....
143B:0070 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00 ........
143B:0080 00 0D 74 31 2E 65 78 65-0D 3D 41 32 32 30 20 49 ..t1.exe.=A220 I
143B:0090 35 20 44 31 20 50 33 33-30 20 54 33 0D 74 2E 65 5 D1 P330 T3.t.e
143B:00A0 78 65 0D 00 00 00 00 00-00 00 00 00 00 00 00 00 xe..............
143B:00B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
143B:00C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
143B:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
143B:00E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
143B:00F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-
- [nbfengyi] 图在相册 10/22 22:02
- [nbfengyi] 图片在相册里 10/21 15:43
- [chinatree] 书上有讲。 10/04 12:30
- [12345678911] 第三问的解答我不懂什么回事能解释下吗 10/04 11:45
- [chinatree] 写出来就行了,不用太纠结。 09/29 21:00
- [nbfengyi] 用了一整个下午写这个程序,一开始就想到了循环,开始想外循环必有一次,内循环有4字节和2字节的,是不要 09/29 20:20
- [nbfengyi] 开始没有注意是四个字母 09/27 20:06
- [nbfengyi] 开始时: -d ds:0 144C:0000 31 2E 20 64 69 73 70 6C- 09/27 20:06
- [chinatree] 你不要拿半成品来糊弄自己好不好?! 09/27 17:50
- [nbfengyi] 受教了, 09/24 09:59