好文档 - 专业文书写作范文服务资料分享网站

IBM-PC汇编语言常用指令、符号、原理、考点大全要点

天下 分享 时间: 加入收藏 我要投稿 点赞

咖啡综合整理

汇编语言复习资料整理

第二章

1、寄存器组

(1)通用寄存器 数据寄存器

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位)(低位)数据

指针或变址寄存器

ESP(32位) SP(16位) 堆栈指针寄存器 EBP(32位) BP(16位) 基址指针寄存器 EDI(32位) DI(16位) 目的变址寄存器 ESI(32位) SI(16位) 源变址寄存器

(2)专用寄存器

EIP(32位) IP(16位) 指令指针寄存器 EFLAGS(32位) FLAGS(16位) 标志寄存器 ESP (32位) SP(16位) 堆栈指针寄存器

2、标志位的符号表示、 标志位 OF 溢出(是/否) DF 方向(减量/增量) IF 中断(允许/关闭) SF 符号(负/正) ZF 零(是/否) AF 辅助进位(是/否) PF 奇偶(偶/奇) CF 进位(是/否) 标志为1 OV DN EI NG ZR AC PE CY 标志为0 NV UP DI PL NZ NA PO NC 3、段寄存器

1

咖啡综合整理

CS(16位)代码段 DS(16位)数据段 SS(16位)堆栈段 ES(16位)附加段

4、段寄存器和相应存放偏移地址的寄存器之间的默认组合 段 CS SS DS ES IP SP或BP BX、DI、SI或一个16位数 DI(用于串指令) 偏移 第三章

1、七种寻址方式(举例)

立即寻 MOV AX,3069H 寄存器寻 MOV AL,BH

在内存中的五种寻址

直接寻 MOV AX,[2000H] 寄存器间接寻 MOV AX,[BX]

寄存器相对寻 MOV AX,COUNT[SI] 或者 MOV AX,[SI+COUNT](不推荐) 基址变址寻址 MOV AX,[BP][DI]

相对基址变址寻址 MOV AX,MASK[BX][SI]

2、指令系统

I. 数据传送指令

(1) 通用数据传送指令

MOV 传送

MOVSX 带符号扩展传送

用源操作数的符号位来填充目的操作数的高位数据位。 例:MOVSX EAX,CL

把CL寄存器中的8位数,符号扩展为32位数,送到EAX寄存器中。

2

咖啡综合整理

MOVZX 带零扩展传送 恒用0来填充目的操作数的高位数据位 例:MOVZX DX,AL

把AL寄存器中的8位数,零扩展成16位数,送到DX寄存器中。

PUSH 进栈

入栈时高位字节先入栈,低位字节后入栈。 SP指向栈顶。

POP 出栈 以“先进后出”方式工作。 SP指向栈顶

PUSHA/PUSHAD 所有寄存器进栈 PUSHA(16位):进栈次序为:AX,CX,DX,BX,SP,BP,SI,DI

PUSHAD(32位):进栈次序为:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI

POPA/POPAD 所有寄存器出栈

POPA(16位):出栈次序为:DI,SI,BP,SP,BX,DX,CX,AX

POPAD(32位):出栈次序为:EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX

XCHG 交换

例:XCHG AX,BX 交换AX与BX中的数据

(2) 累加器专用传送指令

(只限于使用累加器)

IN 输入 例:IN AX,28H

MOV DATA_WORD,AX

把端口28的内容经过AX传送到存储单元DATA_WORD中。

OUT 输出 例:OUT 5,AL

从AL寄存器输出一个字节到端口5。 XLAT 换码

(3) 地址传送指令

LEA 有效地址送寄存器 LDS 指针送寄存器和DS LES 指针送寄存器和ES LFS 指针送寄存器和FS LGS 指针送寄存器和GS LSS 指针送寄存器和SS

3

咖啡综合整理

LEA

LEA REG,SRC

把源操作数的有效地址送到指定的寄存器中 ② LDS、LES、LFS、LGS、LSS指针送寄存器和段寄存器指令

LDS REG,SRC

把SRC的偏移地址放到REG中,又把偏移地址(SRC+2)放到DS中

(4) 标志寄存器传送指令 LAHF 标志送AH

SAHF AH送标志寄存器 PUSHF/PUSHFD 标志进栈 POPF/POPFD 标志出栈

(5) 类型转换指令 CBW 字节转换为字 CWD 字转换为双字 CDQ 双字转换为4字 BSWAP 字节交换

以CWD为例,把AX的内容扩展到DX,DX为高位,AX为低位。如果AX最高有效位=1,(DX)=0FFFFH;如果AX的最高有效位=0,(DX)=0。

CBW为AL扩展至AH,形成AX

CDQ为EAX扩展至EDX,形成EDX:EAX

II.算术指令

(1) 加法指令

ADD 加法 例:ADD DST,SRC

把DST与SRC的和放入DST中 ADC 带进位加法 例:ADC DST,SRC

把DST、SRC与进位标志CF的和放入DST中 INC 加1 例:INC OPR OPR加一 XADD 交换并相加 例:XADD DST,SRC

首先把DST与SRC交换,然后把两数之和放入DST中。

4

咖啡综合整理

(2) 减法指令 SUB 减法 例:SUB DST,SRC

把DST与SRC的差放入DST中 SBB 带借位减法 例:SBB DST,SRC

把DST、SRC以及CF的差放入DST中 DEC 减1 例:DEC OPR OPR减一 NEG 求补 例:NEG OPR

把OPR按位操作求反以后加一,一般用于求相反数。 CMP 比较

与SUB、SBB一样都是减法操作,不同的是CMP并不保留减法结果,只是改变标志位。 CMPXCHG 比较并交换 CMPXCHG8B 比较并交换8字节

(3) 乘法指令 MUL 无符号数乘法 IMUL 有符号数乘法

乘法指令的目的操作数必须是累加器。 两个8位数相乘,结果放在AX中。

两个16位数相乘,高位放在DX中,低位放在AX中。

(4) 除法指令 DIV 无符号数除法 IDIV 有符号数除法

除法指令与乘法指令的寻址方式相同

字节运算时目的操作数在AX中,结果的商放在AL中 ,余数放在AH中

字运算时目的操作数在DX高位字和AX低位字中,结果的商放在AX中 ,余数放在DX中

III.逻辑指令 (1) 逻辑运算指令 AND 逻辑与 OR 逻辑或 NOT 逻辑非 XOR 异或 TEST 测试

在这里,TEST与AND的功能是一样的,但是TEST的结果并不保存

5

IBM-PC汇编语言常用指令、符号、原理、考点大全要点

咖啡综合整理汇编语言复习资料整理第二章1、寄存器组(1)通用寄存器数据寄存器EAX(32位)AX(16位)AH(8位)(高位)AL(8位)(低位)累加器EBX(32位)BX(16位)BH(8位)(高位)BL(8位)(低位)基址变址ECX(32位)CX(16位)CH(8
推荐度:
点击下载文档文档为doc格式
5c1ic5nrql8uhsm07tfq670et7c1ze0174h
领取福利

微信扫码领取福利

微信扫码分享