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

汇编学习-第二章(CPU工作原理)

时间:2018-01-27 11:39:26      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:有一个   能力   改ip   原创   com   指针   原理   拆分   外部   

1、逻辑地址与物理地址

逻辑地址:人为假设计算机分散的内存连接一起,并分好段。上面的地址称逻辑地址。

                    逻辑地址 = 基地址(段地址 * 16) + 偏移地址

 

物理地址:存储单元在计算机中的唯一编号。CPU访问存储单元需要的地址。

2、通用寄存器

一个典型的CPU,由控制器、运算器、寄存器等组成,通过内部总线连接。

内部总线实现CPU内部期间的联系。

外部总线实现CPU与主板上其他期间联系。

8086有16个通过寄存器

AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

寄存器为16位,存储值最大值为(2的16次方-1)。因为intel公司的向上兼容性。

AX,BX,CX,DX均可拆分2个8位寄存器。AH和AL,其他类似。

3、字与字节

字节:byte = 8位

字:两个字节 = 16位

4、16位CPU实现20位物理地址的方法

8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。

8086外部有20位地址总线,可传送20位地址,寻址能力为1M。

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

段地址+偏移地址 -> 地址加法器 -> 20位的物理地址。

地址加法器合成物理地址的方法:段地址×16+偏移地址=物理地址。

“段地址×16”有一个更为常用的说法就是数据左移4位。(二进制位)

二进制的数据左移4位,二进制中左移一位等于乘2,移动四位便是乘16

 

5、段的概念

相对CPU,内存被分为很多段。使用段,那么就是使用逻辑地址。由4可以得知段的首地址一定为16的倍数

 

6、段寄存器CS和IP

CS:代码段寄存器

IP:指令指针寄存器

CS中存着基地址,IP存着偏移地址

7、修改CS和IP

可以用汇编指令:JMP

CS和IP都修改:jmp 段地址:偏移地址

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

只修改IP:jmp 某一合法寄存器

仅修改IP的值

CPU与内存的联系:

技术分享图片

 

16位CPU实现20位物理地址的方法:

技术分享图片

原创博文,转载注明出处!

汇编学习-第二章(CPU工作原理)

标签:有一个   能力   改ip   原创   com   指针   原理   拆分   外部   

原文地址:https://www.cnblogs.com/Fsiswo/p/8364590.html

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