RISC-V汇编学习笔记(一):RISC-V汇编语言和基础的算术指令

废话:

大三老菜狗来更新啦,哎,感叹一下生活不易,天天犯困。

 

注释:

RISC-V汇编学习笔记系列是RISC-V学习笔记系列下的一个分支,在这里着重讲解的是RISC-V的汇编指令是如何实现的。对读懂RISC-V有一定的帮助,但因为不是主线剧情所以会更加随意一点。

汇编的变量:

汇编的变量是通过寄存器实现,为了硬件设计简单,汇编语言不使用变量作为操作数

汇编的操作数是寄存器:CPU中采用有限数量的寄存器操作直接在寄存器中完成

优点:硬件化的寄存器的数据传递与处理速度很快

寄存器:

寄存器作为处理器数据通路中的组件,数据转移与操作受到控制器的控制,通过ALU单元实现对寄存器操作数二点运算操作,通过控制器与存储单元键的读写访存操作实现处理器系统与存储系统键的数据交换

寄存器的设计通用原则:数量适量,少而快

(寄存器是物理上存在的,因此数量有限)RISC-V是有32个寄存器的

这里说明一下,我使用的开源RISC-V项目是32位宽(32bits)的也就是RV32,但使用的教材是RV64的

RISC-V寄存器编号:

1.x0 - x31

2.x0寄存器的值总为0,其他寄存器为其他值

RISC-V汇编语言与C的区别

因为汇编操作的是寄存器所以不需要定义变量的类型,寄存器中的值以何种方式处理是由指令操作决定

RISC-V注释符:

RISC-V汇编语言是以" # "作为注释符,这与python的注释符是一样的

(注释符能让代码更具可读性,因此正确的使用注释符是很重要的)

RISC-V汇编指令的基本用法:

-One   two, three, four                        add        x1, x2, x3

—One  :操作数的名 

—two   :物理操作数

—three :第一个原操作数

—four   :第二个原操作数

RISC-V的加法和减法:

1.加法

add         x1, x2, x3  (in RISC-V)  <——>  a = b + c  (in C)

x1 <=> a                x2 <=> b                x3 <=> c

2.减法

sub        x1, x2, x3  (in RISC-V)  <——>  a = b - c  (in C)

x1 <=> a                x2 <=>b                x3<=>c

RISC-V的加减法整合(突出一个麻烦):

                                                       add        x10,  x1,  x2         # a = b +c

1.a = b + c + d - e  (in C)  <——> add         x10, x10,  x3        # a = a + d

                                                       sub        x10, x10,  x4        # a = a - e 

RISC-V带括号的加减法整合:

                                                             add        x5, x20, x21       # a = g +h

2.f = (g + h)- (i + j)  (in C)  <——>  add        x6, x22, x23      # b = i + j    

                                                             sub       x19,  x5,  x6       # f = a - b

RISC-V含立即数的加减法:

1.加法

addi        x3, x4, 10  (in RISC-V) <——> f = g + 10 (in C)

x3 <=> f                x4 <=> g

2.减法

addi        x3, x4, -10 (in RISC-V) <——> f = g - 10

x3 <=> f                x4 <=> g

3.立即数0在RISC-V中通过硬连线的方式固定为0,及x0寄存器

因此x0寄存器无法作为物理操作数

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值