资源描述:
《汇编指令(常用指令).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编指令百科名片汇编指令是汇编语言中使用的一些操作符(如mov,inc,loop)和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。目录一、数据传输指令二、算术运算指令三、逻辑运算指令四、串指令五、程序转移指令六、伪指令编辑本段一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。 1.通用数据传送指令 MOV传送字或字节. MOVSX先符号扩展,再传送. MOVZX先零扩展,再传送. PUSH把字压入堆栈. POP把字弹出堆栈. PUS
2、HA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP交换32位寄存器里字节的顺序 XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX) XADD先交换再累加.(结果在第一个操作数里) XLAT字节查表转
3、换. ──BX指向一张256字节的表的起点,AL为表的索引值(0-255,即 0-FFH);返回AL为查表结果.([BX+AL]->AL) 2.输入输出端口传送指令. INI/O端口输入.(语法:IN累加器,{端口号│DX}) OUTI/O端口输出.(语法:OUT{端口号│DX},累加器) 输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时, 其范围是0-65535. 3.目的地址传送指令. LEA装入有效地址. 例:LEADX,string;把偏移地址存到DX. LDS传送目标指针,把指针内容装入DS. 例:LDSSI,string;把段地址:偏移地
4、址存到DS:SI. LES传送目标指针,把指针内容装入ES. 例:LESDI,string;把段地址:偏移地址存到ES:DI. LFS传送目标指针,把指针内容装入FS. 例:LFSDI,string;把段地址:偏移地址存到FS:DI. LGS传送目标指针,把指针内容装入GS. 例:LGSDI,string;把段地址:偏移地址存到GS:DI. LSS传送目标指针,把指针内容装入SS. 例:LSSDI,string;把段地址:偏移地址存到SS:DI. 4.标志传送指令. LAHF标志寄存器传送,把标志装入AH. SAHF标志寄存器传送,把AH内容装入标志寄存器. PUSHF
5、标志入栈. POPF标志出栈. PUSHD32位标志入栈. POPD32位标志出栈.编辑本段二、算术运算指令 ADD加法. ADC带进位加法. INC加1. AAA加法的ASCII码调整. DAA加法的十进制调整. SUB减法. SBB带借位减法. DEC减1. NEC求反(以0减之). CMP比较.(两操作数作减法,仅修改标志位,不回送结果). AAS减法的ASCII码调整. DAS减法的十进制调整. MUL无符号乘法. IMUL整数乘法. 以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM乘法的ASCII码调整. DIV无符号
6、除法. IDIV整数除法. 以上两条,结果回送: 商回送AL,余数回送AH,(字节运算); 或商回送AX,余数回送DX,(字运算). AAD除法的ASCII码调整. CBW字节转换为字.(把AL中字节的符号扩展到AH中去) CWD字转换为双字.(把AX中的字的符号扩展到DX中去) CWDE字转换为双字.(把AX中的字符号扩展到EAX中去) CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)编辑本段三、逻辑运算指令 AND与运算. or或运算. XOR异或运算. NOT取反. TEST测试.(两操作数作与运算,仅修改标志位,不回送结果). SHL逻辑左移.
7、SAL算术左移.(=SHL) SHR逻辑右移. SAR算术右移.(=SHR) ROL循环左移. ROR循环右移. RCL通过进位的循环左移. RCR通过进位的循环右移. 以上八种移位指令,其移位次数可达255次. 移位一次时,可直接用操作码.如SHLAX,1. 移位>1次时,则由寄存器CL给出移位次数. 如MOVCL,04 SHLAX,CL编辑本段四、串指令 DS:SI源串