汇编语言作业(二)

1、巩固debug命令

2、使用 debug 来进行寄存器、内存中内容的查看和修改

3、使用 debug 来进行程序的调试

  • 二、实验内容

上图是一段指令代码 ,机器码和汇编指令是一一对应的,要求用两种方法将改程序片段写入内存中并逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化并记录下来写在实验报告中,具体如下:
1. 用A命令将汇编指令写在CS:IP 所指向的内存地址单元中

2. 用t命令逐条执行,记录结果
3. 用e命令将机器码写入CS:IP 所指向的内存地址单元中

4. 用t命令逐条执行,记录结果

尝试理解mov 和add汇编指令,AX,BX寄存器

  • 三、实验步骤以及结果

一、输入汇编指令,观察寄存器结果。

1. 用A命令将汇编指令写在CS:IP 所指向的内存地址单元中

2.用t命令逐条执行,记录结果

二、输入机器码,观察寄存器结果

3. 用e命令将机器码写入CS:IP 所指向的内存地址单元中

4. 用t命令逐条执行,记录结果

  • 四、实验结果与分析

1、由第一次实验,可以得出mov为赋值操作,add为相加操作的结论。但这次实验又多了对AL,AH,BL,BH与mov,add结合的操作。现在通过例子说明mov,add在这类变量的作用。

由图可知,从第一个块到第二个块之间进行了add al,9c的操作。Ax的值由0066变为0002。结合课本知识可知,al是ax的低字节位,al的变化没有影响到ah(ax的高字节位),即使al有溢出,进位也没有影响到ah。

2、汇编指令与机器码两种操作都可以达到相同的目的,可以说,汇编指令是机器码的更抽象的描述,但它们的本质一致。

  • 五、实验总结

  1. 本次实验,巩固了debug命令的学习,成功运用debug进行寄存器、内存中内容的查看和修改,并成功利用debug来进行程序的调试,实验三目的成功实现。
  2. 两种操作的数据可能不太一样,因为我在debug的过程中又多尝试了些操作,导致有些数据被修改,如机器码部分的-t操作最后多了一个指令。

相关推荐

  1. day01.03.作业

    2024-04-05 01:16:06       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 01:16:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 01:16:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 01:16:06       87 阅读
  4. Python语言-面向对象

    2024-04-05 01:16:06       96 阅读

热门阅读

  1. 如何通过pciehp管理NVMe SSD电源状态?

    2024-04-05 01:16:06       78 阅读
  2. 英国和美国签署开发人工智能安全测试协议

    2024-04-05 01:16:06       37 阅读
  3. Python语言例题集(010)

    2024-04-05 01:16:06       32 阅读
  4. Linux的学习之路:4、权限

    2024-04-05 01:16:06       39 阅读
  5. 5.2 SSH和交换机端口安全概述

    2024-04-05 01:16:06       37 阅读
  6. pyscenic出现bug

    2024-04-05 01:16:06       40 阅读
  7. 一些常见的Prometheus+Grafana问题和答案:

    2024-04-05 01:16:06       33 阅读
  8. 计算机笔记(2)续20个

    2024-04-05 01:16:06       38 阅读