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位物理地址的方法:
原创博文,转载注明出处!