Solutions and Examples
2.36 or $t0, $zero, $zero# i = 0 li $t1, 101# $t1 = 101 for:beq $t0, $t1, exit# if (i==101) exit add $t2, $t0, $a1 lw $s1, 0($t2)# $s1=b[i] add $s1, $s1, $s0 # $s1=b[i]+c add $t2, $t0, $a0 sw $s1, 0($t2)# a[i]=$s1 addi $t0, $t0, 1# i=i+1 j for exit:
2.36 Number of instructions executed: *8 = 810 Memory data reference: 101 reads writes
3.27 Add & Sub (16 bits) x= # 91 y= # 13 a) addition x+y= # 104 b) subtraction -y= # 2’s complement x-y= # 78
3.27 Multiplication (16 bits) productmultiplier Init x* = Shift right x* = Shift right x* = Shift right x* = Shift right Final
3.27 Division (16 bits) remainder dividend & quotient Init –divisor = Restore Shift left –divisor = Restore Shift left Shift left –divisor = Restore
3.27 Division (cont’d) remainder dividend & quotient Shift left –divisor = Ok Shift left –divisor = Ok Shift left –divisor = Ok
3.42 Floating-point Addition X= ExponentFraction Y= ExponentFraction Srl: Srl: Srl: X+Y= IEEE:
3.42 FP Multiplication X= ExponentFraction Y= ExponentFraction X*Y= Exponent – = Fraction Normalize , exp= IEEE=