微机原理汇编常用指令

微机原理汇编常用指令


2024年4月27日发(作者:)

1) ADD 加法指令

汇编格式:ADD 目的操作数,源操作数

执行的操作:(目的操作数)←源操作数+目的操作数

2) ADC 带进位加法指令

汇编格式:ADC 目的操作数,源操作数

执行的操作:(目的操作数)←源操作数+目的操作数+CF

3) INC 增量指令

汇编格式:INC 操作数

执行的操作:(操作数)←操作数+1

PS

:以上三条指令都可作字或字节运算,除

INC

指令不影响

CF

标志位外,其他标

志位都受指令操作结果的影响。

4) SUB 减法指令

汇编格式:SUB 目的操作数,源操作数

执行的操作:(目的操作数)←目的操作数-源操作数

5) SBB 带借位减法指令

汇编格式:SBB 目的操作数,源操作数

执行的操作:(目的操作数)←目的操作数-源操作数-CF

6) DEC 减量指令

汇编格式:DEC 操作数

执行的操作:(操作数)←操作数-1

7) NEG 求补指令

汇编格式:NEG 操作数

执行的操作:(操作数)←0-操作数

8) CMP比较指令

汇编格式:CMP 目的操作数,源操作数

执行的操作:目的操作数-源操作数。

PS

:以上五条指令都可作字或字节运算。另外,除

DEC

指令不影响

CF

标志位外,

其他指令都对标志位有影响。

9) MUL 无符号数乘法指令

汇编格式:MUL 源操作数

执行的操作:假设为字节操作 (AX)←(AL)×源操作数

假设为字操作 (DX), (AX)←(AX)×源操作数

10) IMUL 有符号数乘法指令

汇编格式:IMUL 源操作数

执行的操作:与MUL一样,只是处理的数据是有符号数,而MUL处理的数据是无符

号数。

11) DIV 无符号数除法指令

汇编格式:DIV 源操作数

执行的操作:假设为字节操作:(AL)←(AX)/源操作数的商

(AH)←(AX)/源操作数的余数

假设为字操作: (AX)←(DX、AX)/源操作数的商

(DX)←(DX、AX)/源操作数的余数

商和余数均为无符号数。

12) IDIV 有符号数除法指令

汇编格式:IDIV 源操作数

执行的操作:与DIV一样,只是操作数是有符号数,商和余数均为有符号数,余数符

号同被除数符号。

1) AND逻辑与指令

汇编格式:AND 目的操作数,源操作数

执行的操作:(寻址到的目的地址)←目的操作数∧源操作数

2) OR逻辑或指令

汇编格式:OR 目的操作数,源操作数

执行的操作:(寻址到的目的地址)←目的操作数∨源操作数

3) XOR逻辑异或指令

汇编格式:XOR 目的操作数,源操作数

执行的操作:(寻址到的目的地址)←目的操作数∨源操作数

4) TEST测试指令

汇编格式:TEST 目的操作数,源操作数

执行的操作:目的操作数∧源操作数

5) NOT逻辑非指令

汇编格式:NOT 目的操作数

执行的操作:(寻址到的地址)←(操作数)

1) 逻辑移位指令

● SHL逻辑左移指令

汇编格式:SHL 除立即数及段存放器之外的操作数,移位次数

● SHR逻辑右移指令

汇编格式:SHR 除立即数及存放器之外的操作数,移位次数

2) 算术移位指令

● SAL算术左移指令

汇编格式:SAL 除立即数及段存放器之外的操作数,移位次数

● SAR算术右移指令

汇编格式:SAR 除立即数及段存放器之外的操作数,移位次数

3) 小循环移位指令

● ROL循环左移指令

汇编格式:ROL 除立即数和段存放器之外的操作数,移位次数

● ROR循环右移指令

汇编指令:ROR 除立即数和段存放器之外的操作数,移位次数

控制转移指令

1. 无条件转移指令 JMP

JMP指令的功能就是无条件地转移到指令指定的地址去执行从该地址开始的指令序列。

汇编格式:JMP SHORT 转移地址标号

汇编指令名

JZ(或JE)

JNZ(或JNE)

JS

JNS

JO

JNO

JP(或JPE)

JNP(或JPO)

JC(或JNAE或JB)

JNC(或JAE或JNB)

测试条件

ZF=1

ZF=0

SF=1

SF=0

OF=1

OF=0

PF=1

PF=0

CF=1

CF=0

操 作

结果为零(或相等)那么转移

结果不为零(或不相等)那么转

结果为负那么转移

结果为正那么转移

结果溢出那么转移

结果无溢出那么转移

奇偶位为1那么转移

奇偶位为0那么转移

有进位那么转移

无进位那么转移

〔书P111〕

以上是部分汇编指令,亲自打的。最后应周骏康的要求,补充一下存放器注意

部分:

通用存放器

AX〔AH,AL〕 AX:累加器。多用于存放中间运算结果。

BX〔BH,BL〕 BX:基址存放器。在间接寻址中用于存放基地址;

CX〔CH,CL〕 CX:计数存放器。用于在循环或串操作指令中存放循环次数或

重复次数;

DX〔DH,DL〕 DX:数据存放器。在32位乘除法运算时,存放高16位数;

指针和变址存放器

SP:堆栈指针存放器,其内容为栈顶的偏移地址;

BP:基址指针存放器,常用于在访问内存时存放内存单元的偏移地址。

SI:源变址存放器

DI:目的变址存放器

变址存放器常用于指令的间接寻址或变址寻址。

段存放器

CS:代码段存放器,代码段用于存放指令代码

DS:数据段存放器

ES:附加段存放器,数据段和附加段用来存放操作数

SS:堆栈段存放器,堆栈段用于存放返回地址,保存存放器内容,传递参数


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714187582a2398495.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信