8086 汇编笔记(一):寄存器

news2024/11/16 16:26:27

前言

8086 CPU 有 14 个寄存器,每个寄存器有一个名称。这些寄存器是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW

一、通用寄存器

8086 CPU 的所有寄存器都是 16 位的,可以存放两个字节。AX、BX、CX、DX 这 4个寄存器通常用来存放一般性的数据,被称为通用寄存器。

8086 CPU 的上一代 CPU 中的寄存器都是 8 位的。

为了保证兼容,使原来基于上代 CPU 编写的程序稍加修改就可以运行在 8086 之上,8086 CPU 的 AX、BX、CX、DX 这 4个寄存器都可分为两个可独立使用的8位寄存器来用:

        1. AX 可分为 AH 和 AL;

        2. BX 可分为 BH 和 BL;.

        3. CX 可分为 CH 和 CL;

        4. DX 可分为 DH 和 DL。 

AX 的低 8 位(0 位~7 位) 构成了 AL 寄存器,高 8位(8 位~15 位) 构成了 AH 寄存器。AH 和 AL 寄存器是可以独立使用的 8 位寄存器。 

二、字在寄存器中的存储 

出于对兼容性的考虑,8086 CPU 可以一次性处理以下两种尺寸的数据。

字节:记为 byte,一个字节由8个bit组成,可以存在8位寄存器中。

字:记为 word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。

三、汇编指令

书中案例分析,请计算最后 ax 寄存器的值 

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

请计算 al 寄存器的值

程序段中的最后一条指令 add al,93H,在执行前,al 中的数据为 C5H,相加后所得的值为:158H,但是 al 为8位寄存器,只能存放两位十六进制的数据,所以最高位的1丢失,ax 中的数据为:0058H

这里如果将 al 换成 ax 则结果为 0158 H(注意区分八位和十六位寄存器)

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

mov ax,bx
mov bx,cx
mov ax,18H
mov al,18H
add ax,bx
add ax,20000

答案解析:

四、物理地址

每一个内存单元都有唯一的地址,我们将这个唯一的地址称为物理地址。 

五、8086 CPU 给出物理地址的方法

8086CPU 采用一种在内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址

1. CPU 中的相关部件提供两个 16 位的地址,一个称为段地址,另一个称为偏移地址;

2. 段地址和偏移地址通过内部总线送入一个称为地址加法器的部件:

3. 地址加法器将两个16 位地址合成为一个20位的物理地址;

4. 地址加法器通过内部总线将20位物理地址送入输入输出控制电路;

5. 输入输出控制电路将20位物理地址送上地址总线;

6. 20位物理地址被地址总线传送到存储器。 

地址加法器采用物理地址=段地址x16+偏移地址的方法用段地址和偏移地址合成物理地址 

六、段

如图 2.9 所示,我们可以认为:地址10000H~100FFH 的内存单元组成一个段,该段的起始地址(基础地址)为 10000H,段地址为 1000H,大小为 100H

我们也可以认为地址 10000H~1007FH、10080H~100FFH 的内存单元组成两个段,它们的起始地址(基础地址)为:10000H和10080H,段地址为:1000H和1008H,大小都为 80H。

答案解析:从最小为 0H,最大 FFFFH 计算

七、段寄存器

8086 CPU 有4个段寄存器:CS、DS、SS、ES

八、CS 和 IP

CS 和 IP 是 8086 CPU 中两个最关键的寄存器,它们指示了 CPU 当前要读取指令的地址。CS 为代码段寄存器,IP 为指令指针寄存器 

8086 机中,任意时刻,CPU 将 CS:IP 指向的内容当作指令执行 

图 2.10 说明如下: 

        1. 8086CPU 当前状态:CS 中的内容为2000H,IP中的内容为0000H;

        2. 内存 20000H~20009H 单元存放着可执行的机器码: 

九、修改 CS、IP 指令

