处理器、内存、指令

1.了解Intel8086处理器的通用寄存器和段地址加偏移地址的内存访问方式
8个通用16位的通用寄存器,CS、DS、ES、IP四个寄存器。
段地址左移四位 + 偏移地址
2.了解分段机制对程序重定位的好处
代码编写简单(使用偏移地址),支持程序被加载到内存的任一位置
3.理解Inter8086处理器内存分段的本质,充分认识到这种分段机制的灵活性
本质是逻辑的将代码或者数据放在任一位置,灵活在于代码的编写对于地址是没有感知的

字节、字、双字、四字

Inter处理器采用低端字节序,低字节位于低地址部分,高字节位于高地址部分

立即数的概念:如果这个数在指令中明确给出了,不需要再去内存中访问,这个数就是立即数。如果指令中给出的是地址,真正的数还需要到内存中访问才能拿到,则不是立即数

指令和非指令的普通二进制数一样,处理器只要把数据取来,就会按照指令的方式去执行它。所以我们会把指令和数据 放在内存中的不同区域,存放指令的区域叫做代码区,存放数据的区域叫做数据区

内存分段机制:如果在汇编代码中直接写死地址,当程序被加载到内存的地址变化时,那么就会访问到错误的数据,或者是执行错误的指令,所以需要重定位技术。一个内存单元的地址用 “段地址:偏移地址“来表示,这样的话我们在编写汇编代码的过程中,使用的地址就是偏移地址。当把程序或者数据段加载到内存时,会设置DS和CS这两个寄存器的值,然后用段地址:偏移地址来寻址

x86中,寄存器是16位的,只能访问64KB的内存,但是这个容量对于当时来说也是太小了,所以有20位的地址线。那么用16位的段地址和偏移地址,如何才能表示20位的内存空间呢,将段地址左移4位,然后加上偏移地址,就是20位的段地址加上偏移地址就是二十位的了。

你可能感兴趣的:(处理器、内存、指令)