Name: Date:
HW2
-
(20 points) Convert the following C code to RISC-V assembly instructions. Use the minimum number of instructions necessary. Assume that variables f, g and h are 32- bit integers stored in registers
x5
,x6
andx7
respectively.Be careful not to modify the variables unintentionally. If you need to store temporary values, use one of the other registers.
a.
f = g + h;
b.
f = g - (h - 5);
c.
f = 0x12345000
d.
g = 0x11111111
e.
h = 0x00000FFF
-
(5 points) Consider changing the RISC-V instruction set to support 64 registers instead of 32. Assuming changes are made only to the register fields, draw the new R-type instruction format. Be sure to label each field and include its size.
-
(5 points) How many possible R-type instructions does RISC-V support if every possible combination of opcode, funct7, and funct3 are valid instructions? (You can ignore other instruction types for this question.)