当前位置: 首页 > 汇编 > 正文

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

王爽的《汇编语言》虽然结束了,但是我们的思考还要继续,结下来就要进入X86汇编语言的学习了,但是思考还要继续。

指令拾遗,其实指令还有太多,这里只能写一些有限的:

xchg:   交换指令,寄存器和内存变量之间的内容的交换指令,两个交换的数据类型要相同。

需要注意的4个地方:

1.不能同时为内存操作数

2.任何一个操作数不能为段寄存器

3.任何一个操作数不能为立即数

4.两个操作数的长度不能不相等

imul :有符号乘法,将被乘数与乘数君作为有符号数

idiv :有符号除法

aaa:  AAA指令将AL调整为一个非雅锁BCD格式的数字,AL是两个非压缩BCD数字相加后的结果。

xor:   异或运算

test:    Test命令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。但是,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。

sal:      该指令可用来实现算术左移操作。移位量用单个字节编码。移位量可以是一个立即数,或者放在单字节寄存器元素 CL 中。此外SHL( Shift Logical Left ) 逻辑左移指令与 SAL 的效果是一样的。都是将右边填上0

rol:       指令功能:把目的地址中的数据循环左移COUNT次,每次从最高位(最左)移出的数据位都补充到最低位(最右),最后从最高位(最左)移出的数据位保存到CF标志位。

rcr:        汇编指令RCR基本含义用带进位的右移,就是RCR右移时把操作数的最低位移入CF,而CF中原有内容移入操作数的最高位

clc:         CLC执行的操作:将进位位CF清零,即CF=0.

cmc:       进位求反

stc:         将进位表示CF设置为1

hlt:          使程序停止运行,处理器进入暂停状态,不执行任何操作,不影响标志。当复位(外语:RESET)线上有复位信号、CPU响应非屏蔽中断、CPU响应可屏蔽中断3种情况之一时,CPU脱离暂停状态,执行HLT的下一条指令。

wait:          当芯片引线TEST为高电平时使CPU进入等待状态

esc:           换码指令

lock:          封锁总线

cmps:          对比字符串

scas:              SCAS指令用于搜索一个特定的字符或字符串中的字符集。要搜索的数据项应该是在AL,AX(SCASW)或EAX寄存器(SCASD)的(SCASB)。被搜索的字符串应该是在内存中,并指出由ES:DI(或EDI)寄存器。

stos:          将ACC 的内容传入到es:di 中

REPE/REPZ   当ZF=1或比较结果相等,且CX/ECX<>0时重复.
REPNE/REPNZ  当ZF=0或比较结果不相等,且CX/ECX<>0时重复.

本文固定链接: 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/ | Kernel & Me

该日志由 root 于2016年06月03日发表在 汇编 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 汇编学习(十三)8086汇编拾遗 (12) | Kernel & Me