IBMPC汇编语言常用指令符号原理考点大全解读

上传人:pu****.1 文档编号:431650886 上传时间:2022-09-19 格式:DOC 页数:28 大小:560KB
返回 下载 相关 举报
IBMPC汇编语言常用指令符号原理考点大全解读_第1页
第1页 / 共28页
IBMPC汇编语言常用指令符号原理考点大全解读_第2页
第2页 / 共28页
IBMPC汇编语言常用指令符号原理考点大全解读_第3页
第3页 / 共28页
IBMPC汇编语言常用指令符号原理考点大全解读_第4页
第4页 / 共28页
IBMPC汇编语言常用指令符号原理考点大全解读_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《IBMPC汇编语言常用指令符号原理考点大全解读》由会员分享,可在线阅读,更多相关《IBMPC汇编语言常用指令符号原理考点大全解读(28页珍藏版)》请在金锄头文库上搜索。

1、咖啡综合整理#咖啡综合整理汇编语言复习资料整理第二章1、寄存器组(1)通用寄存器 数据寄存器EIP( 32 位)IPEFLAGS( 32 位)ESP (32 位)SP(16 位)FLAGS( 16 位)(16 位)指令指针寄存器 标志寄存器堆栈指针寄存器EAX( 32 位)AX( 16 位)AH(8 位)(高位)AL(8位)(低位)累加器EBX( 32 位)BX( 16 位)BH(8 位)(高位)BL(8位)(低位)基址变址ECX(32 位)CX( 16 位)CH(8 位)(高位)CL(8位)(低位)计数器EDX(32 位)DX( 16 位)DH(8 位)(高位)DL(8位)(低位)数据指针或

2、变址寄存器ESP(32 位)SP(16 位)堆栈指针寄存器EBP(32 位)BP(16 位)基址指针寄存器EDI (32 位)DI(16 位)目的变址寄存器ESI (32 位)SI(16 位)源变址寄存器(2)专用寄存器2、标志位的符号表示、标志位标志为1标志为0OF溢出 (是/否)OVNVDF方向(减量/增量)DNUPIF中断(允许/关闭)EIDISF符号(负/正)NGPLZF零(是/否)ZRNZAF辅助进位(是/否)ACNAPF奇偶(偶/奇)PEPOCF进位(是/否)CYNC3、段寄存器CS( 16位)代码段 DS (16位)数据段SS (16位)堆栈段 ES (16位)附加段4、段寄存器

3、和相应存放偏移地址的寄存器之间的默认组合段偏移CSIPSSSP或 BPDSBX DI、SI或一个16位数ESDI (用于串指令)第三章1、七种寻址方式(举例)立即寻MOV AX,3069H寄存器寻MOV AL,BH在内存中的五种寻址直接寻MOV AX,2000H寄存器间接寻MOV AX,BX寄存器相对寻MOV AX,COUNTSI或者MOV AX,SI+COUNT(不推荐)基址变址寻址MOV AX,BPDI相对基址变址寻址 MOV AX,MASKBXSI2、指令系统I .数据传送指令(1)通用数据传送指令传送带符号扩展传送MOVMOVSX用源操作数的符号位来填充目的操作数的高位数据位。例:MO

4、VSX EAX,CL把CL寄存器中的8位数,符号扩展为 32位数,送到EAX寄存器中。#咖啡综合整理MOVZX带零扩展传送恒用0来填充目的操作数的高位数据位例:MOVZX DX,AL把AL寄存器中的8位数,零扩展成16位数,送到DX寄存器中。PUSH进栈入栈时高位字节先入栈,低位字节后入栈。SP指向栈顶。POP出栈以“先进后出”方式工作。SP指向栈顶PUSHA/PUSHAD所有寄存器进栈PUSHA( 16 位):进栈次序为: AX,CX,DX,BX,SP,BP,SI,DIPUSHAD(32位):进栈次序为:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDIPOPA/POPAD所有寄

5、存器出栈POPA(16位):出栈次序为:DI,SI,BP,SP,BX,DX,CX,AXPOPAD(32位):出栈次序为:EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAXXCHG交换例:XCHG AX,BX 交换 AX与BX中的数据(2) 累加器专用传送指令(只限于使用累加器)IN输入例:IN AX,28HMOV DATA_WORD,AX把端口 28的内容经过 AX传送到存储单元 DATA_WORD。OUT输出例: OUT 5,AL从AL寄存器输出一个字节到端口5。XLAT换码(3)地址传送指令LEA有效地址送寄存器LDS指针送寄存器和DSLES指针送寄存器和ESLFS指针送寄存器

6、和FSLGS指针送寄存器和GSLSS指针送寄存器和SS LEALEA REG,SRC把源操作数的有效地址送到指定的寄存器中 LDS LES LFS、LGS LSS指针送寄存器和段寄存器指令LDS REG,SRC把SRC的偏移地址放到 REG中,又把偏移地址(SRC+2)放到DS中(4)标志寄存器传送指令LAHF标志送AHSAHFAH送标心寄存器PUSHF/PUSHFD标志进栈POPF/POPFD标志出栈(5)类型转换指令CBW字节转换为字CWD字转换为双字CDQ双字转换为4字BSWAP字节交换以CW场例,把AX的内容扩展到 DX DX为高位,AX为低位。如果 AX最高有效位=1,(DX)=OF

