masm实验3 实验报告.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

汇编语言(王爽)实验三编程、编译、连接、跟踪

(1)将下面程序保存为t1.asm,生成可执行文件t1.exe。

assumecs:codesg

codesgsegment

movax,2000H

movss,ax

movsp,0

addsp,10

popax

popbx

pushax

pushbx

popax

popbx

movax,4c00H

int21H

codesgends

end

(2)用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶

内容。

step0:通过debugt1.exe加载程序后:

ax=0000H;bx=0000H;

cx=0016H(表示程序长度,为22个字节);

ds=13D5H(表示操作系统给t1.exe分配的空闲区域的段地址);

cs=13e5H(=ds+10H,与之前描述一致);

ss=13e5H,sp=0000H;通过d13e5:01命令查看栈顶内容,为00b8H;

step1:单步执行第一条指令后:

ax=2000H;bx=0000H;

其余cx,ds,cs,ss,sp均不变;

此时栈顶内容理应不变,查看依旧为00b8H;

step2:单步执行第二条指令后,自动连带执行第三条指令:

ax=2000H;bx=0000H;

其余cx,ds,cs均不变;ss和sp被重置,栈顶指向:2000:0,查看栈顶内容,为:0ff1H;

step3:单步执行第四条指令后:

ax=2000H;bx=0000H;

其余cx,ds,cs,ss均不变;sp被重置,栈顶指向:2000:0a,查看栈顶内容,为:615fH;

step4:单步执行第五条指令后:

ax=615fH(与上一步所得一致);bx=0000H;

其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0c,查看栈顶内容,为:0DF0H;

因重新debug,导致前后ax不一致

step5:单步执行第六条指令后:

ax=13e5H;bx=0DF0H(与上一步所得一致);

其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;

step6:单步执行第七条指令后:

ax=13e5H;bx=0DF0H;

其余cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H

(与AX一致);

step7:单步执行第八条指令后:

ax,bx,cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0A,查看栈顶内容,为:0DF0H

(与BX一致);

step8:单步执行第九条指令后:

ax=0DF0H(与上步查看一致);

bx,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H;

step9:单步执行第十条指令后:

bx=13E5H(与上步查看一致);

ax,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;

(3)PSP头两个字节为CD20,用debug加载t1.exe.查看PSP内容:

PSP区域地址范围为:ds:0~ds:ff.

分类:汇编语言

文档评论(0)

***** + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体社旗县兴中文具店(个体工商户)
IP属地宁夏
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档