当前位置: 首页 > article >正文

王爽汇编语言第三版实验1

前言

本系列的文章是对王爽老师的汇编语言中的实验的解答记录,原书一共有17个实验,由于学校的教学流程只做到了第14个实验,因此本文章只会有前十四个实验的解答记录,还有个比较重要的是,文章中会有原书实验中没有的题目,这些是我的老师自己加的,你不感兴趣就无视。btw,以这篇文章记录我的汇编语言的学习历程

实验任务

(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中

相关寄存器中内容的变化。

在这里插入图片描述

提示,可用E命令和A命令以两种方式将指令写入内存。注意用T命令执行时,CS:IP的指向。注:由于篇幅问题,图片仅展示一部分!

解答:

使用A指令编写汇编指令,这里必须注意填写数值的时候不要有H!

在这里插入图片描述

更改CS:IP的指向

在这里插入图片描述

执行命令,AX和BX的值发生更改

在这里插入图片描述

(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

mov ax,1
add ax,ax
jmp 2000:0003

解答:

使用A命令编写汇编指令,这里有个小细节,用r命令修改寄存器的值可以不用空格隔开,比如rip就能直接修改ip寄存器的值

在这里插入图片描述

执行命令

在这里插入图片描述

(3) 查看内存中的内容。

PC机主板上的ROM中写有一个生产日期,在内存FFF00H〜FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。

解答:

FFF00H\~FFFFFH跨度是FF,因此运行

-d fff00:0 ff

地址FFF0:00F0即是生产日期
在这里插入图片描述

试图修改,发现报错,原因后面分析

在这里插入图片描述

(4) 向内存从B8100H开始的单元中填写数据,如:-e B810:0000 01 01 02 02 03 03 04 04

解答:
在这里插入图片描述

检测点2.1

在这里插入图片描述

解答:

随便找一个内存段,使用A命令写入指令

在这里插入图片描述

修改CS:IP寄存器

在这里插入图片描述

执行命令
在这里插入图片描述
在这里插入图片描述

实验结论、实验体会

以下是对于每道题运算结果的个人看法与总结,有错请指正

第一题:

  • 采用e指令或者a指令都可以达到预期的实验的目的
  • e指令采用机器码的形式直接对连续的内存地址进行修改的,稍有不慎,会计算出错
  • a指令,选择一个段地址,可以在这上面直接用汇编语言进行编写,不容易出错和便于检查。
  • t指令,必须先修改cs和ip段寄存器的内容,指向要运行的程序段,否则则不会运行我们编写的程序

第二题:

  • jmp是一个跳转指令,可以跳转到我们需要它跳转的物理地址上
  • 在编写运行一个新的程序时,必须把上一个程序运行完成,否则无法进行改写
  • 直接修改cs和ip的值可以提前跳出循环

第三题:

  • 执行结果生产日期与我的电脑不符合,查阅资料——dosbox是虚拟机,也就是虚拟环境,因此输出的内容和物理机的信息没有任何关系
  • 通过数字逻辑的知识,ROM为只读存储器,因此修改FFFF0会报错

第四题:

  • 现象:用e命令修改内存单元后,用d命令查看内容并未修改
  • 查阅:该处地址单元位于显存地址单元中,可以进行数据的写操作
  • 原因:显存单元中的内容是与屏幕输出是同步的,再用d命令查看是显存中的内容已经发生了改变

检测点2.1:

没啥好说的,程序运行的结果与手算的结果相一致,是验证性的一类实验


http://www.kler.cn/news/355002.html

相关文章:

  • 基于springboot的学习平台系统
  • 两种常见的磁盘分区样式及它们的区别总结
  • HttpUtils 详解
  • k8s jenkins 2.421动态创建slave
  • linux 内核如何读取你配置好的.config文件
  • 【CentOS】Shell脚本案例:归档文件
  • C++从入门到起飞之——红黑树 全方位剖析!
  • 【Flutter 面试题】 Flutter如何使用路由、全局错误捕获和自定义组件统一管理错误页面?
  • SpringBoot3响应式编程全套-R2DBC
  • 模板方法设计模式
  • hdfs API操作 hadoop3.3.5
  • java项目技术架构图-样例
  • mysql--表的约束
  • 【Ubuntu】虚拟机共享文件夹启用
  • NFTScan | 10.07~10.13 NFT 市场热点汇总
  • vmware ubuntu根分区扩容
  • 纯前端如何实现批量下载功能呢?
  • ChatGPT免费使用:人工智能在现代社会中的作用
  • Day31 || 122.买卖股票的最佳时机 II、55. 跳跃游戏、 45.跳跃游戏II 、1005.K次取反后最大化的数组和
  • LangGraph - Hierarchical Agent Teams