段式地址 寄存器

8086CPU 它的位数是16位 但是地址总线是20位的

于是它用两个16位地址合成来表达一个20位的地址 (用地址加法器加工的)

第一个16位叫段地址 第二个16位地址叫偏移地址

所以 物理地址= 段地址*16+偏移地址

============================================================

CPU的工作原理 重点

以8086CPU为例, 它有两个最关键的寄存器 CSIP. (段和偏移)

以下是工作循环

1 CS和IP共同组成 地址 M*16+N ,  CPU将从这个地址开始读取内存中的指令

2 指令从内存读进来后, IP的数值增加, 增加多少呢, 取决于指令的字节数 

           比如 B82301 这个机器指令的汇编意思就是mov ax,0123H 

           这个指令3个字节 所以IP由 0000 变成0003

           读进来的指令存放在指令缓冲器里

3 执行指令. 此时 内存中ax的数值将变成 0123H

4 再从头循环

============================================================

 

mov指令被称为传送指令 

但是mov不能设置CS IP的值

只有转移指令可以设置CS IP的值

jmp 就是一个转移指令   jmp 段地址:偏移地址

jmp 2AE3:3  执行后 CS=2AE3H, IP=0003H  CPU将从 2AE33H处读取指令

jmp 3:0B16  执行后  CS=0003H, IP=0B16H  CPU将从 00B46H处读取指令

jmp还有一种格式 jmp 一个内存地址  

jmp ax 意思是 mov IP, ax

 

你可能感兴趣的:(汇编笔记)