鱼C论坛

 找回密码
 立即注册
查看: 3077|回复: 1

[汇编作业] 实验3 编程、编译、连接、跟踪

[复制链接]
发表于 2020-3-15 16:21:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(1) 将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。
  1. assume cs:codesg  
  2. codesg segment  
  3.         mov ax,2000H  
  4.         mov ss,ax  
  5.         mov sp,0  
  6.         add sp,10  
  7.         pop ax  
  8.         pop bx  
  9.         push ax  
  10.         push bx  
  11.         pop ax  
  12.         pop bx  
  13.         mov ax, 4c00h  
  14.         int 21H  
  15. codesg ends  
  16. end
复制代码

解:
1.编程:随便找个文本编辑器将以上代码输入并保存为.asm文件,甚至用系统自带的txt改后缀为.txt也行
2.编译:打开DOSBox,输入
mount c d:\try
c:
masm t1.asm
直接回车三次
3.连接:输入
link t1.obj
直接回车三次
得到t1.exe


(2) 用DEBUG跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器的内容和栈顶内容。
解:
输入
debug t1.exe
-t
AX-Z000 BX=0000 CX=0014 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=081E ES=081E SS=082D CS =082E IP=0003 NU UP EI PL NZ NA PO NC
082E :0003 BEDO MOV SS, AX
-t
AX=2000 BX=0000 CX=0014 DX-0000 SP=0000 BP =0000 SI =0000 DI=0000
DS=031E ES=0B1E SS=2000 CS=082E IP=0008 NU UP EI PL NZ NA PO NC
082E :0003 830404  ADD SP ,+04
-t
AX-Z000 BX=0000 CX=0014 DX=0000 SP=0004 BP=0000 SI=0000 DI-0000
DS=081E ES=081E SS=2000 CS-08ZE IP=000B NU UP EI PL NZ NA PO NC
082E:OO0B 58 POP Ax
-t
AX=0000 BX=0000CX=0014 DX=0000 SP =0006 BP=0000 SI=0000 DI=0000
DS=081E ES=031E SS =2000 CS=082E IP=000C NU UP EI PL NZ NA PO NC
082E:000C 5B POP BX
(太长就不全放出了)
(3)PSP的头两个字节是CD20,用DEBUG加载t1.exe,查看PSP的内容。
解:
-u 081e:0
081E:0000 CD20         INT      20//看到这个int 20就应该想到和源程序 int 21的关系
081E:0002 FF9FOOEA  CALL    FAR [BX+ EA0O]
081E:0006 FTTT         ???      DI
081E:0008 AD             LODSW
031E :0009 DE4F03     FIMUL  WORD PTR [BX+03 ]
081E:000C A3018A      MOV   [8A01] , AX
081E :000F 03A30117  ADD   SP,[BP+DI+1701]
031E :0013 03A30192  ADD   SP , CBP+DI+9201 ]
081E:0017 0101           ADD   [BX+DI].AX
081E:0019 0101           ADD   [BX+DI] ,AX
081E:001B 0002           ADD   [BP+SI] ,AL
081E:001D FTTT           ???    DI
081E:001F FTTT            ???    DI
-d 081e:0 100
0B1E :0000    CD 20 FF9F 00 EA FFFF-ADDE4F03 A3 01 8A 03  
081E :0010    A3 01 17 03 A3 01 92 01-01 010100 02FFFFFF
081E :0020    FFFFFFFFFFFFFFFF-FFFFFFFF14083556  
031E :0030    A301140018001E08-FFFFFFFF00000000
031E :0040   0500000000000000-00000000000000 09
081E :0950   CD 21 CB 0909090909-09090909090009 09
081E :0060   0009090909090909-0909090909090009
081E :0070   0000000000000000-0009090909090900
081E :0080   00OD7431ZE657865-0D00000000000000
031E :0090   0009090909090909-0909090909090009
081E :00A0   0009090909090909-0909090909090009
081E :OOB0  0009090909090909-0909090909090009
081E :00CO   0000000000000000-0009090909090900
031E :00D0   0000000000000000-0000000000000000
031E :OOE0  0009090909090909-0909090909090009
081E :O0FO   0009090909090909-0909090909090009
081E:0100      B8
如果-u 082e:0就可以看到源程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-20 20:26:31 | 显示全部楼层
点个赞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 01:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表