GATEverse Practice, past papers & mock tests
GATE 2023 · CS - Forenoon
Computer OrganizationCPU Architecture and Addressing ModeshardMCQ2 marks
Consider the given C-code and its corresponding assembly code, with a few operands U1-U4 being unknown. The memory is byte-addressable. // C-code (int is 32-bit)
c
int a[10], b[10], i;
for (i=0; i<10; i++)
  a[i] = b[i] * 8;
; assembly-code (r1-r5 are 32-bit integer registers; initialize r1=0, r2=10; initialize r3, r4 with base address of a, b) L01: jeq r1, r2, end ; if(r1==r2) goto end L02: lw r5, 0(r4) ; r5 <- Memory[r4+0] L03: shl r5, r5, U1 ; r5 <- r5 << U1 L04: sw r5, 0(r3) ; Memory[r3+0] <- r5 L05: add r3, r3, U2 ; r3 <- r3+U2 L06: add r4, r4, U3 L07: add r1, r1, 1 L08: jmp U4 ; goto U4 L09: end Which one of the following options is a CORRECT replacement for operands in the position (U1, U2, U3, U4) in the above assembly code?
Save your progress

Related Computer Organization PYQs