目的
使用risc-v汇编语言将十进制数转成十六进制数
数学过程
在数学中,将十进制的数转成十六进制的数用该数除以16一直取余,最后将余数从后往前写出即可得到hex。我们在该实验中也使用这种简单暴力的方法,将数据存储在数据存储器中。
代码如下:
.data
number:
.word 12345678
.text
start:
lui t0,0x00002
lw a0,0x0(t0)#存储器存储数据
addi a1,zero,16#a1存储立即数16
add a4,zero,zero#a4存储循环次数,方便移位
add a3,zero,zero#a3存储中间计算结果
jal ra,loop#跳转到loop子程序
loop:
add a2,zero,a0#将a0寄存器值存到a2
div a0,a0,a1#a0作为被除数
rem a2,a2,a1#a2负责取余数
slli a5,a4,2
sll a2,a2,a5#a2向左移4*循环次数位
add a3,a3,a2#计算中间结果
beq a0,zero,result#若商为0,则跳出循环
addi a4,a4,1#循环次数+1
jal zero,loop
result: #保存结果到s3寄存器
add s3,a3,zero