CODE :
#include
int main(void)
{
int f,g;
//Initialize elements of array A,B
int A[] = {5,7,11,20,40,15,100,300,-25,66};
int B[] = {0,1,2,3,4,5,6,7,-8,9};
//Initialize f and g
f = 3;
g = 6;
int i = f; //x30
f = A[f];q
i = A[i+1] + f;
B[g] = i;
//Testing
printf("f = %d\n",f);
printf("B[g] = %d",B[g]);
return 0;
}
OUTPUT :
1 slli x30, x5, 3 add x30, x10, x30 slli x31, x6, 3 add x31, x11,...
2.4 For the RISC-V assembly instructions below, what is the corresponding C statement? Assume that the variables f, g, h, i, and j are assigned to registers x5, x6, x7, x28, and x29, respectively. Assume that the base address of the arrays A and B are in registers x10 and x11, respectively. silix30, x5, 3 // x30=f*8 add x30, x10, x30 // x30=&A [f] s111 x31, x6 , 3 // x31 = g.8 add x31, x11, x31 // x31=&B [g]...
Problem 2.4: For the RISC-V assembly instructions below, what is the corresponding C statement? Assume that the variables f, g, h, i, and j are assigned to registers x5, x6, x7, x28, and x29, respectively. Assume that the base address of the arrays A and B are in registers x10 and x11, respectively. х30, х5, 3 add x30, x10, х30 // x30 %3D &A[F] slli x31, х6, 3 add x31, x11, х31 // х31 %3D &B[g] x5, 0(х30) // x30...
2.7 5<S$2.2, 2.3> Translate the following C code to RISC-V. Assume that the variables f, g, h, i, and j are assigned to registers x5, x6. x7. x28, and x29, y. Assume that the base address of the arrays A and B are in registers x10 and x11, respectively. Assume that the elements of the arrays A and B are 8-byte words:
2.7 5 Translate the following C code to RISC-V. Assume that the variables f, g, h, i, and...
Please do the following problems 1. translate into RISC-V Assembly variable rpt in x19 register. if(rpt>0){ rpt=rpt-1; goto loop } 2. Translate the following Risc-V code into C. variable 'i' in register x5, variable 'result' in x6 ,base address of integer 'memarray' in x10 addi x6,x0,0 addi x29,x0,100 LOOP: ld x7,0(x10) add x5,x5,x7 addi x10,x10,8 addi x6,x6,1 blt x6,x29, LOOP
Convert the following C statement to the corresponding ARMv7 assembly code: Assume that the variables f, g, h, i, and j are assigned to registers X0,X1,X2,X3, and X4, respectively. Assume that the base address of the arrays A and B are in registers X6 and X7, respectively. B[8] = A[i−j]; Convert the following LEGv8 assembly instructions to ARMv7 as well as find the corresponding C statement. Assume that the variables f, g, h, i, and j are assigned to registers...
Consider the following RISC-V loop: (i) LOOP: beq x6, XO, DONE (ii) addi x6, x6, -1 addi x5, x5, 2 (iv) slli x7, x5, 1 (iv) bge x5, XO, DONE (vi) jal x0, LOOP (vii) DONE: some-other-instruction Assume that the register x6 is initialized to the value 5, and x5 and x7 to the value 0. Find... a) Final value of x5 at the end of execution b)Final value of x7 at the end of execution c)Total number of instructions...
For Questions 1 to 5 In the following code sequence, we need to stall the RISC-V pipeline to resolve the load-use data hazard i2: add x9, x8, x10 i3: addi x9, x9, -1 14: sd x9, 0(x5) Consider the cycle when i1 is in the EX stage, i2 is in the ID stage, and i3 is in the IF stage. Question1 1 pts What is the value of ID/EX.MemRead in this cycle?
For Questions 1 to 5 In the following...
(ii) f = g - A[C[16) + B[321) (iii) A[i] 4B[8i-811 + 4C[32i+321 Problem 2. Consider the following code (again, assume a 64-bit machine) ld x6, 0 (x7) sd x6, 8(x7) Assume that the register x7 contains the address 0x1000000000000000 and the data at address is 0x112233445566778899 AABBCCDDEEFF. a. What value is stored in 0x100000000000000F on a bigendian machine? b. What value is stored in 0x100000000000000F on a littleendian machine? Problem 1. Write down the RISC V code for the...
2.4 For the MIPS assembly instructions below, what is the corresponding C statement? Assume that the variables f, g, h, i, and j are assigned to registers $s0, $s1, $s2, $s3, and $s4, respectively. Assume that the base address of the arrays A and B are in registers $s6 and $s7, respectively. sll $t0, $s0, 2 # $t0 = f * 4 add $t0, $s6, $t0 # $t0 = &A[f] sll $t1, $s1, 2 # $t1 =...
The relative time ratings of exercises are shown in square brackets after each exercise number. On average, an exercise rated [10] will take you twice as long as one rated [5]. Sections of the text that should be read before attempting an exercise will be given in angled brackets; for example, <1.3> means you should have read Section 1.3, Under the Covers, to help you solve this exercise. 2.1 [5] For the following C statement, what is the corresponding MIPS...