80X86汇编指令集

上传人:小** 文档编号:32303810 上传时间:2018-02-10 格式:DOC 页数:5 大小:97KB
返回 下载 相关 举报
80X86汇编指令集_第1页
第1页 / 共5页
80X86汇编指令集_第2页
第2页 / 共5页
80X86汇编指令集_第3页
第3页 / 共5页
80X86汇编指令集_第4页
第4页 / 共5页
80X86汇编指令集_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《80X86汇编指令集》由会员分享,可在线阅读,更多相关《80X86汇编指令集(5页珍藏版)》请在金锄头文库上搜索。

1、1.数据传输指令它们在存储器和寄存器、寄存器和输人输出端口之间传送数据,1) 通用数据传送指令MOV; 传送字或字节。MOVSX: 先符号扩展,,再传送。MOVZX: 先零扩展,再传送。PUSH: 把字压入堆栈。POP: 把字弹出堆栈。PUSHA: 把 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:

2、 交换 32 位寄存器里字节的顺序。XCHG: 交换字或字节(至少有一个操作数为寄存器,段寄存器不可作为操作数)。CMPXCHG; 比较并交换操作数(第个操作数必须为累加器 AL/AX/EAX)。XADD: 先交换再累加(结果在第一个操作数里)。XLAT: 字节查表转换。BX指向一张 256字节的表的起点,AL 为表的索引值(0-255,即 0-FFH)返回 AL为查表结果(BX+ALAL).2) 输入输出端口传送指令IN:I/O 端口输入(语法: IN 累加器,端口号 | IDX)OUT: I/O端口输出(语法: OUT 端口号 | DX,累加器)。输入输出端口由立即方式指定时,其范围是 0

3、-255,由寄存器 DX指定时,其范围0 65535.3) 目的地址传送指令LEA: 装入有效地址。例如:LEA DX,string ;把偏移地址存到 DXLDS; 传送目标指针,把指针内容装人 DS例如:LDS SI,string ;把“段地址:偏移地址”存到 DS:SILES: 传送目标指针,把指针内容装人 ES,例如:LRS DI,string ;把“段地址偏移地址”存到 ES:DILFS: 传送目标指针,把指针内容装人 FS.例如:LES DI,string ;把“段地址:偏移地址”存到 ES:DILGS: 传送目标指针,把指针内容装入 GS。例如:LGS DI,string ;把“段

4、地址:偏移地址”存到 GS:DILSS: 传送目标指针,把指针内容装人 SS.例如:LSS DI,string ;把“段地址:偏移地址”存到 SS:DI4) 标志传送指令LAHF: 标志寄存器传送,把标志装入 AH。SAHF: 标志寄存器传送,把 AH内容装入标志寄存器。PUSHF: 标志入栈。POPF: 标志出栈。PUSHD: 32位标志入栈。POPD: 32位标志出栈。2.算术运算指令ADD: 加法。ADC: 带进位加法。INC; 加 1。AAA: 加法的 ASCII码调整。DAA: 加法的十进制调整。SUB: 减法。SBB: 带借位减法。DEC: 减 1。NEC: 求反(以 0减之)。C

5、MP: 比较(两操作数作减法,仅修改标志位,不回送结果),AAS: 减法的 ASCII 码调整。DAS: 减法的十进制调整。MUL: 无符号乘法IMUL:整数乘法。以上两条,结果回送 AH和 AL(字节运算)成 DX 和 AX(字运算)AAM:乘法的 ASC11码调整。DIV:无符号除法IDIV: 整数除法,以上两条,结果回送:商回送 AL,余数回送 AH,(字节运算)商回送AX,余数回送 DX(字运算)AAD,除法的 ASC1码调整。CBW:字节转换为字(把 AL中字节的符号扩展到 AH中),CWD:字转换为双字(把 AX中的字的符号扩展到 DX中)。CWDE:字转换为双字(把 AX中的字符

6、号扩展到 EAX中)。CDQ: 双字扩展(把 EAX 中的字的符号扩展到 EDX中)。3.逻辑运算指令AND: 与运算。OR; 或运算。XOR: 异或运算。NOT: 取反。TEST: 测试(两操作数作与运算,仅修改标志位,不回送结果)。SHL: 逻辑左移。SAL :算术左移(=SHL).SHR: 逻辑右移。SAR: 算术右移(=SHR)。ROL: 循环左移。RCR: 循环右移。RCL: 通过进位的循环左移RCR: 通过进位的循环右移。以上 8种移位指令,其移位次数可达 255次。移位一次时,可直接用操作码,如:SHL AX,1 移位1 次时,则由寄存器 CL给出移位次数。例如:MOV CL,0

