微机原理汇编常用指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 转移地址标号
以上是部分汇编指令,亲自打的。最后应周骏康的要求,补充一下存放器注意部分:
通用存放器
●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:堆栈段存放器,堆栈段用于存放返回地址,保存存放器内容,传递参数