EE553 Quiz August 8 2015  Name ____________________________________  Student ID __________________

1. Encode MIPS instruction

sra $9, $8, 4

a) 00084902 
b) 00084903 
c) 00094100 
d) 00094102 
e) 00094103 

2. Disassemble MIPS instruction

81080000 		

a) sltu $10, $9, $8 
b) bltz $8, 1f      
c) lb $8, ($8)    
d) srav $9, $8, $10 
e) or $8, $8, $8

3. What is the result of the following MIPS program execution?

	li	$8, 12
	li	$9, 13
	li	$10, 14
	addu	$10, $9, $8

a) $8=0x0000000c, $9=0x0000000d, $10=00000019
b) $8=0x0000000c, $9=0x0000001a, $10=0000000e
c) $8=0x00000014, $9=0x00000012, $10=00000019
d) $8=0x0000001b, $9=0x0000000d, $10=0000000e
e) $8=0x0000000c, $9=0x0000001a, $10=0000000e

4. What is the result of the following MIPS program execution?

	.data
a5:	.byte	0x12
	.byte	0x34
	.byte	0x56
	.byte	0x78
	.byte	0x9a
	.byte	0xbc
	.byte	0xde
	.byte	0xf0
	.text
ld5:	la	$8, a5
	or	$9, $8, $8
	lb	$8, 4 ($8)
	sw	$8, ($9)

a) $8=0x00000056
b) $8=0x12345678
c) $8=0x00000012
d) $8=0xffffff9a
e) $8=0x9abcdef0

5. What is the result of the following MIPS program execution?

bgez2:	li	$8, -12
	bgez	$8, 1f
	li	$10, 14
	li	$10, 15
1:

a) $10 = 12
b) $10 = -12
c) $10 = 14
d) $10 = 15
e) $10 = 0x1f

6. What is the purpose of using program stack in assembly (and any other) programming?

a) Stack is needed to store return addresses for the nested function calls
b) Stack is used to pass function parameters when there is no place on registers
c) Stack is used to allocate space for temporary variables when there is no place on registers
d) Stack is used to save some temporary registers when calling a function
e) All the above

7. What MIPS assembly code corresponds to the following C code?

int a, b;

int f (int state)
{
    int next_state;

    switch (state)
    {
        case 0:  if (a) next_state = 1; break;
        case 1:  if (b) next_state = 2; break;
        case 2:         next_state = 0; break;
    }

    return next_state;
}

////////// a //////////

f:
	li	$3,1
	beq	$4,$3,.L3
	li	$3,2

	beq	$4,$3,.L6
	nop

	bne	$4,$0,.L9
	nop

	lw	$2,%gp_rel(a)($28)
	j	$31
	sltu	$2,$0,$2

.L3:
	li	$2,2
	lw	$3,%gp_rel(b)($28)
	j	$31
	movz	$2,$0,$3

.L6:
	move	$2,$0
.L9:
	j	$31
	nop

////////// b //////////

f:
	addiu	$sp,$sp,-24
	sw	$31,20($sp)
	sw	$16,16($sp)
	move	$16,$4
	beq	$4,$0,.L2
	li	$2,1

	jal	f
	addiu	$4,$4,-1

	mul	$2,$2,$16
.L2:
	lw	$31,20($sp)
	lw	$16,16($sp)
	j	$31
	addiu	$sp,$sp,24

////////// c //////////

f:
	slt	$3,$5,$4
	bne	$3,$0,.L5
	nop

	addu	$2,$2,$4
.L4:
	addiu	$4,$4,1
	slt	$3,$5,$4
	beq	$3,$0,.L4
	addu	$2,$2,$4

	subu	$2,$2,$4
.L5:
	j	$31
	nop

////////// d //////////

f:
	nor	$2,$0,$6
	and	$5,$2,$5
	and	$4,$4,$6
	or	$2,$5,$4
	j	$31
	sw	$2,%gp_rel(e)($28)

////////// e //////////

f:
	lui	$3,%hi(a)
	addiu	$3,$3,%lo(a)
	addiu	$5,$3,40
.L3:
	lw	$4,0($3)
	addiu	$3,$3,4
	bne	$3,$5,.L3
	addu	$2,$2,$4

	j	$31
	nop

///////////////////////

Quiz is created by Yuri Panchul