7、4SHL AX,CL 4.串指令“DS:SI” “源串段寄存器:源串地址”。“ES:DI”“目标串段寄存器:目标串变址”。CX: 重复次数计数器。AL/AX: 扫描值。D标志:0 表示重复操作中 SI和 DI应自动增量;1 表示应自动减量。Z标志:用来控制扫描或比较操作的结束。MOVS,串传送(MOVSB 表示传送字符,MOVSW 表示传送字,MOVSD 表示传送双字)。CMPS.串比较(CMPSB 表示比较字符.CMPSW 表示比较字)。SCAS,申扫描。把 AL或 AX的内容与目标串作比较,比较结果反映在标志位。LODS,装人串。把源串中的元素(字或字节)逐一装人 AL或 AX中(LODS

8、B 表示传送字符,LODSW 表示传送字,LODSD 表示传送双字)。STOS: 保存申。是 LODS的逆过程。REP: 当 CX/ECX0时重复。REPE/REPZ: 当 ZF=1或比较结果相等,且 CX/ECXO时重复。REPNE/REPNZ: 当 ZF=O 或比较结果不相等,且 CX/ECX0时重复。REPC; 当 CF=1且 CX/ECX0时重复。REPNC: 当 CF=0且 CX/ECX0时重复。5.程序转移指令1) 无条件转移指令(长转移)。JMP: 无条件转移指令。CALL: 过程调用。RET/RETF: 过程返回。2) 条件转移指令(短转移,-128+127 的距离內)当且仅当

9、(SF XOR OF)=1 时,OP1OP2.JA/JNBE: 不小于或不等于时转移。JAE/JNB: 大于或等于转移。JB/JNAE: 小于转移。JBE/JNA: 小于或等于转移。以上 4条,测试无符号整数运算的结果(标志 C和 Z).JG/JNLE: 大于转移。JGE/JNL: 大于或等于转移。JL/JNGE: 小于转移。JLE/JNG: 小于或等于转移。以上 4条,测试带符号整数运算的结果(标志 S、O 和 Z).JE/JZ: 等于转移。JNE/JNZ:不等于时转移。JC: 有进位时转移。JNC: 无进位时转移。JNO: 不溢出时转移。JNP/JPO: 奇偶性为奇数时转移。JNS: 符号

10、位为 0时转移。JO: 溢出转移。 JP/JPE: 奇偶性为偶数转移,JS: 符号位为 1时转移,3)循环控制指令(短转移)LOOP: CX不为 0时循环,LOOPE/LOOPZ:CX不为 0且标志 Z=1时循环。LOOPNE/LOOPNZ: CX不为 0且标志 Z=0时循环JCXZ: X 为 0时转移,JECXZ: ECX 为 0时转移。4)中断指令INT,中断指令,INTO: 溢出中断。IRET,中断返回。5)处理器控制指令HLT 处理器暂停,直到出现中断或复位信号才继续。WAIT: 当芯片引线 TEST为高电平时使 CPU进人等待状态。ESC: 转换到外处理器。LOCK: 封锁总线。NOP: 空操作。STC: 置进位标志位。CLC: 清进位标志位。CMC: 进位标志取反。STD: 置方向标志位。CLD: 清方向标志位。STI: 置中断允许位。CLI: 清中断允许位。6.伪指令DB: 定义字节。DW: 定义字(2 字节)。PROC: 定义过程。ENDP: 过程结束。SEGMENT: 定义段。ASSUME; 建立段寄存器寻址。ENDS: 段结東。END: 程序结束。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号