mov 指令不能用于设置 CS、IP 的值!!!

若想同时修改 CS、IP 的内容,可用形如“jmp 段地址:偏移地址”的指令完成,例如

jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU 将从 2AE33H 处读取指令。

jmp 3:0B16,执行后:CS0003H,IP=0B16H,CPU 将从 00B46H 处读取指令。  

若想仅修改 IP 的内容,可用形如 “jmp 某一合法寄存器” 的指令完成 

“jmp 某一合法寄存器” 指令的功能为:用寄存器中的值修改 IP 

答案解析:四次,jmp 前后各一次 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1712741.html

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

相关文章

剧本杀小程序开发,探索市场发展新的商业机遇

剧本杀游戏作为一个新兴行业,经历了爆发式的增长,剧本杀游戏在市场中的热度不断升高。 不过,在市场的火热下,竞争也在逐渐加大。因此,在市场竞争下,成本低、主题多样、有趣的线上剧本杀小程序成为了创业者…

永恒之蓝(MS17-010)详解

这个漏洞还蛮重要的,尤其在内网渗透和权限提升。 目录 SMB简介 SMB工作原理 永恒之蓝简原理 影响版本 漏洞复现 复现准备 复现过程 修复建议 SMB简介 SMB是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议…

两年半前端面字节,广度和深度让我不想做前端了

两年半经历,面的是前端工程师,字节面试官的问题挺有广度与深度的,这里整理一下面试过程中的题目(有些忘记了),分享给大家: 面试过程中的问题 1、简单的自我介绍与项目经验。 2、一道算法题。 3、一道 …

揭秘!编写高质量代码的关键:码农必知的黄金法则!

文章目录 一、保持代码的简洁与清晰二、遵循良好的命名规范三、注重代码的可读性四、利用抽象与封装五、遵循SOLID原则六、关注代码性能七、确保代码安全性《码农修行:编写优雅代码的32条法则》编辑推荐内容简介目录前言/序言 在编程的世界里,每一位码农…

给转行产品经理的小白的一些建议

哈喽我是小源,毕业在教培大厂做了1年的班主任,下午1点上班,被优化后gap3月找到了自己的本命岗位——产品经理! 其实这个转变也挺机缘巧合的,朋友和我都是教培行业,她是成人职教类,我是k111类&a…

SSL证书:守护个人信息安全的坚固盾牌

在数字化浪潮汹涌的今天,我们的个人信息如同一座座宝藏,吸引着不法分子的贪婪目光。数据泄露事件频发,让信息安全问题日益凸显。而在这个信息爆炸的时代,如何保护我们的个人信息安全,成为了一个亟待解决的问题。幸运的…

【嵌入式】RS485通信+硬件

目录 1.物理层 2.协议层 3.收发电路 3.1三极管开关电路 3.2收发原理图解释 1.物理层 对比 CAN 通讯网络,可发现它们的网络结构组成是类似的,每个节点都是由一个通讯控制器和 一个收发器组成,在 RS-485 通讯网络中,节点中的…

基于单片机的操作平台数据采集网关设计与实现

摘  要: 由于传统网关无法实现数据实时交换,数据传输速率较低,为此提出基于单片机的操作平台数据采集网关设计与实现研究。首先,结合单片机具有的显著优势对网关结构选型设计;其次,参照一体化设计理念&…

每日力扣刷题day07(滑动窗口专项)

