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

Posted Chanmo

tags:

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

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工作原理)的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言第二章知识梳理及思考

[架构之路-22]:目标系统 - 系统软件 - 汇编语言结构与X86指令系统以及CPU的工作原理函数调用与堆栈操作

X86汇编2.寄存器

Linux内核设计(第二周)——操作系统工作原理

Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理

java并发编程艺术学习第二章 java并发机制的底层实现原理 学习记录 volatile