1) ADD 加法指令
汇编格式:ADD 目的操作数,源操作数
执行的操作:(目的操作数)←源操作数+目的操作数
2) ADC 带进位加法指令
汇编格式:ADC 目的操作数,源操作数
执行的操作:(目的操作数)←源操作数+目的操作数+CF
3) INC 增量指令
汇编格式:INC 操作数
执行的操作:(操作数)←操作数+1
PS:以上三条指令都可作字或字节运算,除INC指令不影响CF标志位外,其他标志位都受指令操作结果的影响。
4) SUB 减法指令
汇编格式:SUB 目的操作数,源操作数
执行的操作:(目的操作数)←目的操作数-源操作数
5) SBB 带借位减法指令
汇编格式:SBB 目的操作数,源操作数
执行的操作:(目的操作数)←目的操作数-源操作数-CF
6) DEC 减量指令
汇编格式:DEC 操作数
执行的操作:(操作数)←操作数-1
7) NEG 求补指令
汇编格式:NEG 操作数
执行的操作:(操作数)←0-操作数
8) CMP比较指令
汇编格式:CMP 目的操作数,源操作数
执行的操作:目的操作数-源操作数。
PS:以上五条指令都可作字或字节运算。另外,除DEC指令不影响CF标志位外,其他指令都对标志位有影响。
9) MUL 无符号数乘法指令
汇编格式:MUL 源操作数
执行的操作:假设为字节操作 (AX)←(AL)×源操作数
假设为字操作 (DX), (AX)←(AX)×源操作数
10) IMUL 有符号数乘法指令
汇编格式:IMUL 源操作数
执行的操作:与MUL一样,只是处理的数据是有符号数,而MUL处理的数据是无符号数。
11) DIV 无符号数除法指令
汇编格式:DIV 源操作数
执行的操作:假设为字节操作:(AL)←(AX)/源操作数的商
(AH)←(AX)/源操作数的余数
假设为字操作: (AX)←(DX、AX)/源操作数的商
(DX)←(DX、AX)/源操作数的余数
商和余数均为无符号数。
12) IDIV 有符号数除法指令
汇编格式:IDIV 源操作数
执行的操作:与DIV一样,只是操作数是有符号数,商和余数均为有符号数,余数符号同被除数符号。
1) AND逻辑与指令
汇编格式:AND 目的操作数,源操作数
执行的操作:(寻址到的目的地址)←目的操作数∧源操作数
2) OR逻辑或指令
汇编格式:OR 目的操作数,源操作数
执行的操作:(寻址到的目的地址)←目的操作数∨源操作数
3) XOR逻辑异或指令汇编判断指令
汇编格式:XOR 目的操作数,源操作数
执行的操作:(寻址到的目的地址)←目的操作数∨源操作数
4) TEST测试指令
汇编格式:TEST 目的操作数,源操作数
执行的操作:目的操作数∧源操作数
5) NOT逻辑非指令
汇编格式:NOT 目的操作数
执行的操作:(寻址到的地址)←(操作数)
1) 逻辑移位指令
● SHL逻辑左移指令
汇编格式:SHL 除立即数及段存放器之外的操作数,移位次数
● SHR逻辑右移指令
汇编格式:SHR 除立即数及存放器之外的操作数,移位次数
2) 算术移位指令
● SAL算术左移指令
汇编格式:SAL 除立即数及段存放器之外的操作数,移位次数
● SAR算术右移指令
汇编格式:SAR 除立即数及段存放器之外的操作数,移位次数
3) 小循环移位指令
● ROL循环左移指令
汇编格式:ROL 除立即数和段存放器之外的操作数,移位次数
● ROR循环右移指令
汇编指令:ROR 除立即数和段存放器之外的操作数,移位次数
控制转移指令
1. 无条件转移指令 JMP
JMP指令的功能就是无条件地转移到指令指定的地址去执行从该地址开始的指令序列。
汇编格式:JMP SHORT 转移地址标号
汇编指令名 | 测试条件 | 操 作 |
JZ(或JE) | ZF=1 | 结果为零(或相等)那么转移 |
JNZ(或JNE) | ZF=0 | 结果不为零(或不相等)那么转移 |
JS | SF=1 | 结果为负那么转移 |
JNS | SF=0 | 结果为正那么转移 |
JO | OF=1 | 结果溢出那么转移 |
JNO | OF=0 | 结果无溢出那么转移 |
JP(或JPE) | PF=1 | 奇偶位为1那么转移 |
JNP(或JPO) | PF=0 | 奇偶位为0那么转移 |
JC(或JNAE或JB) | CF=1 | 有进位那么转移 |
JNC(或JAE或JNB) | CF=0 | 无进位那么转移 |
〔书P111〕
以上是部分汇编指令,亲自打的。最后应周骏康的要求,补充一下存放器注意部分:
通用存放器
●AX→〔AH,AL〕 ●AX:累加器。多用于存放中间运算结果。
●BX→〔BH,BL〕 ●BX:基址存放器。在间接寻址中用于存放基地址;
●CX→〔CH,CL〕 ●CX:计数存放器。用于在循环或串操作指令中存放循环次数或重复次数;
●DX→〔DH,DL〕 ●DX:数据存放器。在32位乘除法运算时,存放高16位数;
指针和变址存放器
●SP:堆栈指针存放器,其内容为栈顶的偏移地址;
●BP:基址指针存放器,常用于在访问内存时存放内存单元的偏移地址。
●SI:源变址存放器
●DI:目的变址存放器
变址存放器常用于指令的间接寻址或变址寻址。
段存放器
CS:代码段存放器,代码段用于存放指令代码
DS:数据段存放器
ES:附加段存放器,数据段和附加段用来存放操作数
SS:堆栈段存放器,堆栈段用于存放返回地址,保存存放器内容,传递参数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论