实验3编程、编译、连接、跟踪
(1)将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。
ASSUME CS:CODESG
CODESG SEGMENT
mov ax,2000H
mov ss,ax
mov sp,0
add sp,4
PoP ax
pop bx
push ax
push bx
poP ax
pop bx
mov ax,4c00H
int 21H
CODESG ENDS
END
(2)用Debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈
顶的内容。
ASSUME CS:CODESG
CODESG SEGMENT
mov ax,2000H AX=2000H
mov ss,ax SS=2000H
mov sp,20H SP=20H;这里为了下面单步执行时不会出现“cpu遇到无效指令”所以设大了一些。
ADD SP,4 SP=24H
PoP ax SP=26H,AX=0
pop bx SP=28H,BX=0
push ax SP=26H,SS:[SP]==0
push bx SP=24H,SS:[SP]==0
poP ax SP=26H,AX=0
pop bx SP=28H,BX=0
mov ax,4c00H AX=4C00H
int 21H CS=00A7H,IP=107CH
CODESG ENDS
END
C:\DOCUME~1\ADMINI~1>DEBUG C:\t1.EXE
-T
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=0BA5 CS=0BA5 IP=0003 NV UP EI PL NZ NA PO NC
0BA5:0003 8ED0 MOV SS,AX
-T
AX=2000 BX=0000 CX=0016 DX=0000 SP=0020 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=0008 NV UP EI PL NZ NA PO NC
0BA5:0008 83C404 ADD SP,+04
-T
AX=2000 BX=0000 CX=0016 DX=0000 SP=0024 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=000B NV UP EI PL NZ NA PE NC
0BA5:000B 58 POP AX
-T
AX=0000 BX=0000 CX=0016 DX=0000 SP=0026 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=000C NV UP EI PL NZ NA PE NC
0BA5:000C 5B POP BX
-T
AX=0000 BX=0000 CX=0016 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=000D NV UP EI PL NZ NA PE NC
0BA5:000D 50 PUSH AX
-T
AX=0000 BX=0000 CX=0016 DX=0000 SP=0026 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=000E NV UP EI PL NZ NA PE NC
0BA5:000E 53 PUSH BX
-T
AX=0000 BX=0000 CX=0016 DX=0000 SP=0024 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=000F NV UP EI PL NZ NA PE NC
0BA5:000F 58 POP AX
-T
AX=0000 BX=0000 CX=0016 DX=0000 SP=0026 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=0010 NV UP EI PL NZ NA PE NC
0BA5:0010 5B POP BX
-T
AX=0000 BX=0000 CX=0016 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=0011 NV UP EI PL NZ NA PE NC
0BA5:0011 B8004C MOV AX,4C00
-T
AX=4C00 BX=0000 CX=0016 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=0BA5 IP=0014 NV UP EI PL NZ NA PE NC
0BA5:0014 CD21 INT 21
-T
AX=4C00 BX=0000 CX=0016 DX=0000 SP=0022 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=2000 CS=00A7 IP=107C NV UP DI PL NZ NA PE NC
00A7:107C 90 NOP
-
(3)PSP的头两个字节是CD 20,用Debug加载t1.exe,查看PSP的内容。
-R
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=0BA5 CS=0BA5 IP=0000 NV UP EI PL NZ NA PO NC
0BA5:0000 B80020 MOV AX,2000
-D0B95:0 FF
0B95:0000 CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 90 05 8A 03 . ........O.....
0B95:0010 90 05 17 03 90 05 7F 05-01 01 01 00 02 FF FF FF ................
0B95:0020 FF FF FF FF FF FF FF FF-FF FF FF FF 3D 0B 4C 01 ............=.L.
0B95:0030 50 0A 14 00 18 00 95 0B-FF FF FF FF 00 00 00 00 P...............
0B95:0040 05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0B95:0050 CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20 .!...........
0B95:0060 20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20 .....
0B95:0070 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00 ........
0B95:0080 00 0D 43 3A 5C 4E 2E 45-58 45 0D 41 53 54 45 52 ..C:\N.EXE.ASTER
0B95:0090 3D 41 30 0D 64 64 72 65-73 73 2E 20 20 46 6F 72 =A0.ddress. For
0B95:00A0 20 65 78 61 6D 70 6C 65-3A 0D 20 6F 6E 20 4E 54 example:. on NT
0B95:00B0 56 44 4D 2C 20 73 70 65-63 69 66 79 20 61 6E 20 VDM, specify an
0B95:00C0 69 6E 76 61 6C 69 64 0D-20 6F 6E 6C 79 2E 0D 00 invalid. only...
0B95:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0B95:00E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0B95:00F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
注意,一定要做完这个实验才能进行下面的课程。
- [kanwangxue] 感觉楼主很乖的。有点孩子气。呵呵。 01/27 08:58
- [kanwangxue] it界,进去干嘛啊,到时候自己牛比了,首先写一个自己的语言,自己用。进入IT界不就是随波做流吗/?他 01/27 08:57
- [kanwangxue] 哥们,不要为了赚钱而学计算机。 计算机是年轻时候干的, 30岁后可以开始想赚钱,年轻嘛,不要这么悲 01/27 08:50
- [游客] 怎么说? 01/26 16:22
- [游客] 你这不行啊,差远了! 01/10 22:29
- [chinatree] 谢谢你。相信你也会成功的。 01/09 14:22
- [landyking] 哥们儿,好久不见。相信你会成功的。 12/02 23:34
- [chinatree] 哇哇,被挖坟了。莫生气,只是感觉谦虚些好,就算你的程序真的是史上最强的,也别说出来嘛,自己偷着乐就行 11/20 00:41
- [xiaoyao2012] 你的程序和我的程序比较也不见得你的程序又节约空间,在某种意义上说你的程序用了没学的指令,所以不见得你 11/19 15:39
- [heliang6291] 一起加油啊 07/02 02:45
- [游客] 急需一个汇编程序大作业。。。。。。。。。。。。。。。。。。。??? 12/28 16:50
- [游客] 这么多人喜欢你,我嫉妒了。但你不可以喜欢那么多,允许你在我不需要你的时候帮别人。如果我需要立叫立到。 11/13 13:11
- [tily] 兄弟 我来看你啦 呵呵 最近可好呀 09/26 22:17
- [stqcw] 能加我qq吗?1270911891 我在做课程设计2的时候 遇到点问题 09/24 09:16
- [stqcw] 能加我qq吗?1270911891 我的环境还是有点问题。按下A的时候不能显示满屏的A 09/20 09:36
- [stqcw] 牛人 我在xp里面运行王爽 汇编第二版 p280的例子 按下esc键没反应 呀 怎样在虚拟机里配置一 09/17 15:18
- [landyking] 呵呵,交个朋友,共同学习. 09/08 00:03
- [luyingdzx] 能知道你的QQ吗?或者请加一下我的QQ271190440,可以吗 虽然在论坛能获得解答,但是有的问 08/07 21:32