实验二 用机器指令和汇编指令编程

南京信息工程大学实验报告

实验(实习)名称 用机器指令和汇编指令编程 实验(实习)日期 2018年11月16日 得分   指导老师 耿学华

计软院 专业 计科 年级 2017级 班次 5 姓名 沈筱月 学号 20171308198

一、实验目的

  1. 熟练掌握使用debug工具编写和调试汇编命令的方法
  2. 理解并掌握内存中多字节数据的存放
  3. 理解并掌握 [ 栈 ] 内存空间的特性和使用
  4. 理解并掌握8086汇编指令mov,add,sub,push,pop的用法

 

二、实验准备

  1. 复习第三章 [ 栈 ]的知识:栈的特性、寄存器 ss 和 sp、指令 push 和 pop
  2. 完成教材 3.6~3.9 节内容的问题 3.6~3.12,检测点 3.1~3.2
  3. 结合教材实验 1(P35)及公邮 文件中心 ->实验 下的“实验1辅助文档.pdf”复习debug工具用法。

 

三、实验内容

  1. 教材实验2(P71)

            (1)练习 [1.预备知识: Debug 的使用]

            (2)在练习基础上,完成 [2.实验任务]

 

四、实验结论

实验任务(1):

① 截图记录:使用 e 命令修改 0021:0~0021:f 数据,及修改后查看是否正确写入的操作

调整(在使用 a 命令输入指令调试前,使用 e 命令将内存单元 0021:0~0021:7 连续 8 个字节数据修改为 30H,31H,32H,33H,34H,35H,36H,37H)

 ② 截图记录:使用 a 命令输入的 p74 指令

调整(将 p74 实验任务(1)中第一行的 mov ax,ffff 改为 mov ax,0021)

③ 截图记录:每一行指令单步调试(如单步调试步骤多,可分屏截图,但不要有遗漏)

④ p74 中指令执行后各个寄存器填空结果,以在文档中手工标注或手机拍照截图方式复制在文档中。对于③单步调试的观察,与理论上分析的结果进行比较,检测是否一致。如不一致,分析查找原因。

 

e命令写入数据,d命令显示查看,最后用a命令逐一写入指令:

r命令之后再逐条执行:

这里的0021:0=3130,高位31,低位30,故ax=3130

push ax 就是把ax=6462存入栈,地址为sp-2=00FE

push bx 即把bx=6C6A存到sp-2=00FC

pop出栈 即把ax,bx交换数据

后得到ax=6C6A,bx=6462

push [4] 是把 0021:4=3534 存到栈,地址为 sp-2=00FE

push [6] 则是把 0021:6=3736 存到栈,地址为 sp-2=00FC

 

 

 实验任务(2):

① 截图记录 3.19 中使用 a 命令输入的 7 行指令,使用 e 命令修改 2000:0~2000:f 的值,及修改后查看的部分

 ② 单步调试每一行汇编指令的截图。且每一条指令单步调试后,都使用 d 命令查看 2000:1~2000~f 的值。观察每一条指令执行后相关寄存器值的变化,及2000:0~2000:f单元值的变化,并思考原因。

 

使用 a 命令输入指令,把2000:0~f 的值修改为0后显示查看:

使用r命令之后逐条执行:

我发现从 MOV AX, 3123 这条指令开始 2000:0 ~ 2000:f 中的值就发生了变化,出现了与之前不同的数字,而2000:0~f的值之所以改变 是因为对定义栈段时SS,IP, CS的值进行了暂存,0020对应ss=2000, 0801对应ip=0108, 3F07对应cs=073F。

 

五、总结与体会

       本次实验使我对栈的使用有了实质性的理解,但知识储备还不够,需要进一步的学习与实践,去加深对栈还有一些debug的基本操作语言。

 

转载于:https://www.cnblogs.com/shxy0523/p/9969251.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值