文章目录 2024.5.28(3题)643. 子数组最大平均数 I解题思路Java代码实现详细解释 1343. 大小为 K 且平均值大于等于阈值的子数组数目解题思路java代码实现详细解释 2090. 半径为 k 的子数组平均值解题思路java代码实现详细解释 2024.5.28(3题&…

惠海半导体 30V-60V-100V-150VMOS管 打火机、加湿器NMOS管 高耐压

MOS管的工作原理 MOS管,即金属-氧化物-半导体场效应晶体管,是一种重要的电子元件,在电路中起着关键的作用。其工作原理主要基于半导体材料的特性以及电场对电荷的控制。 首先,MOS管的基本结构包括源极、栅极和漏极。其中&#xf…

29. 【Java教程】异常处理

Java 的异常处理是 Java 语言的一大重要特性,也是提高代码健壮性的最强大方法之一。当我们编写了错误的代码时,编译器在编译期间可能会抛出异常,有时候即使编译正常,在运行代码的时候也可能会抛出异常。本小节我们将介绍什么是异常…

2023-2024中国区块链年度发展报告

来源:赛迪 近期历史回顾:2024社交媒体全球使用趋势报告.pdf 国际建造成本指数报告2024--产能角逐.pdf 2024可持续包装管理体系与最佳实践案例集.pdf 2024年专利诉讼报告.pdf 2024Q1保险业运行报告.pdf 2024年云指数报告.pdf 2024内容营销10大趋势-内容时…

负载箱:充电桩测试利器

随着新能源汽车的普及,充电桩的需求也在不断增长。为了保证充电桩的安全、稳定和高效运行,对其进行严格的测试是必不可少的。在这个过程中,负载箱就成为了充电桩测试的重要工具。 负载箱模拟电动汽车充电的设备,它可以模拟真实的充…

轻松掌握图片批量处理,赶紧学习这些小技巧!

在现今数字化的社会中,我们每天都会接触到大量的图片,无论是在工作中还是日常生活中。要想高效处理这些图片,掌握图片批量处理的技巧就显得尤为重要。幸运的是,有许多小技巧和工具可以让这一过程变得轻松愉快。 在本文中&#xf…

轻松驾驭文件管理:一键转换格式,自定义重命名,让你的文件整理更高效便捷!

在日常工作和生活中,我们经常会面临需要修改文件格式的情况。无论是转换文件为更普遍使用的格式,还是根据特定需求调整文件的扩展名,都需要一个简单而有效的文件管理工具来完成这项任务。那么,文件批量改名高手将会让您在文件格式…

新品发布(仓库小助手)一机在手,轻松无忧

你是否曾为繁琐的货物管理而烦恼? 你是否为了记录货物信息忙前忙后? 近几年,陆续有收到客户在运营跨境代购中的一些反馈,特别是仓库管理这块,比如包裹的出入库、移库、修改包裹信息等,都需要在电脑上完成&…

6公里远距离视频传输,飞睿智能无线CV5200模组方案,设备稳定连接通信

随着科技的不断进步,物联网(IoT)和智能设备正逐渐渗透到我们生活的方方面面。在这一进程中,远距离无线通信成为推动行业发展的关键因素。 智能控制、远程无线传输是实现设备间的协作场景的关键,CV5200模组通过无线WiF…

js在处理异步任务时,forEach和for...of循环之间的区别

先看效果 forEach循环: 1、forEach是数组的原生方法,用于遍历数组。 2、它无法直接处理异步任务,因为它不会等待每个任务的完成,而是立即执行下一个任务。 3、这意味着如果在forEach循环中执行异步任务,它们将会同时进…

气膜建筑的运营成本解析:高效节能的运作模式—轻空间

气膜建筑以其独特的优势和广泛的应用吸引了大量关注。然而,许多人对其持续吹气的运营成本产生了疑问。实际上,气膜建筑通过智能控制系统和高效的风机管理,大大降低了运营成本。本文将以2000平方米的气膜建筑为例,详细解析其运行成…

记录一次机构网络故障,电脑可以ping通对端,接到路由器上却ping不通

Note:无任何敏感信息,内网地址任何机构均可配置使用。仅作为技术分享,学习记录使用。 事情简介: 某个县区机构的内网突然中断。 县区与市区的互联地址分别为:10.61.145.53,10.61.145.54 处理过程: 1、先将运营商设备出来的上联线,接至笔记本,将笔记本配IP 10.61.1…