MC404 - Organização Básica de Computadores e Linguagem de Montagem
http://www.ic.unicamp.br/~rodolfo/mc404
Revisitando as instruções do processador
Vocês já viram essas instruções/variações em sala ou no laboratório
A meta dos slides abaixo é servir de referência geral mas você também pode utilizar o Reference Card disponível na página da disciplina que contém todas as instruções
Instruções de Load
Instrução
Formato
Descrição
LB rd, rs1, imm
I
Load Byte
LH rd, rs1, imm
I
Load Halfword
LW rd, rs1, imm
I
Load Word
LBU rd, rs1, imm
I
Load Byte Unsigned
LHU rd, rs1, imm
I
Load Halfword Unsigned
Instruções de Store
Instrução
Formato
Descrição
SB rs2, rs1, imm
S
Store Byte
SH rs2, rs1, imm
S
Store Halfword
SW rs2, rs1, imm
S
Store Word
Instruções Aritméticas
Instrução
Formato
Descrição
ADD rd, rs1, rs2
R
Add
ADDI rd, rs1, imm
I
Add Immediate
SUB rd, rs1, rs2
R
Subtract
LUI rd, imm
U
Load Upper Immediate
AUIPC rd, imm
U
Add Upper Immediate to PC
Instruções Lógicas
Instrução
Formato
Descrição
XOR rd, rs1, rs2
R
Exclusive OR
XORI rd, rs1, imm
I
Exclusive OR Immediate
OR rd, rs1, rs2
R
OR
ORI rd, rs1, imm
I
OR Immediate
AND rd, rs1, rs2
R
AND
ANDI rd, rs1, imm
I
AND Immediate
Instruções de Deslocamento
Instrução
Formato
Descrição
SLL rd, rs1, rs2
R
Shift Left Logical
SLLI rd, rs1, imm
I
Shift Left Logical Immediate
SRL rd, rs1, rs2
R
Shift Right Logical
SRLI rd, rs1, imm
I
Shift Right Logical Immediate
SRA rd, rs1, rs2
R
Shift Right Arithmetic
SRAI rd, rs1, imm
I
Shift Right Arithmetic Immediate
Instruções de Comparação
Instrução
Formato
Descrição
SLT rd, rs1, rs2
R
Set Less Than
SLTI rd, rs1, imm
I
Set Less Than Immediate
SLTU rd, rs1, rs2
R
Set Less Than Unsigned
SLTIU rd, rs1, imm
I
Set Less Than Immediate Unsigned
Instruções de Salto Condicionais
Instrução
Formato
Descrição
BEQ rs1, rs2, imm
SB
Branch if Equal
BNE rs1, rs2, imm
SB
Branch if Not Equal
BLT rs1, rs2, imm
SB
Branch if Less Than
BGE rs1, rs2, imm
SB
Branch if Greater Than or Equal
BLTU rs1, rs2, imm
SB
Branch if Less Than Unsigned
BGEU rs1, rs2, imm
SB
Branch if Greater Than or Equal Unsigned
Instruções de Salto Incondicional
Instrução
Formato
Descrição
JAL rd, imm
UJ
Jump and Link
JALR rd, rs1, imm
I
Jump and Link Register
Instruções de Sistema
Instrução
Formato
Descrição
ECALL
I
Environment Call
EBREAK
I
Environment Break
Multiplicação e Divisão (não funciona nesse simulador)
Instrução
Formato
Descrição
MUL rd, rs1, rs2
R
Multiply
DIV rd, rs1, rs2
R
Divide
DIVU rd, rs1, rs2
R
Divide Unsigned
REM rd, rs1, rs2
R
Remainder
REMU rd, rs1, rs2
R
Remainder Unsigned
Mais exercícios
Implemente as funções abaixo utilizando as convenções do RISC-V para chamada de funções: