汇编总结二
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。
以上是关于汇编总结二的主要内容,如果未能解决你的问题,请参考以下文章