版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术 一一8086/8088 指令记忆表寄存器:数据寄存器分为:AH&AL = AX(accumulator) :累加寄存器,常用于运算;在乘除等指令中指定用来存放操 作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据BH&BL = BX(base):基址寄存器,常用于地址索引;CH&CL = CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL = DX(data):数据寄存器,常用于数据传递。他们的特点是,这4个16位的寄存器可以分为高 8位:AH,
2、BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器 可以分别寻址,并单独使用。另一组是指针寄存器和变址寄存器,包括:SP (Stack Pointer ):堆栈指针,与SS配合使用,可指向目前的堆栈位置;BP ( Base Pointer ):基址指针寄存器,可用作SS的一个相对基址位置;SI (SourceIndex ):源变址寄存器可用来存放相对于DS段之源变址指针;DI ( DestinationIndex ):目的变址寄存器,可用来存放相对于指令指针 IP(InstructionPointer)标志寄存器 FR(Flag Register)OF(overflow
3、 flag) 溢出则=1DF(direction flag)ES段之目的变址指针。CF(carrier flag)第四位借第三位=1PF(parity flag)=0 则=1AF(auxiliary flag)ZF(zero flag)SF(sign flag)IF(i nterrupt flag)TF(trap flag)段寄存器(SegmentRegister)为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS (Code Segment ):代码段寄存器;DS (Data Segment ):数据段寄存器;SS (Stack Segment ):堆栈段 寄存器;
4、ES (Extra Segment ):附加段寄存器。第一部分:指令助记符:一、数据传送指令1. 通用数据传送指令MOV( Move)传送PUSH( Push on to the stack) 进栈a) 高字节 SP-1低字节SP-2 SP =SP-2b) PUSHA PUSHAD PUSHF PUSHFDPOP( Pop from the stack)出栈a)低字节SP高字节SP+1 SP =SP+2B) POPAD POPA POPFD POPFXCHG ( Exchange)2. 累加器专用传送指令IN(I nput)OUT(Output)XLAT(Tra nslate)DS:AL+BX
5、=AL3. 有效地址送寄存器指令LEA(Load effective address)LDS(Load DS with Pointer)LES(Load ES with Pointer)4.标志寄存器传送指令LAHF(Load AH with flags)SAHF(store AH into flags)PUSHF(push the flags)交换输入输出换码有效地址送寄存器指针送寄存器和DS指针送寄存器和 ES标志寄存器8位送AHAH送标志寄存器8位标志进栈OR(or)逻辑或POPF(pop the flags)二、算术指令1. 加法指令ADD(add)ADC(add with carry
6、)INC(i ncreme nt)2. 减法指令SUB(subtract)SBB(subtract with borrow)DEC(Decreme nt)CMP(Compare)3. 乘法指令MUL(U nsig ned Multiple)A) 8位乘法,内容放在 AXB) 16位乘法,内容放在 DX (高位)IMUL(Sig ned Multiple)标志出栈加法带进位加法加1减法带借位减法减1比较 只改变标志位,不改变目的操作数无符号数乘法AX (低位)带符号数乘法乘法不允许使用立即数,除非是带符号的立即数乘法。4. 除法指令DIV(U nsig neddivide)无符号数除法A)B)C
7、)IDIV(Sig ned divide)8位商AL余数AH16位商AX余数DX除以0,或者溢出均错误CBW(Convert byte to word)CWD(Contert word to double带符号数除法字节转换为字(有符号数)word)字转换为双字(有符号数)三、逻辑指令1. 逻辑运算指令NOT( not) 2 的补码逻辑非NEG 1的补码XOR(exclusive or)异或TEST(test)只改变标志寄存器的状态的AND测试2.移位指令SHL(shiftlogical left)逻辑左移SAL(shiftarithmetic left)算术左移SHR(shiftlogica
8、l right)逻辑右移SAR(shiftarithmetic right)算术右移逻辑移位用于无符号数算术移位用于有符号数ROL(Rotate left)循环左移ROR(Rotate right)循环右移RCL(Rotate left through carry)带进位循环左移RCR(Rotate right through carry)带进位循环右移四、串处理指令1. 重复前端指令REP(Repeat)重复串操作直到(CX)=0为上REPE(Repeatwhe nempty) 若(CX)=0,则退出,否则 CX=CX+1;REPZ(Repeatwhe nflag ) 若ZF=0,则退出,否
9、贝y CX=CX+1;REPC(Repeatwhe ncarryflag)OR(or)逻辑或OR(or)逻辑或REPNE(Repeat when not empty)REPNZ(Repeat whennot zero flag)OR(or)逻辑或OR(or)逻辑或REPNC(Repeat when not carry flag)2串操作指令MOVSB (Move string of byte)ES:DI=ES:SIMOVSW(Move string of word)ES:DI=ES:SIDI=DI+1/-1 串传送指令DI=DI+2/-2串传送指令STOSB(Store string of b
10、yte)from al存串指令STOSW(Store string of word)from ax存串指令LODSB(Load string of byte)in al取串指令LODSW(Load string of word)in ax取串指令CLD(Clear direction flag)该指令使 DF=0,在执行串操作指令时可使地址自动增量STD(Set direction flag) 该指令使 DF=1,在执行串操作指令时可使地址自动减量INSB ES:DI=DX 串输入OUTSB DX = ES:DI 串输出DAA(Decimal adjust after addition)组合
11、BCD 码的加法调整指令DAS(Decimal adjust after substract) 组合 BCD 码的减法调整指令MOVSX 8位转换16位数字 无符号用0填充MOVZX有符号用符号位填充CMPSB(Compare string of byte)存储单元和存储单元串比较指令SCASB(Scan string of byte)存储单元和 AX串搜索指令五、控制转移指令1. 无条件转移指令JMP(jmp)跳转指令2. 条件转移指令(1)根据单个条件标志的设置情况转移JZ(或 JE)(Jump if zero,or equal)结果为零(或相等)则转移JS(Jump if sign)结果
12、为负则转移JNS(Jump if not sign)结果为正则转移JO(Jump if overflow)溢出则转移JNO(Jump if not 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 below,or not above or equal,or carry)低于,或者不高于或等于,或进位位为1则转移JNB(或 JAE,JNC)(Jump if not
13、 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 equal,or above)不低于或等于,或者高于则转 移(3) 比较两个带符号数,并根据比较的结果转移JL(或 LNGE)(Jump if less,or not greater or eq
14、ual)小于,或者不大于或者等于则 转移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)不小于或等于,或者大于则转 移(4) 测试CX的值为0则转移指令JCXZ(Jump if CX register is zero) CX 寄存器3. 循环指令LOOP(loop)CX=0循环指令4. 子程序CAL
15、L(call)将下一条指令的偏移地址压栈调用指令RET(return)返回指令5冲断INT(interrupt) 指令 4 个字节=IP SIIRET(i nterrupt return)从中断返回指令INTO(interruptif overflow)若溢出则中断六、处理机控制指令1.标志处理指令复写CLC(Clear carry)CMC(Compleme nt carry)STC(Set carry)CLD(Clear direction)STD(Set direction)CLI(Clear interrupt)STI(Set interrupt)2. 其他处理机控制指令NOP(No Opreation)HLT(Halt)WAIT(Wait)ESC(Escape)LOCK(Lock)第二部分:伪指令1. 符号定义伪指令:EQU2. 数据定义伪指令:DB(Define Byte):定义字节DW(Define Word):定义字DD(Define Double):定义双字DUP(duplication):重复;复制,3. 过程定义伪指令:PROC(Proce
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论