王爽汇编语言第三版实验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.mzph.cn/diannao/56691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汇总10个AI免费一键生成PPT的网站

一、前言 PPT幻灯片是现代办公和学习中的重要组成部分。它在工作、研究或培训中扮演着重要角色,并能够让观众更好地理解信息。随着当今人工智能技术的快速发展,现在有很多免费的AI PPT生成器可供选择,帮助用户更加便捷地制作出高效且具有较强…

rhce:列行性(at和cron)

配置 at练习 设置时间提醒 定义一分钟后显示命令,使用atq查看 cron练习 配置 systemctl status crond 查看文件所在位置 ll /var/spool/cron/ 主要功能 开始操作 进入界面操作每天早上9点说hello crontab -e 五个星号分别代表分时日月周,其次是执…

光通信——前传基本架构

一、前传基本架构 第三代移动通信技术引入了分布式射频接入网络(Distributed Radio Access Network , D-RAN)架构。在此架构中的的基带处理单元( Baseband Unit , BBU) 和 射频拉远单元( Remot…

Kafka-初识

一、Kafka是什么? Kafka是一个高度可扩展、弹性、容错和安全的分布式流处理平台,由服务器和客户端组成,通过高性能TCP网络协议进行通信。它可以像消息队列一样生产和消费数据。可以部署在裸机硬件、虚拟机和容器上,也可以部署在本…

springboot034在线商城系统设计与开发-代码(论文+源码)_kaic

毕 业 设 计(论 文) 题目:ONLY在线商城系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本ONLY在线商城系统…

Wordpress—一个神奇的个人博客搭建框架

wordpress简介 在当今数字化的时代,拥有一个属于自己的个人博客,不仅可以记录生活点滴、分享专业知识,还能展示个人风采。而在众多的博客搭建框架中,Wordpress 以其强大的功能和灵活性脱颖而出。今天,就让我们一起深入…

大数据研究实训室建设方案

一、概述 本方案旨在提出一套全面的大数据研究实训室建设策略,旨在为学生打造一个集理论学习与实践操作于一体的高端教育环境。实训室将专注于培养学生在大数据处理、分析及应用领域的专业技能,通过先进的设施配置、科学的课程体系和实用的实训模式&…

红黑树的底层讲解

一、红黑树的介绍 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是红(red)或黑(black)。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红…

linux环境下的程序设计与git操作

目录 前言: 进度条小程序: 先介绍几个背景知识 代码实现 Git操作 总结 其他指令 前言: 本文将重点介绍1. linux下的程序设计,并使用linux下的几个函数接口。实现一个简单的小程序 2.本着开源精神,进行git操作。…

Vue详细入门(语法【三】)

今天滴的学习目标!!! Vue组件是什么?组件的特性和优势Vue3计算属性Vue3监听属性 在前面Vue详细入门(语法【一】——【二】)当中我们学习了Vue有哪些指令,它的核心语法有哪些?今天我们…

(AtCoder Beginner Contest 375) 题解(下)

一、题解 第 E 题 3 Team Division 一眼看像背包,观察数据范围,合法的总能力值 ≤ 500 \le 500 ≤500,那么我们可以设计一个背包DP: int dp[110][510][510]; //dp[i][j][k] 表示前 i 个人,分给第一组的能力值是 j&…

微服务架构 --- 使用Seata处理分布式事务

目录 一.Seata 是什么? 1.Seata的核心架构: 2. Seata的分布式事务处理流程: 二.Seata的基本使用: 1.环境准备: 2.引入依赖: 3.加入配置来使用Seata: (1)首先在nacos上添加一…

免费版视频压缩软件:让视频处理更便捷

现在不少人已经习惯通过视频来记录生活、传播信息和进行娱乐的重要方式。但是由于设备大家现在录制的文件都会比较大,这时候就比较需要一些缩小视频的工具了。今天我们一起来探讨视频压缩软件免费版来为我们带来的生动世界。 1.Foxit视频压缩大师 链接直达&#x…

ESP32移植Openharmony外设篇(1)MQ-2烟雾传感器

外设篇 实验箱介绍 旗舰版实验箱由2部分组成:鸿蒙外设模块(支持同时8个工作)、鸿蒙平板。 其中,鸿蒙平板默认采用RK3566方案。 OpenHarmony外设模块采用底板传感器拓展板方式,底板默认采用ESP32方案,也…

青少年编程能力等级测评CPA C++一级试卷(1)

青少年编程能力等级测评CPA C一级试卷(1) 一、单项选择题(共20题,每题3.5分,共70分) CP1_1_1.在C中,下列变量名正确的是( )。 A.$123 B&#…

Redis 的安装与部署(图文)

前言 Redis 暂不支持Windows 系统,官网上只能下载Linux 环境的安装包。但是启用WSL2 就可以在Windows 上运行Linux 二进制文件。[要使此方法工作,需要运行Windows 10 2004版及更高版本或Windows 11]。本文在CentOS Linux 系统上安装最新版Redis&#xf…

【C++】unordered_set、unordered_map超详细封装过程,处理底层细节

🚀个人主页:小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言1、数据泛型2、迭代器2.1 重载2.2 begin、end2.3 const迭代器2.4 unordered_map中[]重载 3、特殊类型 总结 前…

如何设计开发RTSP直播播放器?

技术背景 我们在对接RTSP直播播放器相关技术诉求的时候,好多开发者,除了选用成熟的RTSP播放器外,还想知其然知其所以然,对RTSP播放器的整体开发有个基础的了解,方便方案之作和技术延伸。本文抛砖引玉,做个…

Unity 实战案例全解析 实现时间停止效果+世界变灰

画面里运动的那个小玩意这么写 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Partol : MonoBehaviour {public Transform pos1;public Transform pos2;public float speed;private Transform target;void Start() {target p…

前端开发攻略---取消已经发出但是还未响应的网络请求

目录 注意&#xff1a; 1、Axios实现 2、Fetch实现 3、XHR实现 注意&#xff1a; 当请求被取消时&#xff0c;只会本地停止处理此次请求&#xff0c;服务器仍然可能已经接收到了并处理了该请求。开发时应当及时和后端进行友好沟通。 1、Axios实现 <!DOCTYPE html> &…