实验二
Posted qiuxuewen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验二相关的知识,希望对你有一定的参考价值。
南京信息工程大学实验报告
实验名称 实验 2 用机器指令和汇编指令编程 实验日期 11.14 得分
学院 计软院 专业 计算机科学与技术年级 2017 级班次 5班姓名 邱雪文学号 20171308197
一、实验目的
- 熟练掌握使用debug 工具编写和调试汇编命令的方法
- 理解并掌握内存中多字节数据的存放
- 理解并掌握「栈」内存空间的特性和使用
- 理解并掌握 8086 汇编指令 mov, add, sub, push, pop 的用法
二、实验准备
1. 复习第 3 章「栈」的知识:栈的特性、寄存器 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. 实验任务」
四、实验结论
实验任务一
先用e命令修改内存单元,用d命令显示内存单元是否被修改,用a命令输入指令,再用r命令查看寄存器,用t命令单步调试
-
-
-
-
- 其中ax=3130 , ax=6462 , bx=3534 , bx=6c6a ,sp=00fe 修改的内存单元地址是 073f:011d 内容为 53 , sp=00fc 修改的内存单元地址是 073f:011e 内容为 58, sp=00fe ax=6c6a ,sp=0100 bx=6462 ,sp=00fe 修改的内存单元地址是 073f:0124 内容为 ff360600 ,sp=00fc 修改的内存单元地址是 073f:0128 内容为 0000
- 实验任务二
-
使用 a 命令输入指令,
使用 e 命令修改 2000:0~2000:f
的值,及用d命令查看的部分,再用r命令查看寄存器,用t命令单步调试,
且每一条指令单步调试后,都使用 d 命令查看
2000:0~2000:f 的值。
观察每一条指令执行后相关寄存器值的变化,及 2000:0~2000:f 单元值的变化
-
① 前 3 行汇编指令的功能,
第一行把2000h 移到ax中
第二行把ax的值移到ss中
第三行把10移到sp中
特别是,mov sp, 10 意味着偏移地址sp=ffee 初始时栈顶和栈底分别是?
② 基于单步调试观察到的变化,debug中的t命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行
五、总结与体会
- 熟练并掌握了使用debug 工具编写和调试汇编命令的方法
- 理解并掌握了内存中多字节数据的存放
- 当栈满的时候,使用push指令入栈
- 当栈空的时候,使用pop指令出栈
- 在debug中的t命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行
以上是关于实验二的主要内容,如果未能解决你的问题,请参考以下文章