汇编总结二

Posted jinevol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编总结二相关的知识,希望对你有一定的参考价值。

一、相关基础知识总览

1.CPU概述

一个典型的CPU由运算器、控制器、寄存器等器件组成。
内部总线实现CPU内部各个器件之间的联系。
外部总线实现CPU和主板上其它器件的联系。

2.相关术语

(1) x位CPU
(2) ISA (Instruction-set Architecture)
(3) x86

二、通用寄存器

8086CPU中,寄存器AX, BX, CX, DX通常用于存放一般性数据,称为通用寄存器。每个寄存器均为16位。

AX分为AH和AL
BX分为BH和BL
CX分为CH和CL
DX分为DH和DL

技术分享图片

 

三、字在寄存器中的存放

字节 内存划分的基本单位
字 两个字节
双字 四个字节
四字 八个字节

一个字由两个字节组成,可以存在一个16位寄存器中。字的高8位 → 存放于通用寄存器的高8位寄存器
字的低8位 → 存放于通用寄存器的低8位寄存器。

技术分享图片

 

四、汇编指令: mov, add

1.引例

技术分享图片

 

2.指令使用注意事项

技术分享图片

技术分享图片

 

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

1.内存单元的物理地址

CPU访问内存单元时要给出内存单元的地址。
所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。

2.相关说明

(1) 8086中,通过段地址: 偏移地址来间接描述内存单元的物理地址。CPU根据如下公式计算得到物理地址:技术分享图片

其中:
① 「段地址: 偏移地址」 也称「逻辑地址」
② 「段地址 × 16 」 构成段的起始物理地址,故根据需要划分段使用时,段的起始物理地址必须是16的倍数。

(2) 段的划分是灵活的,一个物理地址可以用不同的「段地址: 偏移地址」表示。只要满足段的起始物理地址是16的倍数。
(3) 在写法上,地址通常用十六进制表示。表示十六进制的H在「段地址: 偏移地址」中可省略不写。

六、CS和IP

1.CS和IP是什么?做什么用?

CS: 代码段段寄存器,用于存放代码段的「段地址」
IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。

CS:IP对应的物理地址存放的是CPU将要读取的指令。

技术分享图片

 

2.相关注意事项

(1) CPU从何处执行指令是由CS和IP中的内容决定的。
(2) 程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。
(3) IP和CS值的修改不能通过mov指令实现,需借助转移指令 (如jmp, call等)。

3.修改CS和IP的指令jmp

(1) 同时修改CS、IP的内容:

技术分享图片

用指令中给出的段地址修改CS,偏移地址修改IP。

(2) 只修改IP的内容:

技术分享图片

用指令中寄存器的值修改IP。

 



















以上是关于汇编总结二的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言第四章总结

汇编指令总结

初学汇编 - 第二章总结

《汇编语言》总结01

汇编语言第三章总结

《汇编语言》总结03 —— 包含多个段的程序