汇编语言基础归纳整理(二)

指令系统总结

8086CPU所提供的指令分为以下几大类。

1.传送指令

如mov,push,pop,xchg,in,out等都是传送指令,这些指令实现寄存器与寄存器、寄存器与内存单元、寄存器与端口之间的数据传送。

2.算术指令

如add,sub,mul,div,adc,sbb,inc,dec,cmp等都是算术指令,这些指令实现寄存器和内存中的数据的算术运算。

3.逻辑指令

如and,or,not,xor,shl,shr等都是逻辑指令,除了not指令,它们的执行结果都影响标志寄存器的相关标志位。

4.转移指令

可以修改寄存器IP,或同时修改寄存器CS和IP的指令统称为转移指令。转移指令分为以下几类:

(1)
无条件转移指令,如jmp;

(2)
条件转移指令,如jcxz,je,jne,jb,jnb,ja,jna等;

(3)
循环指令,如loop;

(4)
过程,如call,ret,retf;

(5)
中断,如int,iret。

5.处理机控制指令

如cld,std,cli,sti,nop,clc,stc,wait,esc,lock等都是处理机控制指令,这些指令对标志寄存器或其他处理机状态进行设置。

6.串处理指令

如movsb,movsw,cmps,lods,scas等都是串处理指令,这些指令对内存中的批量数据进行处理。使用这些指令方便地进行批量数据的处理,往往需要和rep,repe,repne等前缀指令配合使用。

特别说明

1.汇编语言可以联系相应知识来认识

例如:

jmp指令(jump 跳跃)

jcxz指令

在寄存器cx的内容为0时跳转

je指令(e:equal)

jne指令(ne:not equal)

标志寄存器中ZF、SF、CF等(F:flag,Z:zero,S:sign,C:carry)

cld和std指令(d:DF标志)

cli和sti指令(i:IF标志)

2.指令的执行对标志寄存器的影响

8086CPU的指令集中,add、sub、mul、div、and、or等指令的执行影响标志寄存器,它们大多是运算类指令(算术或逻辑运算);mov、push、pop、xchg等指令的执行影响标志寄存器,它们大多是传送指令。

几点忠告

  1. 方法比知识本身更重要!
  2. 会用指令手册胜过任何其他求助!
  3. 写相应指令时一定要注意标志寄存器的标志位是否会改变!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值