汇编学习(十三)8086汇编拾遗 (12)

太过爱你忘了你带给我的痛 2022-08-23 00:48 270阅读 0赞
  1. 王爽的《汇编语言》虽然结束了,但是我们的思考还要继续,结下来就要进入X86汇编语言的学习了,但是思考还要继续。
  2. 指令拾遗,其实指令还有太多,这里只能写一些有限的:
  3. xchg: 交换指令,寄存器和内存变量之间的内容的交换指令,两个交换的数据类型要相同。
  4. 需要注意的4个地方:
  5. 1.不能同时为内存操作数
  6. 2.任何一个操作数不能为段寄存器
  7. 3.任何一个操作数不能为立即数
  8. 4.两个操作数的长度不能不相等
  9. imul :有符号乘法,将被乘数与乘数君作为有符号数
  10. idiv :有符号除法
  11. aaa: AAA指令将AL调整为一个非雅锁BCD格式的数字,AL是两个非压缩BCD数字相加后的结果。
  12. xor: 异或运算
  13. test: Test命令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。但是,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。
  14. sal: 该指令可用来实现算术左移操作。移位量用单个字节编码。移位量可以是一个立即数,或者放在单字节寄存器元素 CL 中。此外SHL( Shift Logical Left ) 逻辑左移指令与 SAL 的效果是一样的。都是将右边填上0
  15. rol: 指令功能:把目的地址中的数据循环左移COUNT次,每次从最高位(最左)移出的数据位都补充到最低位(最右),最后从最高位(最左)移出的数据位保存到CF标志位。
  16. rcr: 汇编指令RCR基本含义用带进位的右移,就是RCR右移时把操作数的最低位移入CF,而CF中原有内容移入操作数的最高位
  17. clc: CLC执行的操作:将进位位CF清零,即CF=0.
  18. cmc: 进位求反
  19. stc: 将进位表示CF设置为1
  20. hlt: 使程序停止运行,处理器进入暂停状态,不执行任何操作,不影响标志。当复位(外语:RESET)线上有复位信号、CPU响应非屏蔽中断、CPU响应可屏蔽中断3种情况之一时,CPU脱离暂停状态,执行HLT的下一条指令。
  21. wait: 当芯片引线TEST为高电平时使CPU进入等待状态
  22. esc: 换码指令
  23. lock: 封锁总线
  24. cmps: 对比字符串
  25. scas: SCAS指令用于搜索一个特定的字符或字符串中的字符集。要搜索的数据项应该是在ALAXSCASW)或EAX寄存器(SCASD)的(SCASB)。被搜索的字符串应该是在内存中,并指出由ESDI(或EDI)寄存器。
  26. stos: ACC 的内容传入到es:di
  27. REPE/REPZ   当ZF=1或比较结果相等,且CX/ECX<>0时重复.
  28. REPNE/REPNZ  当ZF=0或比较结果不相等,且CX/ECX<>0时重复.
  29. 查看原文:http://zmrlinux.com/2016/06/03/%e6%b1%87%e7%bc%96%e5%ad%a6%e4%b9%a0%ef%bc%88%e5%8d%81%e4%b8%89%ef%bc%898086%e6%b1%87%e7%bc%96%e6%8b%be%e9%81%97-12/

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读