资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
汇编指令汇编指令 IBM-PCIBM-PC 汇编语言指令集汇编语言指令集最佳答案 IBM-PC 汇编语言指令集数据传送指令集 MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataCHG功能: 交换两个操作数的数据语法: CHG格式: CHG r1,r2 CHG m,r CHG r,mPUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数 POP 操作数格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPALEA,LDS,LES功能: 取地址至寄存器语法: LEA r,m LDS r,m LES r,mLAT(LATB)功能: 查表指令语法: LAT LAT m算数运算指令ADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,Z,S,OSUB,SBB功能:减法指令语法: SUB OP1,OP2 SBB OP1,OP2格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data影响标志: C,P,A,Z,S,OINC,DEC功能: 把 OP 的值加一或减一语法: INC OP DEC OP格式: INC r/m DEC r/m影响标志: P,A,Z,S,ONEG功能: 将 OP 的符号反相(取二进制补码)语法: NEG OP格式: NEG r/m影响标志: C,P,A,Z,S,OMUL,IMUL功能: 乘法指令语法: MUL OP IMUL OP格式: MUL r/m IMUL r/m 影响标志: C,P,A,Z,S,O(仅 IMUL 会影响 S 标志)DIV,IDIV 功能:除法指令语法: DIV OP IDIV OP格式: DIV r/m IDIV r/mCBW,CWD功能: 有符号数扩展指令语法: CBW CWDAAA,AAS,AAM,AAD功能: 非压 BCD 码运算调整指令语法: AAA AAS AAM AAD影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)DAA,DAS功能: 压缩 BCD 码调整指令语法: DAA DAS影响标志: C,P,A,Z,S位运算指令集 AND,OR,OR,NOT,TEST功能: 执行 BIT 与 BIT 之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data OR r/m,r/m/data TEST r/m,r/m/data NOT r/m影响标志: C,O,P,Z,S(其中 C 与 O 两个标志会被设为 0) NOT 指令不影响任何标志位SHR,SHL,SAR,SAL功能: 移位指令 语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL影响标志: C,P,Z,S,OROR,ROL,RCR,RCL功能: 循环移位指令语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL影响标志: C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能: 设定进位标志语法: CLC STC CMC标志位: C CLD,STD功能: 设定方向标志语法: CLD STD标志位: D CLI,STI功能: 设定中断标志语法: CLI STI标志位: ICMP功能: 比较 OP1 与 OP2 的值语法: CMP r/m,r/m/data标志位: C,P,A,Z,OJMP功能: 跳往指定地址执行语法: JMP 地址J功能: 当特定条件成立则跳往指定地址执行语法: J 地址 注:A: ABOVE,当 C=0,Z=0 时成立B: BELOW,当 C=1 时成立C: CARRY,当弁时成立 CZ: C 寄存器的值为 0(ZERO)时成立E: EQUAL,当 Z=1 时成立G: GREATER(大于),当 Z=0 且 S=0 时成立L: LESS(小于),当 S 不为零时成立N: NOT(相反条件),需和其它符号配合使用O: OVERFLOW,O=1 时成立P: PARITY,P=1 时成立PE: PARITY EVEN,P=1 时成立PO: PARITY ODD,P=0 时成立S: SIGN,S=1 时成立Z: ZERO,Z=1 时成立LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址 LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址 RET RET n标志位: 无INT,IRET功能: 中断调用及返回指令语法: INT n IRET标志位: 在执行 INT 时,CPU 会自动将标志寄存器的值入栈,在执行IRET 时则会将堆栈中的标志值弹回寄存器 字符串操作指令集MOVSB,MOVSW,MOVSD功能: 字符串传送指令语法: MOVSB MOVSW MOVSD标志位: 无CMPSB,CMPSW,CMPSD功能: 字符串比较指令语法: CMPSB CMPSW CMPSD标志位: C,P,Z,S,OSCASB,SCASW功能: 字符串搜索指令语法: SCASB SCASW标志位: C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能: 字符串载入或存贮指令语法: LODSB LODSW STOSB STOSW标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令 S REPE 指令 S REPNE 指令 S标志位: 依指令 S 而定对于 IBM PC 机它有它的指令系统,其中包括:数据传送指令、串处理指令、算术指令、控制移动指令、逻辑指令、处理机控制指令。这里将简单介绍其指令类型及指令说明,如有要求给具体的指令格式及应用,请与 amay 联系,amay 加以更新。1)数据传送指令:负责把数据、地址或立即数传送到寄存器或存储单元中。数据传送指令类型 指 令 说 明通用数据传送指令 MOV(传送) 、PUSH(进栈) 、POP(出栈) 、CHG(交换)累加器专用传送指令 IN(输入指令) 、OUT(输入指令)地址传送指令 LEA(有效地址送寄存器) 、LDS(指针送寄存器和DS) 、LES(指针送寄存器和 ES)标志寄存器传送指令 LAHF(标志送 AH) 、SAHF(AH 送标志寄存器) 、PUSHF(标志进栈) 、POPF(标志出栈)2)算术指令:用来执行算术运算。 算术指令类型 指 令 说 明加法指令 ADD(加法) 、ADC(带进位加法) 、INC(加 1)减法指令 SUB(减法) 、SBB(带借位减法) 、DEC(减 1) 、NEG(求补) 、CMP(比较)乘法指令 MUL(无符号数乘法) 、IMUL(带符号数乘法)除法指令 DIV(无符号数除法) 、IDIV(带符号数除法) 、CBW(字节转换为字) 、CWD(字转换为双字)3)逻辑指令:对字或字节执行逻辑运算。 逻辑指令类型 指 令 说 明逻辑运算指令 AND(逻辑与) 、OR(逻辑或) 、NOT(逻辑非) 、OR(异或) 、TEST(测试)移动指令 SHL(逻辑左移) 、SAL(算术左移) 、SHR(逻辑右移) 、SAR(算术右移) 、ROL(循环左移) 、ROR(循环右移) 、RCL(带进位循环左移) 、RCR(带进位右移)4)串处理指令:处理存放存储器里的数据串。 串处理指令类型 指 令 说 明指 令 MOVS(串传送) 、CMPS(串比较) 、SCAS(串扫描) 、LODS(从串取) 、STOS(存入串)5)控制转移指令:用来控制程序的执行流程。 控制转移指令类型 指 令 说 明无条件转移指令 JMP(段间和段内转移)条件转移指令 JZ(结果为 0(或相等)则转移) 、JS(结果为负则转移) 、JNS(结果为正则转移) 、JO(溢出则转移) 、JNO(不溢出则转移) 、JP(奇偶位为 1 则转移) 、JNP(奇偶位为 0 则转移)循环指令 LOOP(循环指令) 、LOOPPZ/LOOPE(当为 0 或相等时循环指令) 、LOOPNZ/LOOPNE(当不为 0 或不相等时循环指令)子程序指令 CALL(调用指令) 、RET(返回指令)中断指令 INT(中断) 、INTO(如溢出则中断) 、RIET(从中断返回)汇编指令大全(有注释) 一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVS 先符号扩展,再传送.MOVZ 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把 A,C,D,B,SP,BP,SI,DI 依次压入堆栈.POPA 把 DI,SI,BP,SP,B,D,C,A 依次弹出堆栈.PUSHAD 把 EA,EC,ED,EB,ESP,EBP,ESI,EDI 依次压入堆栈.POPAD 把 EDI,ESI,EBP,ESP,EB,ED,EC,EA 依次弹出堆栈.BSWAP 交换 32 位寄存器里字节的顺序CHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)CMPCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/A/EA )ADD 先交换再累加.( 结果在第一个操作数里 )LAT 字节查表转换. B 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即0-FFH); 返回 AL 为查表结果. ( B+AL-AL )2. 输入输出端口传送指令.IN I/O 端口输入. ( 语法: IN 累加器, 端口号D )OUT I/O 端口输出. ( 语法: OUT 端口号D,累加器 )输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 D 指定时,其范围是 0-65535.3. 目的地址传送指令.LEA 装入有效地址.例: LEA D,string ;把偏移地址存到 D.LDS 传送目标指针,把指针内容装入 DS.例: LDS SI,string ;把段地址:偏移地址存到 DS:SI.LES 传送目标指针,把指针内容装入 ES.例: LES DI,string ;把段地址:偏移地址存到 ES:DI.LFS 传送目标指针,把指针内容装入 FS.例: LFS DI,string ;把段地址:偏移地址存到 FS:DI.LGS 传送目标指针,把指针内容装入 GS.例: LGS DI,string ;把段地址:偏移地址存到 GS:DI.LSS 传送目标指针,把指针内容装入 SS.例: LSS DI,string ;把段地址:偏移地址存到 SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装入 AH.SAHF 标志寄存器传送,把 AH 内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32 位标志入栈.POPD 32 位标志出栈.二、算术运算指令ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的 ASCII 码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号