UNIT TWO

声明

基于8086的寄存器共14个16位的,分别是

ax  bx  cx  dx  (通用寄存器)

si  di  bp  sp    (基址与变址寄存器)

cs  ss  ds  es   (段寄存器)

ip flags              (指令指针和标志寄存器)

常用的是第一排、第三排

附:

AX Accumulator Register
BX Base Register
CX Count Register
DX Data Register
CS Code Segment Register
IP Instruction Pointer Register

通用寄存器

如ax,bx,cx,dx寄存器,通常用于存放一般数据,称为通用寄存器。

为了与早期CPU操作兼容,这4个寄存器均可拆分成两个8位寄存器单独使用。

AX分为AH和AL
BX分为BH和BL
CX分为CH和CL
DX分为DH和DL

而AH和AL可以作为两个八位寄存器单独使用。 

字在寄存器中的存放

字节  内存划分的基本单位
字   两个字节
双字  四个字节
四字  八个字节

汇编指令mov add

注意事项

1.在mov和add指令中,两个操作对象的位数应一致

2.运算时超出寄存器表示的位数时,进位大的1不显示

2的示例:

8086表示物理地址的方法

段地址  × 16  + 偏移地址  =  物理地址

*根据需要,段的起始物理地址必须是16的倍数

CS与IP

CS: 代码段段寄存器,用于存放代码段的「段地址」
IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址
CS:IP对应的物理地址存放的是CPU将要读取的指令。
(CS) × 16 + (IP) → 指令的物理地址

JMP指令:修改CS与IP

1.同时修改cs ip

jmp   段地址: 偏移地址

例:
jmp 2AE3:3 ; CS ← 2AE3H
IP ← 3H

 

2.只修改ip

jmp   某一合法寄存器

例:
jmp AX ; IP ← AX

posted @ 2018-12-23 02:28  新生代农民工999号  阅读(239)  评论(0编辑  收藏  举报