微机原理指令详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理与接口技术指令详解

XCHG O1,O2 : Exchange 交换指令,操作数不能为段寄存器、IP和立即数

XLAT 转换表名称(表的首地址) AL=*[DS×16 + BX(表首地址)+AL(距表首地址位移量)] LEA O1, O2 : load efficient address to register

LDS load memory to register and DS

LES load memory to register and ES

LAHF ( load AH with flag ) 用FR的低八位装载AH (存储AH)

SAHF ( store AH to flag ) 卸载AH 到FR的低八位 (取AH)

PUSHF (PUSH Flag) 将标志寄存器FR压入堆栈

POPF (Pop Flag) 将栈顶部的一个字传送到FR

ADC add with carry 带进位(+CF)加法

INC increment 自增1

SUB subtract 不带借位减法

SBB subtract with borrow(借)带借位(-CF)减法

DEC decrement 自减1

NEG negative 求补指令(0-操作数)取反后+1在变符号位

CMP compare 比较指令

MUL multiply 无SF相乘

IMUL signed integer multiply 带SF相乘

DIV divide 无SF相除

IDIV signed integer divide 带SF相除

DAA decimal adjust after add 组合BCD码加法调整

DAS decimal adjust after subtract 组合BCD码减法调整

AAA ASCII adjust after add 非组合BCD码加法调整

AAS ASCII adjust after subtract 非组合BCD码减法调整

AAM ASCII adjust after multiply 乘法后的BCD码调整

AAD ASCII adjust before divide 除法前的BCD码调整

NOT 非/ 求反指令(对于二进制位取反)AND 与运算全1为1

OR 或运算有1为1

XOR 异或运算不同为1

MOD 取余运算

TEXT 测试指令与运算,只影响FR,不送回SHL shift left 逻辑左移

SAL shift arithmetic left 算术左移

SHR shift right 逻辑右移

SAR shift arithmetic right 算术右移

ROL rotate left 循环左移

ROR rotate right 循环右移

RCL rotate carry left 带进位左移(CF在循环内)

RCR rotate carry right 带进位右移

MOVS move string 串传送

STOS store string 串存储(装)

LODS load string 串卸载(取)

CMPS compare string 串比较

SCAS scan string 串搜索

REP repeat CX>0,重复用于字符传送

REPZ/REPE repeat while zero/equal CX>O且ZF!= 0 计数大于0,

两位不相匹配,重复到不相同位,串比较

REPNZ/REPNE repeat while not zero/not equal 用于串搜索,一直搜索到两相

同的位(ZF=0)

JMP jump 跳转到下条指令地址(CS,IP/IP改

变)、

CALL NEAR OPRD 段内调用 CS不变,IP变 PUSH IP

CALL FAR OPRD 段间调用 CS、IP都变先PUSH CS

再PUSH IP

RET 返回断点地址原压入堆栈的IP 、CS

CS×16+IP

RET n 返回 CS*16+IP+n

Jxx jump while xx condition 带条件跳转

JZ jump if ZF=1 结果为0 跳转

JNZ JUMP if ZF=0 结果不为0 跳转

JS JUMP if SF=1 负数跳转

JNS JUMP if SF=O 正数跳转

JP JUMP if PF=1

JNP JUMP if PF=0

JO OF=1

JNO OF=0

JC CF=1

JNC CF=0

JA / JNBE above(高于) Not below and equal

JAE/JNB 高于等于

JB/JNAE 低于

JBE/JNA 低于等于

JG/JNLE >

JGE/JNL >=

JL/JNGE <

JLE/JNG <=

JCXZ jump when CX=0

LOOPZ/LOOPE loop while ZF=1 /equal

LOOPNZ/LOOPNE loop while ZF=0/not equal

RET return

INT interrupt

IRET interrupt return

INTO interrupt on overflow

CBW convert byte to word

CWD convert word to double word

CLC clear carry Flag CF=0

STC set carry Flag CF=1

CMC complement carry Flag CF取反

CLD clear direction Flag DF=0

STD set direction Flag DF=1

CLI clear interrupt Flag IF=0

STI set interrupt Flag IF=1

NOP no operation 设置断点

HLT halt

ESC escape to external device[/color][/quote]

相关文档
最新文档