汇编语言复习重点总结版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档