【微机原理实战笔记】《GD32微控制器原理与应用》

记录在学习微机原理时候的知识点,以便温故而知新。

汇编指令

数据传送指令

1.MOV 指令
将源操作数的值赋给目的操作数,源操作数可以是寄存器或立即数,目的操作数只能是寄存器。

MOV Rd,Rn/#num

2.MRS和MSR指令
作用和MOV指令相同,将源操作数(寄存器)的值赋给目的操作数(寄存器)MRS指令的源寄存器只能是特殊寄存器,MSR指令的目标寄存器只能是特殊寄存器。

MRS Rd,Rn
MSR Rd,Rn

3.MOVT指令
高16位赋值操作,将源操作数赋给目的操作数的高16位,而低16位保持不变。作用范围:R0~R12、LR等寄存器,源操作数范围:(0 ~ 0xFFFF)。

MOVT Rd,#num

如下图操作所示,需要将32位任意立即数加载到寄存器,可以用MOV指令将立即数的低16位加载到寄存器低16位,用MOVT指令将立即数的高16位加载到寄存器。
在这里插入图片描述
在这里插入图片描述

基本运算指令

1.ADD和ADC指令
ADD和ADC的区别在于,ADC指令在完成求和并赋值给目的操作数后,会使目的操作数加上进位标志位,即当进位标志位为1时,ADC指令的结果等于ADD指令的结果加1。
进位标志位(Carry Flag,通常简写为CF) 是计算机处理器中的一个标志位,用于反映运算过程中是否产生了进位或借位。当执行加法或减法运算时,如果结果的最高有效位产生了进位(加法)或借位(减法),则进位标志位CF会被设置为1;如果没有进位或借位发生,则CF被设置为0。

ADD/ADC Rd,Rn
ADD/ADC Rd,#num
ADD/ADC Rd,Rn,Rm
ADD/ADC Rd,Rn,#num

;加上后缀S可影响APSR寄存器中的N、Z、C、V标志位。
ADDS/ADCS

2.SUB和SBC指令

SUB/SBC Rd,Rn
SUB/SBC Rd,#num
SUB/SBC Rd,Rn,Rm
SUB/SBC Rd,Rn,#num

;加上后缀S可影响APSR寄存器中的N、Z、C、V标志位。
SUBS/SBCS

3.MUL指令
乘法指令,当源操作数仅有1个时,指令作用为将目的操作数与源操作数乘积后的结果赋值给目的操作数;当操作数有两个时,将两个源操作数乘积后的结果赋值给目的操作数。

MUL Rd,Rn
MUL Rd,Rn,Rm

4.SDIV和UDIV指令
除法指令,当源操作数仅有1个时,指令作用为将目的操作数除以源操作数的商赋值给目的操作数;当操作数有两个时,将第1源操作数除以第2源操作数的商赋值给目的操作数。SDIV将寄存器视为32有符号整数,UDIV指令视其为无符号整数。

SDIV/UDIV Rd,Rn
SDIV/UDIV Rd,Rn,Rm

逻辑运算指令

1.AND(与)、ORR(或)、MVN(非)指令

AND、ORR支持以下的书写格式,当源操作数仅有1个时,指令作用为将目的操作数与源操作数进行相应逻辑运算后的结果赋值给目的操作数;当操作数有两个时,将两个源操作数进行相应逻辑运算后的结果赋值给目的操作数。

AND Rd,Rn
AND Rd,#num
AND Rd,Rn,Rm
AND Rd,Rn,#num

2.BIC(非与)、ORN(或非)、EOR(异或)指令

MVN指令支持将源操作数赋值给目的操作数的格式如下

MVN Rd,Rn
MVN Rd,#num
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值