版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8086/8088指令系统记忆表 11月19日第三次更新 来源:张克终西秦人的日志我现将指令系统中各种助记符的英文全名写出来,各种助记符的记忆就会变得很简单 o( n _n )o在这之前,先说一下存放器:数据存放器分为:AH&AA AX(accumulator):累加存放器,常用于运算;在乘除等指令中指定用来存放 操作数,另外,所有的I/O指令都使用这一存放器与外界设备传送数据.BH&BA BX(base):基址存放器,常用于地址索引;CH&C匕CX(count):计数存放器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&D匕DX(data)
2、:数据存放器,常用于数据传递。他们的特点是,这4个16位的存放器可以分为高 8位:AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8 位存放器可以分别寻址,并单独使用。另一组是指针存放器和变址存放器,包括:SP (Stack Pointer ):堆栈指针,与SS配合使用,可指向目前的堆栈位置;BP (Base Pointer ):基址指针存放器,可用作 SS的一个相对基址位置;DI ( Destination Index ): 目的变址存放器,可用来存放相对于 ES 段之目的变址 指针。指令指针 IP(Instruction Pointer)标志存放器 FR(Flag
3、Register)OF(overflow flag)DF(direction flag)CF(carrier flag)PF(parity flag)AF(auxiliary flag)ZF(zero flag)SF(sign flag)IF(interrupt flag)TF(trap flag)段存放器 (Segment Register)为了运用所有的内存空间, 8086 设定了四个段存放器,专门用来保存段地址:CS( Code Segment): 代码段存放器;DS(Data Segment ): 数据段存放器;SS( Stack Segment ): 堆栈段 存放器;ES( Extr
4、a Segment ): 附加段存放器。 第一局部:指令助记符:一、数据传送指令1. 通用数据传送指令MOV( Move) 传送PUSH(Push onto the stack ) 进栈POP( Pop from the stack ) 出栈XCHG(Exchange) 交换2. 累加器专用传送指令IN(Input) 输入OUT(Output) 输出XLAT(Translate) 换码3. 有效地址送存放器指令LEA(Load effective address)有效地址送存放器LDS(Load DS with Pointer)指针送存放器和 DSLES(Load ES with Pointe
5、r) 指针送存放器和 ES4. 标志存放器传送指令LAHF(Load AH with flags)标志送 AHSAHF(store AH into flags) AH送标志存放器PUSHF(push the flags) 标志进栈POPF(pop the flags) 标志出栈二、算术指令1. 加法指令ADD(add) 加法ADC(add with carry)带进位加法INC(increment) 加 12. 减法指令带借位减法SUB(subtract) 减法SBB(subtract with borrow)DEC(Decrement) 减 1NEG(Negate) 求补CMP(Compar
6、e) 比拟3. 乘法指令MUL(Unsigned Multiple) 无符号数乘法IMUL(Signed Multiple) 带符号数乘法4. 除法指令DIV(Unsigned divide)无符号数除法IDIV(Signed divide) 带符号数除法CBW(Convert byte to word) 字节转换为字CWD(Contert word to double word) 字转换为双字三、逻辑指令1. 逻辑运算指令AND(and) 逻辑与OR(or) 逻辑或NOT(not) 逻辑非TEST(test) 测试2. 移位指令SHL(shift logical left) 逻辑左移SAL(
7、shift arithmetic left) 算术左移SHR(shift logical right) 逻辑右移SAR(shift arithmetic right) 算术右移ROL(Rotate left) 循环左移ROR(Rotate right) 循环右移RCL(Rotate left through carry) 带进位循环左移RCR(Rotate right through carry) 带进位循环右移四、串处理指令1. 重复前端指令REP(Repeat) 重复串操作直到 (CX)=0 为上REPE(Repeat when empty)假设(CX)=O,那么退出,否那么 CX二CX+
8、1;REPZ(Repeat when flag )假设 ZF=O,那么退出,否那么 CX=CX+1;REPC(Repeat when carry flag)REPNE(Repeat when not empty)REPNZ(Repeat when not zero flag) REPNC(Repeat when not carry flag) 2. 串操作指令MOVSB (Move string of byte)串传送指令MOVSW(Move string of word) 串传送指令 CMPSB(Compare string of byte) 串比拟指令 CMPSW(Compare stri
9、ng of word) 串比拟指令 SCASB(Scan string of byte) 串搜索指令 SCASW(Scan string of word) 串搜索指令 STOSB(Store string of byte) 存串指令 STOSW(Store string of word) 存串指令 LODSB(Load string of byte)取串指令LODSW(Load string of word) 取串指令CLD(Clear direction flag)该指令使DF=0,在执行串操作指令时可使地址自动增量DAA(Decimal adjust after addition)DAS(
10、Decimal adjust after substract)AAA(ASCII adjust after addition)AAS(ASCII adjust after substract)AAM(ASCII adjust after multiple)AAD(ASCII adjust after divid)五、控制转移指令组合BCD码的加法调整指令组合BCD码的减法调整指令 非压缩BCD码加法调成指令 非压缩BCD码减法调成指令 非压缩BCD码乘法调成指令 非压缩BCD码除法调成指令STD(Set direction flag)该指令使DF=1,在执行串操作指令时可使地址自动减量1. 无
11、条件转移指令JMP(jmp) 跳转指令2. 条件转移指令(1) 根据单个条件标志的设置情况转移JZ(或JE)(Jump if zero,or equal)结果为零(或相等)那么转移JS(Jump if sign) 结果为负那么转移JNS(Jump if not sign) 结果为正那么转移JO(Jump if overflow) 溢出那么转移JNP(或 JPO)(Jump if not parity,or parity odd)奇偶位为 0 那么转移JP(或 JPE)(Jump if parity,or parity even)奇偶位为 1 那么转移JB(或 JNAE,JC)(Jump if
12、below,or not above or equal,or carry)低于,或者不高于或等于 , 或进位位为 1 那么转移JNB(或 JAE,JNC)(Jump if not below,or above or equal,or not carry)不低于,或者高于或者等于 , 或进位位为 0 那么转移(2) 比拟两个无符号数 , 并根据比拟的结果转移JB(或 JNAE,JC)JNB(或 JAE,JNC)JBE(或 JNA)(Jump if below or equal,or not above)低于或等于 , 或不高于那么转移JNBE(或 JA)(Jump if not below or
13、 equal,or above)不低于或等于 , 或者高于那么转移(3) 比拟两个带符号数 , 并根据比拟的结果转移小于 , 或者不大于或者等于JL(或 LNGE)(Jump if less,or not greater or equal)那么转移JNL( 或 JGE)(Jump if not less,or greater or equal) 那么转移JLE(或 JNG)(Jump if less or equal,or not greater) 转移JNLE(或 JG)(Jump if not less or equal,or greater) 转移测试CX的值为0那么转移指令JCXZ(J
14、ump if CX register is zero) CX存放器3. 循环指令LOOP(loop) 循环指令4. 子程序CALL(call) 调用指令RET(return) 返回指令5. 中断INT(interrupt) 指令IRET(interrupt return) 从中断返回指令不小于 , 或者大于或者等于小于或等于 , 或者不大于那么不小于或等于 , 或者大于那么INTO(interrupt if overflow)假设溢出那么中断六、处理机控制指令1. 标志处理指令CLC(Clear carry) 进位位置 0 指令 CF-0CMC(Complement carry) 进位位求反指
15、令 CF-CFSTC(Set carry) 进位位置 1 指令 CF-1CLD(Clear direction)方向标志置 0 指令 DF-0STD(Set direction)方向标志置 1 指令 DF-1CLI(Clear interrupt)中断标志置 0 指令 IF-0STI(Set interrupt)中断标志置 1 指令 IF-02. 其他处理机控制指令NOP(No Opreation) 无操作HLT(Halt) 停机WAIT(Wait) 等待ESC(Escape) 换码LOCK(Lock) 封锁 第二局部:伪指令1. 符号定义伪指令:EQU. 2. 数据定义伪指令:DB(Define Byte) :定义字节DW(Define Word) :定义字DD(Define Double) :定义双字DUP(duplication) :重复;复制,复写3. 过程定义伪指令:PROC(Process):4. 定位伪指令:ORG(Origin ) :.5. 常数、变量及标号OFFSET(Offset) :偏移量6. 表达式和运算符: 算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论