寄存器
通用寄存器
AX、BX、CX、DX这四个寄存器通常用来存放一般性的数据,被称为通用寄存器。
属于十六位寄存器
8086CPU的AX、BX、CX、DX这四个寄存器可分为两个独立的8位寄存器使用:
AX-->AH + AL
BX-->BH + BL
CX-->CH + CL
DX-->DH + DL
字在寄存器中的存储
以8086CPU为例
字节:记为byte,一个字节有8个bit组成,可以存在8位寄存器中。
字:记为word,一个字由两个字节组成,这两个字节分别成为这个字的高位字节和低位字节
几条汇编指令
| 汇编指令 | 控制CPU完成的操作 | 用高级语言描述 |
|---|---|---|
| mov ax,18 | 将18送入寄存器AX | AX=18 |
| mov ah,78 | 将78送入寄存器AH | AH=78 |
| add ax,8 | 将寄存器AX的值加上8 | AX=AX+8 |
| mov ax,bx | 将寄存器BX的数据送入寄存器AX | AX=BX |
| add ax,bx | 将AX和BX中的值相加,结果存入AX | AX=AX+BX |
寻址
实际地址=段地址*n+偏移地址
段寄存器
8086寄存器有四个段寄存器:CS、DS、SS、ES。
CS和IP是8086CPU中两个最关键的寄存器,他们指示了CPU当前尧都区指令的地址。CS为代码段寄存器,IP为指令指针寄存器。
8086CPU从内存M*16+N单元开始,读取一条指令并执行。
修改CS,IP的指令
CPU从何处执行指令是由CS,IP决定的,程序员可通过改变CS,IP的值来控制CPU执行目标指令。
8086CPU不能通过mov改变CS,IP的值。
jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将从2AE33H处读取指令。
jmp 某一合法寄存器
jmp ax-->将IP值赋为ax中的值。

浙公网安备 33010602011771号