汇编常用指令总结(一)

汇编常用指令总结(一)MOV 传送指令 MOV DEST,SRC。XCHG 交换指令 XCHG OPER1,OPER2 把操作数oper1的内容与操作数oper2的内

大家好,欢迎来到IT知识分享网。

通用寄存器及其命名

1.IA-32系列有8个32位通用寄存器,名称分别为:EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI

2.16位寄存器有4个,AX,BX,CX,DX

简单传送指令

1.MOV 传送指令 MOV DEST,SRC

2.XCHG 交换指令 XCHG OPER1,OPER2 把操作数oper1的内容与操作数oper2的内容交换

简单加减指令

ADD 加法指令 ADD DEST,SRC

SUB 减法指令 SUB DEST,SRC

INC 加1指令 INC DEST

DEC 减1指令 DEC DEST

NEG 取补指令 NEG OPRD

标志寄存器及其使用

状态标志

CF(carry flag) 进位标志 主要反映算术运算是否产生进位或借位,若产生,则CF=1,否则CF=0

ZF 零标志 反映运算结果是否为0

SF(sign flag) 符号标志 根据运算结果的最高位,若最高位为1则SF为1,否则为0,反映了有符号数运算结果的正负(0正1负)

OF(overflow flag) 溢出标志 反映有符号数运算结果是否产生溢出,是置1,否置0

PF(parity flag) 奇偶标志 偶数置1奇数置0

AF 辅助进位标志

状态标志操作指令

CLC(clear carry flag) 清进位标志指令

STC(set carry flag) 置进位标志指令

CMC(complement carry flag) 进位标志取反指令

LAHF(load status flags into AH register) 获取状态标志操作指令

SAHF(store AH into Flags) 设置状态标志操作指令

带进位加减指令

ADC(add with carry) 带进位加法指令 ADC DEST,SRC

SBB(substraction with borrow) 带借位减法 SBB DEST,SRC

取有效地址指令

LEA(load effective address) 取有效地址指令 LEA REC,OPRD

CMP 比较指令 CMP DEST,SRC

JMP 无条件段内直接转移指令 JMP LABEL

堆栈和堆栈操作

PUSH 进栈指令 PUSH SRC 把源操作数src压入堆栈

POP 出栈指令 POP DEST 从栈顶弹出一个双字或字数据到目的操作数

PUSHA 16位通用寄存器全进栈指令 PUSHA 将所有8个16位通用寄存器的内容压入堆栈

POPA 16位通用寄存器全出栈指令 POPA 以PUSHA相反的顺序从堆栈中弹出内容,从而恢复PUSHA之前的寄存器状态

PUSHAD 32位通用寄存器全进栈指令 PUSHAD 将所有8个32位通用寄存器的内容压入堆栈

POPAD 32位通用寄存器全出栈指令 POPAD 以PUSHAD相反的顺序从堆栈中弹出内容,从而恢复PUSHAD之前的寄存器状态

过程调用和返回指令

CALL 过程调用指令 CALL LABEL 段内直接调用LABEL

RET 段内过程返回指令 RET 使子程序结束,继续执行主程序

算术逻辑运算指令

MUL 无符号数乘法指令

IMUL 有符号数乘法指令

IMUL DEST,SRC 有符号数乘法指令

IMUL DEST,SRC1,SRC2 有符号数乘法指令

DIV 无符号数除法指令

IDIV OPRD 有符号数除法指令

符号拓展指令

CBW 字节转化为字指令 CBW

CWD 字转化为双字指令 CWD

CDQ 双字转化为四字指令 CDQ

CWDE 字转化为双字指令 CWDE

拓展传送指令

MOVSX 符号拓展传送指令 MOVSX DEST,SRC 把源操作数SRC符号拓展后送至目的操作数DEST

MOVZX MOVZX DEST,SRC 把源操作数SRC零拓展后送至目的操作数DEST

逻辑运算指令

NOT 否运算指令 NOT OPRD

AND 与运算指令 AND DEST,SRC

OR 或运算指令 OR DEST,SRC

XOR 异或运算 XOR DEST,SRC

TEST 测试指令 TEST DEST,SRC

移位指令 一般移位指令

SAL 算术左移 SAL OPRD,count

SHL 逻辑左移 SHL OPRD,count

SAR 算术右移 SAR OPRD,count

SHR 逻辑右移 SHR OPRD,count

循环移位指令

ROL 左循环移位指令 ROL OPRD,count

ROR 右循环移位指令 ROR OPRD,count

RCL 带进位左循环移位 RCL OPRD,count

RCR 带进位右循环移位 RCR OPRD,count

循环指令

LOOP 计数循环指令 LOOP LABEL

LOOPE 等于循环指令 LOOPE LABEL

LOOPZ 零循环指令 LOOPZ LABEL

LOOPNE 不等于循环指令 LOOPE LABEL

LOOPNZ 非零循环指令 LOOPNZ LABEL

JECXZ 计数转移指令 JECXZ LABEL

汇编常用指令总结(一)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/84479.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信