码迷,mamicode.com
首页 > 其他好文 > 详细

汇编总结二

时间:2018-11-15 22:33:29      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:运算   分段   instr   内容   逻辑地址   com   9.png   必须   nbsp   

一、相关基础知识总览

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。

 

汇编总结二

标签:运算   分段   instr   内容   逻辑地址   com   9.png   必须   nbsp   

原文地址:https://www.cnblogs.com/jinevol/p/9966202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!