声明...博客自留地...记录零碎的知识点而已...
条理什么的...别指望了.
通用寄存器
AX BX CX DX
8086 CPU地址寄存器只有16位.但是地址总线是20位..
多出了4位
F(1111) F(1111) F(1111) F(1111) <-4个十六进制数 4x4 所以是16位
F(1111) F(1111) F(1111) F(1111) F(1111) <-5个十六进制数 5x4 所以是20位
就是 4个16进制数变成了5个的..
用地址加法器 把两个16位的地址寄存器里的值通过加法 器加起来 就能组成一个20位的地址了..甚至更多..
CPU 指令 寻址 是通过 CS:IP 得到的
CSx16+IP
段地址x16+偏移地址.
假设 CS 内的值是 1100H
IP 内的值是 0120H
说白了"段地址x16"就是
四位的 1100H 前移一位 变成 五位11000H
加上偏移地址 0120H
11120H <- 实际物理地址.
-------------------------
ps. mov 是可以移动寄存器里的数值的...比如 mov ax.1230H
但是 mov 不能移动 CS 和 IP 里的值...要改变 只有用 jmp
单独用jmp 通用寄存器.就是把通用寄存器里的值赋给IP