CPU内部工作(内部通信)

image-20210130165524982

外部有总线和网卡什么的相连!

内部也有线!

寄存器(CPU)

image-20210130170603859

通用寄存器

X86 16位寄存器

image-20210130171013363

image-20210130171221497

image-20210130171621768

怎么兼容8位寄存器

image-20210130172134508

AH high高填0

AL low 低填正常的8位

image-20210130172538044

image-20210130172830793

1个字是两个字节!

一个字节是8位!

进制转换

calc

111 –》 是0到7

所以二进制转8进制 每次看3位就可以了!

1111 –》 是0到15 所以每次看4位就可以了!

1111 转换8进制 先看成3的倍数! 001 111 就是 17

1111 转成16进制 先写出4的倍数 0000 1111 0F–》F

image-20210130174439860

汇编指令

image-20210130173619649

image-20210130175007748

最后AX是1044C 寄存器最多存16位!

最后AX里是044CH!

image-20210130175346991

AL是8位的!所以 最后应该是0058H

AH和AL 不能相加!

丢弃的位去哪了!

image-20210130175534550

物理地址(存储单元的地址)

image-20210130182320532

image-20210130182454565

image-20210130184004794

个人理解:

这里16位是16位字节

image-20210130195658007

怎么加的呢?

image-20210130195750941

image-20210130195814533

段地址左移1位 2进制的话!左移4位!

CPU规定了组合的方式!

image-20210130200025600

image-20210130200209752

image-20210130195451902

image-20210130200742073

2^16=64k这个是没有问题的,16跟地du址线能够表zhi示64K种状态,这个每一种dao状态表示内存里的的一zhuan块区域,这里shu的这块区域应该指的的字节(B),我们要知道应该是某个字节所在的位置,而不是位(b)。所以64K指的是字节,即64KB。

大概啥意思呢?

就是寻址能力的16位!

寻址是寻的 字节(B)!不是位数(b)!

2 16次方 = 64 KB

image-20210130203316664

image-20210130203607797

image-20210130203921958

CPU只看物理地址!它不管段地址和偏移地址!

段寄存器

8086外部提供20位的!

内部通过段地址和偏移地址 来提供20位!

image-20210130205326672

image-20210130210614648

image-20210130211307163

image-20210130211430485

image-20210130211654120

就感觉CS和IP是段地址和偏移地址!

image-20210130210945549

例题

image-20210130212316058

image-20210130212402193

代码段

实验

image-20210130221823184