LoginSignup
2
1

More than 5 years have passed since last update.

初学者のための「コンピュータの動作原理」RISC-V 編 Lesson 2

Last updated at Posted at 2019-04-15

RV32I インストラクション・セットを読みながら,次のコードを読みましょう。与えられたレジスタマップを使用してください。手順についてはこちらを参照してください。

さて,このコードは,何を計算しているのでしょうか? 考察してみましょう。初期値を色々変えてみて,実行結果を分析してみると,きっと理解できますよ。

コード

    .file   "sample.c"
    .option nopic
    .text
    .align  2
    .globl  calc
    .type   calc, @function
calc:
    li  a5,1
    li  a4,0
.L2:
    bgt a5,a1,.L4
    add a4,a4,a0
    addi    a5,a5,1
    j   .L2
.L4:
    mv  a0,a4
    ret
    .size   calc, .-calc
    .ident  "GCC: (GNU) 8.2.0"

レジスタマップ

レジスタ 初期値
a0 0x00000003
a1 0x00000004
a4 0x00000000
a5 0x00000000
pc calcのアドレス
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1