汇编语言8086指令系统,指令记录

学习汇编语言,指令系统经常忘记,记录一下。

8086为16位系统,也就是一个字长为16位

通用寄存器:

AH&AL=AX(accumulator)累加寄存器

BH&BL=BX(base)基址寄存器

CH&CL=CX(count)计数寄存器

DH&DL=DX(data)数据寄存器

段寄存器:表明某个段在主存中的位置,相当于基地址

CS(Code Segment)代码段寄存器

DS(Data Segment)数据段寄存器

SS(Stack Segment)堆栈段寄存器

ES(Extra Segment)附加段寄存器

专用寄存器:用来表明偏移地址,与上面的段寄存器相对应

IP(Instruction Pointer)指令指针寄存器

SP(Stack Pointer)堆栈指针寄存器

BP(Base Pointer)基址指针寄存器

SI(Source Pointer)源变址寄存器

DI(Destination Index)目的变址寄存器

标志寄存器:在8086CPU中,add、sub、mul、div、inc、or、and等它们大多都是运算(逻辑运算或是算术运算)指令,是影响标志寄存器的,而mov、push、pop等传送指令对标志寄存器一般没有影响,因为不会产生结果。

c0e819f7bd1e4e41ae0219f3253c6244.png

OF(overflow flag )溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1.
SF (sign Flag) 符号标志 记录运算结果的符号,结果负时为1.
ZF (zero flag) 零标志 运算结果等于0时为1,否则为0.
CF (carry flag) 进位标志 最高有效位产生进位时为1,否则为0.
AF (auxiliary carry flag) 辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0.
PF (parity flag) 奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0.
DF (direcion flag) 方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.
IF (interrupt flag) 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.
TF (trap flag) 陷阱标志 用于调试单步操作.
 

1、MOV

mov 段寄存器,通用寄存器

这个是固定的,如果目的地是段寄存器,源操作数只能是通用寄存器。

1)MOV  WORD PTR[SI], 10F

这个的意思就是按字类型在[SI]中存储10F,而我们只能在地址中按字节存储,这时就需要再开辟一个地址。[SI]=0F ,[SI+1]=01

2、PUSH、POP、POPF、PUSHF

1) push ax

需要执行两步
(1)SP=SP-2(SP指向栈顶)
(2)将ax中的内容送到SS::SP指向的内存单元处。

2) pop ax

(1)将SS::SP指向的内存单元的数据送入ax中。
(2)SP = SP + 2

3)popf

POPF执行时,从堆栈中弹出一个字装入16字节标志寄存器中,指针下移两个字节单元。多用于保护现场和恢复现场。

4)pushf

PUSHF执行时,指针上移两个字节单元,装入16字节标志寄存器的内容

3、NEG(negative)求补指令,用来求补码

4、XCHG(exchange) 用于交换指定寄存器或内存单元的值,后面数的要求和mov一样

5、STD(Set Director)、 STI(Set Interupt)、CLD(Clear Director)、CLI(Clear Interupt)

6、XLAT() 查表转换指令

bx为首地址,al为偏移地址,最后数据送入al

7、shl opd,cl()逻辑左移 向左移动cl指定的次数

8、lea opd,ops (),传送偏移地址

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值