【汇编语言】寄存器(CPU工作原理)(二)—— 汇编指令的基础操作

news/2024/12/21 22:36:54/

在这里插入图片描述

文章目录

  • 前言
  • 正文——(一气呵成解决本文内容)
  • 结语

前言

📌

汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优化方面有重要作用。此外,它在逆向工程和安全领域不可或缺,帮助分析软件运行机制并增强漏洞修复能力。

本专栏的汇编语言学习章节主要是依据王爽老师的《汇编语言》来写的,和书中一样为了使学习的过程容易展开,我们采用以8086CPU为中央处理器的PC机来进行学习。

文章主要内容:几条基础的汇编指令的讲解,例如 MOVADD 等常用指令。

正文——(一气呵成解决本文内容)

通过汇编指令控制 CPU 进行工作,看一下下表中的几条指令。

在这里插入图片描述

注意:

在这里插入图片描述

如:mov ax,18和MOV AX,18的含义相同;bx和BX的含义相同:




接下来看一下CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。

示例1

在这里插入图片描述

指令执行后 AX 中的数据为多少?思考后看下列分析。

分析
程序段中的最后一条指令 add ax,bx,在执行前 ax和bx中的数据都为8226H,相加后所得的值为:1044CH,但是ax为16位寄存器,只能存放4位十六进制的数据,所以最高位的1不能在ax中保存,ax中的数据为:044CH。

示例2

在这里插入图片描述

指令执行后 AX中的数据为多少?思考后看下列分析。

分析
程序段中的最后一条指令 add al,93H,在执行前,al中的数据为C5H,相加后所得的值为:158H,但是al为8位寄存器,只能存放两位十六进制的数据,所以最高位的1丢失,ax中的数据为:0058H。(这里的丢失,指的是进位值不能在8位寄存器中保存,但是CPU并不真的丢弃这个进位值,关于这个问题,我们将在之后的内容中讨论。)

📌注意

此时al是作为一个独立的8位寄存器来使用的,和ah没有关系,CPU在执行这条指令时认为 ah 和a是两个不相关的寄存器。不要错误地认为,诸如 add al,93H 的指令产生的进位会存储在 ah中,add al,93H进行的是8位运算。

如果执行 add ax,93H,低8位的进位会存储在ah中,CPU 在执行这条指令时认为只有一个16位寄存器ax,进行的是16位运算。指令 add ax,93H执行后,ax 中的值为:0158H。此时,使用的寄存器是16位寄存器ax,add ax,93H相当于将ax中的16位数据00c5H和另一个16位数据0093H相加,结果是16位的0158H。




在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的,例如:

在这里插入图片描述

等都是正确的指令,而:

在这里插入图片描述

等都是错误的指令,错误的原因都是指令的两个操作对象的位数不一致。

结语

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下。

也可以点点关注,避免以后找不到我哦!

Crossoads主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的动力!

在这里插入图片描述


http://www.ppmy.cn/news/1536906.html

相关文章

平时使用的正则总结

1、将某一个字符串的后缀名后面加上“!400_500” 使用场景是将minio拿过来的图片压缩尺寸从而压缩其大小,加快渲染的速度。需要在图片的后缀名后面加上尺寸如下: const str //storage-test.test.shiqiao.com/gateway/common/isopen/2024/10/09/e708e9…

基于springboot+vue人脸识别的考勤管理系统(源码+定制+开发)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

反射的N种渲染方式

概述 本节主要介绍游戏图形渲染中几种反射效果的原理、实现方式及其应用场景 主要内容 反射在游戏尤其是3D游戏中的使用场景 从原理、优缺点及适用场合等几个方面,分别分析四种反射效果的实现方法 反射效果的性能优化技术,如立方体影射的原理、如何处…

金融风险管理中的量化模型与算法应用

随着金融市场的日益复杂和全球化,风险管理成为金融机构不可忽视的核心领域。量化模型和算法的引入,为金融风险管理提供了科学、系统的解决方案,极大地提高了风险识别和控制的效率与准确性。本文将探讨金融风险管理中的常用量化模型及其应用场…

dba_free_space 视图查询慢 X$KTFBUE

1.监控程序 dba_free_space 视图查询慢,访问基表X$KTFBUE时间较长,且多为单块读db file sequential read。 SQL> set linesize 500 pagesize 50000 long 999999 longchunksize 999999 SQL> select dbms_sqltune.report_sql_monitor(sql_id > 4p…

开源的键鼠共享工具「GitHub 热点速览」

十一长假回来,我的手放在落灰的键盘上都有些陌生了,红轴竟敲出了青轴般的响声,仿佛在诉说对假期结束的不甘。 假期回归的首更,让我们看看又有什么好玩的开源项目冲上了开源热榜。一套键盘和鼠标控制多台电脑的工具 deskflow&#…

笔记本电脑重启输入密码后黑屏

型号:Dell G3 3590 系统:Win10 背景 原本想安装火绒清一清缓存之类的垃圾文件的,安装完火绒之后点击垃圾清理,提示需要更新工具,ok,更新,进度到50%就不动了,然后火绒通知我 发现危险信息&…

五款专业三维数据处理工具:GISBox、Cesiumlab、OSGBLab、灵易智模、倾斜伴侣深度解析

随着三维数据处理技术的广泛应用,尤其是在城市规划、地理信息系统(GIS)、工程监测等领域,处理倾斜摄影、三维建模以及大规模数据管理的需求日益增加。以下是五款我精心挑选的倾斜摄影和三维数据处理工具——GISBox、Cesiumlab、OS…