实验二

Posted qiuxuewen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验二相关的知识,希望对你有一定的参考价值。

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

实验名称 实验 2 用机器指令和汇编指令编程 实验日期 11.14 得分 

学院 计软院 专业 计算机科学与技术年级 2017 班次 5班姓名 邱雪文学号 20171308197

 

一、实验目的

 

  1. 熟练掌握使用debug 工具编写和调试汇编命令的方法
  2. 理解并掌握内存中多字节数据的存放
  3. 理解并掌握「栈」内存空间的特性和使用
  4. 理解并掌握 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命令单步调试

  5.  技术分享图片

  6.  

    技术分享图片

  7.  

    技术分享图片

  8.  

    技术分享图片

     

  9. 其中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
  10. 实验任务二
  11. 使用 a 命令输入指令,

    使用 e 命令修改 2000:0~2000:f

     

    的值,及用d命令查看的部分,再用r命令查看寄存器,用t命令单步调试,

    且每一条指令单步调试后,都使用 d 命令查看

    2000:0~2000:f 的值。

    观察每一条指令执行后相关寄存器值的变化,及 2000:0~2000:f  单元值的变化

  12.  

 技术分享图片

技术分享图片

① 前 3 行汇编指令的功能,

第一行把2000h 移到ax中

第二行把ax的值移到ss中

第三行把10移到sp中

特别是,mov sp, 10 意味着偏移地址sp=ffee 初始时栈顶和栈底分别是?

② 基于单步调试观察到的变化,debug中的t命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行

五、总结与体会

  1. 熟练并掌握了使用debug 工具编写和调试汇编命令的方法
  2. 理解并掌握了内存中多字节数据的存放
  3. 当栈满的时候,使用push指令入栈
  4. 当栈空的时候,使用pop指令出栈
  5. 在debug中的t命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行

 

以上是关于实验二的主要内容,如果未能解决你的问题,请参考以下文章

通信原理实验二 角度调制实验

20165223 实验二 面向对象程序设计

计算机系统 实验二 数据表示实验

实验二 组合逻辑电路设计;实验三 时序逻辑电路设计

区块链技术与应用实验报告(实验二)

实验二 20155335 实验报告 固件程序设计