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

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

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

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

一、实验目的

  1. 掌握使用debug工具编写和调试汇编命令的方法
  2. 掌握第1-2章所学的关于CPU、寄存器、内存的基础知识
  3. 掌握第1-2章涉及的几条指令mov,add,sub,jmp的用法

二、实验准备

  1. 复习教材第1-2章内容,完成教材内相关检测点
  2. 结合教材实验1(P35)及公邮文件中心->实验下的“实验一辅助文档.pdf”学习debug工具用法。

三、实验内容

  1. 教材实验1(P35)

            (1)练习教材P35-45 [预备知识:Debug 的使用] ,学习debug启动、退出及常用指令用法;

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

四、实验结论

    任务1、用 E 命令将指令写入内存,并用 U 命令查看内存中机器码的含义,再用T命令执行内存中的机器码

用E命令将机器码指令写入内存

在将指令写入内存的过程中输错了几个数据,所以要用到D命令来查看内存中的内容,继而用E命令修改输错的数据。

用U命令查看内存中机器码的含义

用u指令进行翻译时,后面要加上要写入内存数据的CS:IP的值,不然会显示默认CS:IP中未写入数据的空数据值。

用T命令执行内存中的机器码

用A命令将汇编指令写入内存

用D命令查看内存中的内容

再用T命令执行内存中的机器码

从任务1可以看出机器指令和汇编指令的区别。

    任务2、将3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方

用 R 命令查看,发现汇编指令写入的段地址和偏移地址与CS IP不同,所以要用 R 指令修改CS IP的值。

再用 T 指令逐条执行

 

在执行指令之后,我发现机器自动将IP改变,将CS:IP指向下一条指令,当寄存器AX中的值到0100时停止,因为在十进制中2的8次方为256,16进制中为100H。

    任务3、用D命令查看内存FFF00H-FFFFFH中的内容,PC机主板上的ROM中写有一个生产日期,请找到这个日期并试图改变它

用 D 命令查看内存FFF00H-FFFFFH中的内容

用 E 命令修改部分数据,再用 D 命令查看内容,发现生产日期无法更改。

   任务4、向内存从B8100H开始的单元中填写数据,观察产生的现象,再改变填写的地址,观察产生的现象

向内存从B8100H开始的单元中填写数据

更改内存中的数据

用 R 命令查看寄存器的内容,更改写入的内存地址和数据

五、总结与体会

  1. 在本次实验后,我深入了解了Debug指令的基本功能和用法。在汇编语言的学习中,Debug是一个经常用到的工具。
  2. 通过本次实验,还了解到了一些命令的用法

      R命令:查看、修改CPU中寄存器的内容

      D命令:查看内存中的内容

      E命令:修改内存中的内容(可以写入数据、指令)

      U命令:将内存中的内容解释为机器指令和对应的汇编指令

      T命令:执行CS:IP指向的内存单元处的指令

      A命令:以汇编指令的形式向内存中写入指令

    3. 如果要使操作界面更清晰,可以常用Q命令清空界面

    4. 本次实验让我初次体验了Debug指令的执行过程,十分有趣。

 

posted @ 2018-10-28 16:50  沈筱月  阅读(767)  评论(0编辑  收藏  举报