汇编语言复习重点总结版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.通用数据传送指令
MOV——传送指令
指令格式:MOV DST,SRC;(DST)←(SRC)。DST表示目的操作数, SRC表示源操作数
说明:①.DST为除CS外的各寄存器寻址方式或任意存储器寻址方式。SRC为任意数据寻址方式。
②.DST、SRC不能同时为存储器寻址方式,也不能同时为段寄存器寻址方
式,而且在DST为段寄存器时,SRC不能为立即数。
③.MOV指令不影响标志位。
2.地址传送指令
(1).LEA——有效地址(EA)送寄存器指令
指令格式:LEA REG,SRC;(REG)←SRC
说明:①.指令把源操作数(只能是存储器寻址方式)指定的有效地址送到指令指定的16位或32位寄存器(REG)中(但不能是段寄存器)。
②.LEA指令不影响标志位。
3.加法指令
(1).ADD——加法指令
指令格式:ADD DST,SRC;(DST)←(DST)+( SRC)
4.减法指令
(1).SUB——减法指令
指令格式:SUB DST,SRC;(DST)←(DST) - (SRC)
(2).SBB——带借位减法指令
指令格式:SBB DST,SRC ;(DST)←(DST) - (SRC) - CF
5.除法指令
(1).DIV——无符号数除法指令
指令格式:DIV SRC;字节操作:(AL)←(AX)/(SRC),(AH)←(AX)%(SRC)
字操作:(AX)←(DX,AX)/(SRC),(DX)←
(DX,AX)%(SRC)
双字操作:(EAX)←(EDX,EAX)/(SRC),(EDX)←
(EDX,EAX)%(SRC)
6.逻辑运算指令:可以对双字、字或字节执行按位的逻辑运算。
(1).AND——逻辑与指令
指令格式:AND DST,SRC;(DST)←(DST)∧(SRC)
(2).OR——逻辑或指令
指令格式:OR DST,SRC;(DST)←(DST)∨(SRC)
(3).XOR——逻辑异或指令
指令格式:XOR DST,SRC;(DST)←(DST)⊕(SRC)
(4).PUSH——进栈指令
指令格式:PUSH SRC;16位指令:(SP)←(SP) –2 ((SP)+1,(SP))←(SRC)
32位指令:(ESP)←(ESP) –4 ((ESP)+3, (ESP)+2, (ESP)+1,
(ESP))←(SRC)
说明:①.堆栈:计算机开辟的以“后进先出”方式工作的存储区。它必须存在于
堆栈段中,只有一个出入口,所以只有一个堆栈指针SP 或ESP 。SP 或
ESP 的内容在任何时候都指向当前的栈顶。
②.8086中的SRC 不能为立即数寻址方式。286及其后继机型可用立即数
寻址方式。
③.PUSH 指令不影响标志位。
(5). POPF/POPFD ——标志出栈指令
指令格式:POPF ;(FLAGS)←((SP)+1,(SP)),(SP)←(SP)+2
POPFD ;(EFLAGS)←((ESP)+3, (ESP)+2, (ESP)+1, (ESP)),
(ESP)←(ESP) -4
说 明:这组指令中LAHF 、PUSHF/PUSHFD 不影响标志位。但POPFD 指令不影
响VM ,RF ,IOPL ,VIF 和VIP 的值。
7. 移位指令
(1). 移位指令
1). SHL ——逻辑左移指令
指令格式:SHL OPR ,CNT ; 2). SAL ——算术左移指令
指令格式:SAL OPR ,CNT ;同上
3). SHR ——逻辑右移指令 指令格式:SHR OPR ,CNT ;
4). SAR ——算术右移指令 指令格式:SAR OPR ,CNT ;
(2). 循环移位指令
1). ROR ——循环右移指令 指令格式:ROR OPR ,CNT ;
2). RCR ——带进位位循环右移指令 指令格式:RCR OPR ,CNT ;
说 明:①.OPR 为除立即数以外的任意寻址方式。移位次数由CNT 决定,CNT=1
只移位1次;若移位次数超过1次,在8086中则CNT 必须用CL 代替。
而在其他机型中也可用8位立即数指定范围从1~31的移位次数。
②.CF 位已在指令中给出其影响情况。OF 位只有在CNT=1时有效,一次
移位前后的最高有效位(符号位)发生变化则OF=1,否则OF=0。循环指
令不影响其它条件。移位指令由结果影响SF 、ZF 、PF ,而AF 无定义。
8. 循环指令
(1). LOOP ——循环指令
指令格式:LOOP OPR
测试条件:(Count Reg)≠0
1). JZ (或JE)——结果为零(或相等)则转移
指令格式:JZ (或JE) OPR
测试条件:ZF=1
(2). TEST ——测试指令
指令格式:TEST OPR1,OPR2 ;(OPR1)∧(OPR2)
说 明:①.DST 、OPR 、OPR1不允许使用立即数寻址方式。
(3). CMP ——比较指令
指令格式:CMP OPR1,OPR2 ;(OPR1) - (OPR2),运算后根据结果影响标志 CF OPR 0
CF OPR 0 CF OPR CF OPR CF OPR