Loading

寄存器

通用寄存器

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中的值。

posted @ 2022-03-22 10:45  sovo  阅读(170)  评论(0)    收藏  举报