《2022年2022年汇编语言指令集合-吐血整理 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言指令集合-吐血整理 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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,BH,CH,DH.以及低八位:AL,BL,CL,DL。这 2组8位寄存器可以分别
2、寻址,并单独使用。另一组是指针寄存器和变址寄存器,包括:SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS 段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。指令指针IP(Instruction Pointer)标志寄存器FR(Flag Register)OF(overflow flag)DF(direction flag)CF(carrier fla
3、g)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):堆栈段 寄存器;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -ES(Extra Segment):附加段寄存器。第一部分:指令助记符:一、数
4、据传送指令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)指针送寄存器和DS LES(Load ES with Pointer)指针送寄存器和ES 4.标志寄存器传送指令LAHF(Load AH with flags)标志
5、送 AH SAHF(store AH into flags)AH 送标志寄存器PUSHF(push the flags)标志进栈POPF(pop the flags)标志出栈二、算术指令1.加法指令ADD(add)加法ADC(add with carry)带进位加法INC(increment)加1 2.减法指令SUB(subtract)减法名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -SBB(subtract with borrow)带借位减法DEC(Decrement)减1 NEG(Negate)求补CMP(Compare)比较3.乘法指令MUL(Unsigned
6、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)逻辑非XOR(exclusive or)异或TEST(test)测试2.移位指令SHL(shift logical left)逻辑左移SAL(shift arithmetic le
7、ft)算术左移SHR(shift logical right)逻辑右移SAR(shift arithmetic right)算术右移ROL(Rotate left)循环左移ROR(Rotate right)循环右移RCL(Rotate left through carry)带进位循环左移RCR(Rotate right through carry)带进位循环右移四、串处理指令名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -1.重复前端指令REP(Repeat)重复串操作直到(CX)=0 为上REPE(Repeat when empty)若(CX)=0,则退出,否则 CX
8、=CX+1;REPZ(Repeat when flag)若 ZF=0,则退出,否则 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 string of wo
9、rd)串比较指令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,在执行串操作指令时可使地址自动增量;STD(Set direction flag)该指令使 DF=1,在执行串操作指令时可使地址自动减量.DAA(
10、Decimal adjust after addition)组合 BCD 码的加法调整指令DAS(Decimal adjust after substract)组合 BCD 码的减法调整指令AAA(ASCII adjust after addition)非压缩 BCD 码加法调成指令AAS(ASCII adjust after substract)非压缩 BCD 码减法调成指令AAM(ASCII adjust after multiple)非压缩 BCD 码乘法调成指令AAD(ASCII adjust after divid)非压缩 BCD 码除法调成指令五、控制转移指令1.无条件转移指令名师
11、资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -JMP(jmp)跳转指令2.条件转移指令(1)根据单个条件标志的设置情况转移JZ(或 JE)(Jump if zero,or equal)结果为零(或相等)则转移JS(Jump if sign)结果为负则转移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,
12、or parity even)奇偶位为 1则转移JB(或 JNAE,JC)(Jump if 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)低于或等于,或不高于则转
13、移JNBE(或 JA)(Jump if not below or 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
14、or equal,or greater)不小于或等于,或者大于则转移(4)测试 CX 的值为 0则转移指令JCXZ(Jump if CX register is zero)CX 寄存器名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 7 页 -3.循环指令LOOP(loop)循环指令4.子程序CALL(call)调用指令RET(return)返回指令5.中断INT(interrupt)指令IRET(interrupt return)从中断返回指令INTO(interrupt if overflow)若溢出则中断六、处理机控制指令1.标志处理指令CLC(Clear carry)进位位
15、置 0指令 CF-0 CMC(Complement carry)进位位求反指令CF-CF STC(Set carry)进位位置 1指令 CF-1 CLD(Clear direction)方向标志置 0指令 DF-0 STD(Set direction)方向标志置 1指令 DF-1 CLI(Clear interrupt)中断标志置 0指令 IF-0 STI(Set interrupt)中断标志置 1指令 IF-0 2.其他处理机控制指令NOP(No Opreation)无操作HLT(Halt)停机WAIT(Wait)等待ESC(Escape)换码LOCK(Lock)封锁第二部分:伪指令1.符号
16、定义伪指令:EQU.2.数据定义伪指令:DB(Define Byte):定义字节名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -DW(Define Word):定义字DD(Define Double):定义双字DUP(duplication):重复;复制,复写3.过程定义伪指令:PROC(Process):4.定位伪指令:ORG(Origin):.5.常数、变量及标号OFFSET(Offset):偏移量6.表达式和运算符:算术运算符:SHL(shift logical left):逻辑左移SHR(shift logical right):逻辑右移关系运算符:EQ(Equal):相等NE(Not Equal):不等于LT(Less Than):小于LE(Less Than or Equal):小于等于GT(Greater Than):大于GE(Greater Than or Equal)取值运算符:SEG(Segment)OFFSET(Offset)属性运算符:PTR(Pointer):指针名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -