汇编语言复习

  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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值