7、FFFH;如果AX的最 高有效位=0,(DX)=0。CBW为AL扩展至 AH形成 AXCDQ为EAX扩展至 EDX形成 EDX:EAXII.算术指令(1)加法指令ADD加法例:ADD DST,SRC把DST与 SRC的和放入 DST中ADC带进位加法例: ADC DST SRC把DST SRC与进位标志 CF的和放入 DST中INC加 1例:INC OPROPR 加一XADD交换并相加例: XADD DST,SRC首先把DST与SRC交换,然后把两数之和放入DST中。(2) 减法指令SUB减法例:SUB DST,SRC把DST与 SRC的差放入 DST中SBB带借位减法例: SBB DST,S

8、RC把DST SRC以及 CF的差放入 DST中DEC减 1例:DEC OPROPR 减一NEG求补例:NEG OPR把OPF按位操作求反以后加一,一般用于求相反数。CMP比较与SUB SBB一样都是减法操作, 不同的是CMP并不保留减法结果,只是改变标志位。CMPXCHG比较并交换CMPXCHG8B比较并交换8字节(3)MULIMUL乘法指令无符号数乘法有符号数乘法乘法指令的目的操作数必须是累加器。两个8位数相乘,结果放在 AX中。两个16位数相乘,高位放在 DX中,低位放在 AX中。(4)除法指令DIV无符号数除法IDIV有符号数除法 除法指令与乘法指令的寻址方式相同字节运算时目的操作数在

9、 AX中,结果的商放在 AL中,余数放在AH中字运算时目的操作数在 DX高位字和AX低位字中,结果的商放在 AX中,余数放在DX中III.逻辑指令ANDORNOTXORTEST逻辑运算指令逻辑与逻辑或逻辑非异或测试在这里,TEST与 AND的功能是一样的,但是 TEST的结果并不保存(2)移位指令(结合课本 73页的图以后课后习题 3.27来复习)SHL逻辑左移每次将操作数的最高位移出并移到CF,最低位补0SAL算数左移SAL指令与SHL指令完全相同SHR逻辑右移每次将操作数的最低位移出并移到CF,最高位补0SAR算数右移把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补,并把最低位

10、存入 CFROL循环左移把目的操作数的最高位移到最低位,并进入CF中。ROR循环右移把目的操作数的最低位移到最高位,并进入CF中。RCL带进位循环左移整体往左移动,原 CF的值填补空出的位,移出的位再进入CFRCR带进位循环右移整体往右移动,原 CF的值填补空出的位,移出的位再进入CF(3)串处理指令MOVS串传送包括MOVS MOVSB MOVSWMOVS四种格式,该操作指令的功能为:把DS:SI所指向的变量传送到 ES:DI中。LEA si,source_bufferLEA di,dest_bufferCLDMOV cx,n把源缓冲区的偏移地址放入si中把目的缓冲区的偏移地址放入di中清除

11、方向位DF,方向为从低位向咼位进行 设置要传送的变量个数n般用法为:REP movsb重复串传送,从ds:si到es:diCMPS串比较该指令是把指针 DS:SI和ES:DI所指向字节、 志位,变址寄存器 SI和DI也将根据标志位字或双字的值相减,CX为比较的个数,DF的值作相应增减。并用所得到的差来设置有关的标例:想要比较两个字符是否相等,就要观察ZF的情况,为1则相等,为0则不想等SCAS串扫描该指令是用指针 ES:DI所指向字节、字或双字的值与相应的AL、AX或EAX的值相减,用所得到的差来设置有关标志位。与此同时,变址寄存器DI还将根据标志位DF的值进行增减。LODS从串取从由指针DS

12、:SI所指向的内存单元开始,取一个字节、字或双字进入AL、AX或EAX中,并根据标志位 DF对寄存器SI作相应增减。该指令的执行不影响任何标志位。STOS存入串该指令是把寄存器 AL、AX或EAX中的值存于以指针 ES:DI所指向内存单元为起始的一片存储单元里,并根据标志 位DF对寄存器DI作相应增减。该指令不影响任何标志位。INS串输入该指令是从某一指定的端口接受一个字符串,并存入一片存储单元之中。输入端口由DX指定,存储单元的首地址和读入数据的个数分别由 ES:DI和CX来确定。在指令的执行过程中,还根据标志位DF对寄存器DI作相应增减。该指令不影响任何标志位。OUTS串输出该指令是把一个

13、字符串输入到指定的输出端口中。输出端口由DX指定,其输出数据的首地址和个数分别由DS:SI和CX来确定。在指令的执行过程中,还根据标志位 DF对寄存器SI作相应增减。该指令的执行不影响任何标志位。重复REPREPE/REPZREPNE/REPNZ对于以上重复指令,若相等、为零则重复 不相等、不为零则重复 cx=0则停止执行重复。(4)控制转移指令 无条件转移JMP 1.JZ(JE)JNZ(JNE)JSJNSJOJNOJP(JPE)JNP(JPO)JB(JNAE、JC)JNB (JAE、JNC)2.JB(JNAE、JC)JNB (JAE、JNC)JBE (JNA)JNBE (JA)3.JL(JNGE)JNL(JGE)JLE(JNG)条件转移根据单个条件设置转移 等于零(相等)则转移 不等于零(不想等)则转移 结果为负则转移 结果为正则转移 溢出则转移 不溢出则转移 奇偶位为1则转移 奇偶位为0则转移 低于(不高于,等于,进位为 不低于(高于,等于,进位为 无符号数比较 低于(不高于,等于,进位为 不低于(高于,等于,进位为 低于,等于(不高于)则转移 不低于,等于(高于)则转移 有符号数比较 小于(不大于,等于)则转移 不小于(大于,等于)则转移 小于,等于(不大于)则转移1)则

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号