Exemplo ADDi
Post

Exemplo ADDi

RISCuinho

Abaixo apresento exemplo de uso da instrução ADDi, esta instrução faz a adição de um valor imediato (imm) a um registrador (rs1) e grava em outro ou no mesmo registrador (rd).

addi rd, rs1, imm, rd = rs1 + imm

Estes exemplos foi obtido no tutorial: https://www.vicilogic.com/vicilearn/run_step/?s_id=1452

exemplo addi x3, x3, 5

decomposição da instrução `addi x3, x3, 5.

I-typeimm(11:0)rs1f3rdopcode
hex (0x):[ 0 0 5 ]0 300 31 3
bin (0b):[0000 0000 0101][0 0011][000][0 0011][001 0011]

Ou seja:

OpCode: 0x13 SubFunção (f3): 0x00 Valor Imediato: 0x005 Registrador Origem: 0x03 Registrador Destino: 0x03

O OpCode e a funão identificam a operação que será realida no caso Soma de um valor Imediato (0x005) a um Registrador (X03).

Exemplo de Código

O código foi obtido no video tutorial da Vicilogic https://www.vicilogic.com/vicilearn/run_step/?s_id=1452

Código Assembly:

# assembly program            # Notes  (default imm format is decimal 0d)
main:
addi x3, x3, 5                # x3 = x3 + 5        
addi x3, x3, 5                # x3 = x3 + 5        
addi x3, x3, 5                # x3 = x3 + 5        

O código abaixo foi obtido colando o assembly acima na ferramenta Venus

PCinstruction (31:0)basic assembly codeoriginal assembly codeNotes
000x00518193addi x3 x3 5addi x3, x3, 5# x3 = x3 + 5
040x00518193addi x3 x3 5addi x3, x3, 5# x3 = x3 + 5
080x00518193addi x3 x3 5addi x3, x3, 5# x3 = x3 + 5

‘dump’ do programa em binario no simulador Venus. Número de Instruções = 3

1
2
3
4
00518193
00518193
00518193

Referência

  • https://riscuinho.github.io/venus/

This post is licensed under CC BY 4.0 by the author.