8086寄存器
8086 有14个16位寄存器,这14个寄存器按其用途可分为
(1)通用寄存器
(2)指令指针
(3)标志寄存器
(4)段寄存器等4类。
有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个)。
顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。
通用寄存器的数据寄存器是两个字节,以AX为例,分为高8位(AH)低8位(AL)
基础汇编指令
add al,1(如果ax=00FFH,那么ax会等于=0000H,进位标志CF变为1)al的值加1赋给al
sub al,1 al的值减1赋给al
mov ax,[1000H] 把值为1000H的地址放到ax
push ax ESP指向的地址减2,把ax里的值压入栈
pop ax ESP指向的地址加2,把ax里的值弹出栈
CPU是从高地址往低地址读取。
物理地址
在存储器里以字节为单位存储 信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。
8086是16位的CPU,地址总线是20位
物理地址=段地址*10H+偏移地址
例:
CS:2000H,IP:0033H
物理地址=2000H*10H+0033H=20033H
栈
先进后出,后进先出,是从高地址往低地址存入。
ESP指向当前的栈顶,EBP是基址指针。