微机原理指令表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本传送指令
MOV reg/mem, imm MOV reg/mem/seg, reg
MOV reg/seg, mem MOV reg/mem, seg
入栈指令
PUSH MEM/REG PUSH SEG
出栈指令
POP MEM/REG POP SEG
交换指令:XCHG REG,MEM/REG
查表指令:XLAT SRC_Table;(AL)←((BX)+(AL))端口输入指令
IN AL,n IN AX,n
IN AL,DX IN AX,DX
端口输出指令
OUT n,AL OUT n,AX
OUT DX,AL OUT DX,AX
取有效地址指令:LEA REG,MEM
地址指针装入DS:LDS REG,MEM
地址指针装入ES:LES REG,MEM
标志装入AH指令:LAHF
设置标志指令:SAHF
标志入堆栈指令:PUSHF
标志出堆栈指令:POPF
不带进(借)位的加减法指令:
ADD 目标,源;
SUB 目标,源;
带进(借)位的加减法指令:
ADC 目标,源
SBB 目标,源
加法调整指令:
非压缩BCD码-----AAA
压缩BCD码-----DAA
减法调整指令:
非压缩BCD码-----AAS
压缩BCD码-----DAS
加1/减1指令INC/DEC 目标
求补指令:NEG 目标
比较指令:CMP 目标,源
CWB:将AL的符号位扩展到AH中;
CWD:将AX的符号位扩展到DX中;
非指令:NOT 目标
与指令:AND 目标,源
或指令:OR 目标,源
异或指令:XOR 目标,源
逻辑测试指令:TEST 目标,源
逻辑左移指令:SHL reg/mem,1/CL
逻辑右移指令:SHR reg/mem,1/CL
算术左移指令:SAL reg/mem,1/CL
算术右移指令:SAR reg/mem,1/CL
小循环左移:ROL REG/MEM,CNT
小循环右移:ROR REG/MEM,CNT
大循环左移:RCL REG/MEM,CNT
大循环右移:RCR REG/MEM,CNT
字符串传送指令
MOVSB;[DS:SI] →[ES:DI],
并修改指针SI=SI+1,DI=DI+1 (DF=0);SI=SI-1,DI=DI-1 (DF=1)
MOVSW;[DS:SI] →[ES:DI],修改指针同上字符串比较指令
CMPSB;[ES:DI]-[DS:SI] →FLAGS CMPSW;[ES:DI]-[DS:SI]→FLAGS,修改指针同上字符串搜索
SCASB;AL—[ES:DI] →FLAGS
SCASW;AX—[ES:DI] →FLAGS,修改指针同上
字符串装入
LODSB;[DS:SI] →AL
LODSW;[DS:SI] →AX,修改指针同上
字符串转储
STOSB;[ES:DI] ←AL
STOSW;[ES:DI]←A X,修改指针同上
重复前缀指令
REP 重复执行其后的字符串指令,直到CX=0 REPE/ERPZ 当相等/为零时重复执行其后的字符串指令REPNE/REPNZ 当不相等/不为零时重复执行其后的字符串指令
无条件转移指令:JMP XUL
无符号数比较后根据其比较结果形成的条件转移指令
JA/JNBE; 若目的操作数>源操作数则转移JAE/JNB; 若目的操作数≥源操作数则转移
JB/JNAE; 若目的操作数< 源操作数则转移
JBE/JNA; 若目的操作数≤源操作数则转移
两个带符号数比较后根据其比较结果形成条件转移指令JG/JNLE; 若目的操作数>源操作数则转移
JGE/JNL; 若目的操作数≥源操作数则转移
JL/JNGE; 若目的操作数< 源操作数则转移
JLE/JNG; 若目的操作数≤源操作数则转移
根据CF、ZF、SF、OF、PF的状态形成的条件转移指令JE/JZ; ZF=1,结果为零时,转移
JNE/JNZ;ZF=0,结果不为零时,转移
JC;CF=1,有借(进)位,转移
JNC;CF=0,无借(进)位,转移
JO;OF=1,有溢出(带符号数)转移
JNO;OF=0,无溢出(带符号数)转移
JP/JPE;PF=1,结果为偶数个1转移
JNP/JPO;PF=0,结果为奇数个1转移
JS;SF=1,最高位为1转移
JNS;SF=0,最高位为0转移
循环指令
LOOP;CX—1 →CX,若C X≠0循环LOOPZ/LOOPE;CX—1 →CX,若C X≠0且ZF=1循环
LOOPNZ/LOOPNE;CX—1 →CX,若C X≠0且ZF=0循环
JCXZ;若C X=0转移
中断返回指令:IRET;
进位标志清零指令:CLC
进位标志置1指令:STC