暗記メーカー
ログイン
Architettura e Reti di Calcolatori
  • GIUSEPPE

  • 問題数 60 • 6/7/2024

    記憶度

    完璧

    9

    覚えた

    21

    うろ覚え

    0

    苦手

    0

    未解答

    0

    アカウント登録して、解答結果を保存しよう

    問題一覧

  • 1

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[200], A[200], k ; A[7] = V[k] ; V[k+3] = 0 ; assegnando i registri base, Base A[ ] Base V[ ] k $t3 $t5 $s6 è data dalle istruzioni:

    sll $t0, $s6, 2 add $t1, $t0, $t5 lw $s5, 0 ($t1) sw $s5, 28 ($t3) sw $zero, 12 ($t1)

  • 2

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int C[70], k ; new = new − k ; C[k] = C[k+5] ; assegnando i registri base, C[] new k $s7 $t2 $t1 è data dalle istruzioni:

    sub $t2, $t2, $t1 sll $t0, $t1, 2 add $t1, $t0, $s7 lw $t4, 20 ($t1) sw $t4, 0 ($t1)

  • 3

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[200], A[200], k ; V[5] = 0 ; A[k+1] = A[k] ; assegnando i registri base, Base A[ ] Base V[ ] k $s0 $s2 $t7 è data dalle istruzioni:

    sw $zero, 20 ($s2) sll $t0, $t7, 2 add $t3, $t0, $s0 lw $s5, 0 ($t3) sw $s5, 4 ($t3)

  • 4

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int C[30], k, new ; new = new − C[k] ; C[k+4] = new ; assegnando i registri base, Base C[ ] new k $t2 $s0 $s1 è data dalle istruzioni:

    sll $t0, $s1, 2 add $t1, $t0, $t2 lw $t5, 0 ($t1) sub $s0, $s0, $t5 sw $s0, 16 ($t1)

  • 5

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[200], A[200], k ; V[6] = 0 ; A[k] = A[k+5] ; assegnando i registri base, Base A[ ] Base V[ ] k $t1 $s4 $s3 è data dalle istruzioni:

    sw $zero, 24 ($s4) sll $t0, $s3, 2 add $t3, $t0, $t1 lw $s5, 20 ($t3) sw $s5, 0 ($t3)

  • 6

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int C[70], k, new ; new = −20 ; C[k+8] = C[k] ; assegnando i registri base, BaseC[ ] new k $s1 $t4 $t6 è data dalle istruzioni:

    addi $t4, $zero, −20 sll $t0, $t6, 2 add $t1, $t0, $s1 lw $t5, 0 ($t1) sw $t5, 32 ($t1)

  • 7

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[200], A[200], k, new ; V[k] = A[7] ; new = V[k+3] ; assegnando i registri base, Base A[ ] Base V[ ] new k $s3 $s5 $s1 $t4 è data dalle istruzioni:

    sll $t0, $t4, 2 add $t1, $t0, $s5 lw $s6, 28 ($s3) sw $s6, 0 ($t1) lw $s1, 12 ($t1)

  • 8

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int C[70], k, new ; new = 0 ; C[k+4] = C[k] ; assegnando i registri base, BaseC[ ] k new $t2 $s0 $s3 è data dalle istruzioni:

    add $s3, $zero, $zero sll $t0, $s0, 2 add $t1, $t0, $t2 lw $t4, 0 ($t1) sw $t4, 16 ($t1)

  • 9

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[200], A[200], new, k ; new = V[8] ; A[k] = A[k+1] ; assegnando i registri base, BaseA[ ] BaseV[ ] new k $t3 $t4 $s3 $s2 è data dalle istruzioni:

    lw $s3, 32 ($t4) sll $t0, $s2, 2 add $t7, $t0, $t3 lw $s5, 4 ($t7) sw $s5, 0 ($t7)

  • 10

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int C[70], k, new ; C[k] = 0 ; new = C[k+2]+7 ; assegnando i registri base, Base C[ ] new k $s3 $t5 $t2 è data dalle istruzioni:

    sll $t0, $t2,2 add $t1, $t0, $s3 sw $zero, 0 ($t1) lw $t6, 8 ($t1) addi $t5, $t6, 7

  • 11

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, bit = 0 ; while (val != 0) { val = val >> 1 ; bit = bit + 1 ; } test = bit ; assegnando i registri base, val bit test $s3 $t2 $t6 è data dalle istruzioni:

    add $t2, $zero, $zero WHILE: beq $s3, $zero, END_WHILE srl $s3, $s3, 1 addi $t2, $t2, 1 j WHILE END_WHILE: add $t6, $t2, $zero

  • 12

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (0 < val) { val = val − 1 ; bit = bit + 1 ; } test = − bit ; val = val − test ; assegnando i registri base, val bit test $t0 $s2 $s4 è data dalle istruzioni:

    WHILE: slt $s6, $zero, $t0 beq $s6, $zero, END_WHILE addi $t0, $t0, −1 addi $s2, $s2, 1 j WHILE END_WHILE: sub $s4, $zero, $s2 sub $t0, $t0, s4

  • 13

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, bit = val & test ; while (0 > val ) { val = val + 1 ; bit = bit − val ; } test = 1 ; assegnando i registri base, val bit test $s5 $t1 $s0 è data dalle istruzioni:

    and $t1, $s5, $s0 WHILE: slti $s2, $s5, 0 beq $s2, $zero, END_WHILE addi $s5, $s5, 1 sub $t1, $t1, $s5 j WHILE END_WHILE: addi $t0, $zero, 1

  • 14

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, val = 0 ; while (val == 0) { test = test + 1 ; val = bit & test ; } val = test ; assegnando i registri base, val bit test $t5 $t4 $s1 è data dalle istruzioni:

    add $t5, $zero, $zero WHILE: bne $t5, $zero, END_WHILE addi $s1, $s1, 1 and $t5, $t4, $s1 j WHILE END_WHILE: add $t5, $zero, $s1

  • 15

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, val = 1 ; while (val < 50) { bit = bit − val ; val = val + 1 ; } test = test | bit ; assegnando i registri base, val bit test $s0 $s3 $t5 è data dalle istruzioni:

    addi $s0, $zero, 1 WHILE: slti $s1, $s0, 50 beq $s1, $zero, END_WHILE sub $s3, $s3, $s0 addi $s0, $s0, 1 j WHILE END_WHILE: or $t5, $t5, $s3

  • 16

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (val != 0) { val = val >> 1 ; bit = bit + 1 ; } test = bit ; bit = 0 ; assegnando i registri base, val bit test $s3 $t2 $t6 è data dalle istruzioni:

    WHILE: beq $s3, $zero, END_WHILE srl $s3, $s3, 1 addi $t2, $t2, 1 j WHILE END_WHILE: add $t6, $t2, $zero add $t2, $zero, $zero

  • 17

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, val = test ; while (0 < val) { val = val − 1 ; bit = bit + 1 ; } test = − bit ; assegnando i registri base, val bit test $t0 $s2 $s4 è data dalle istruzioni:

    add $t0, $s4, $zero WHILE: slt $s6, $zero, $t0 beq $s6, $zero, END_WHILE addi $t0, $t0, −1 addi $s2, $s2, 1 j WHILE END_WHILE: sub $s4, $zero, $s2

  • 18

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (0 > val ) { val = val + 1 ; bit = bit − val ; } test = 1 ; bit = val & test ; assegnando i registri base, val bit test $s5 $t1 $s0 è data dalle istruzioni:

    WHILE: slti $s2, $s5, 0 beq $s2, $zero, END_WHILE addi $s5, $s5, 1 sub $t1, $t1, $s5 j WHILE END_WHILE: addi $t0, $zero, 1 and $t1, $s5, $s0

  • 19

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, test = 50 ; while (val == 0) { test = test + bit ; val = val − 1 ; } val = − test ; assegnando i registri base, val bit test $t5 $t4 $s1 è data dalle istruzioni:

    addi $t5, $zero, 50 WHILE: bne $s5, $zero, END_WHILE add $s1, $s1, $t4 addi $t5, $t5, −1 j WHILE END_WHILE: sub $t5, $zero, $s1

  • 20

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (val < 50) { bit = bit − val ; val = val + 1 ; } test = test | bit ; val = 1 ; assegnando i registri base, val bit test $s0 $s3 $t5 è data dalle istruzioni:

    WHILE: slti $s1, $s0, 50 beq $s1, $zero, END_WHILE sub $s3, $s3, $s0 addi $s0, $s0, 1 j WHILE END_WHILE: or $t5, $t5, $s3 addi $s0, $zero, 1

  • 21

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i < 50 ; i = i + 1) { A[i] = i ; } test = 1 ; assegnando i registri base, Base A[ ] test i $s0 $t4 $t1 è data dalle istruzioni:

    add $t1, $zero, $zero FOR: slti $s6, $t1, 50 beq $s6, $zero, END_FOR sll $t2, $t1, 2 add $t3, $t2, $s0 sw $t1, 0($t3) addi $t1, $t1, 1 j FOR END_FOR: addi $t4, $zero, 1

  • 22

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i != 50 ; i = i + 1) { A[i] = 50 ; } test = 1 ; assegnando i registri base, Base A[ ] test i $t2 $s2 $s4 è data dalle istruzioni:

    add $s4, $zero, $zero addi $t0, $zero, 50 FOR: beq $s4, $t0, END_FOR sll $t7, $s4, 2 add $s5, $t7, $t2 sw $t0, 0($s5) addi $s4, $s4, 1 j FOR END_FOR: addi $s2, $zero, 1

  • 23

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for(i = 0 ; i != 50 ; i = i + 1) { A[i] = 0 ; } test = test − 1 ; assegnando i registri base, Base A[ ] test i $s3 $t2 $t5 è data dalle istruzioni:

    add $t5, $zero, $zero addi $s4, $zero, 50 FOR: beq $t5, $s4, END_FOR sll $t0, $t5, 2 add $t1, $t0, $s3 sw $zero, 0 ($t1) addi $t5, $t5, 1 j FOR END_FOR: addi $t2, $t2, -1

  • 24

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i < 50 ; i = i + 1) { A[i] = test ; } test = test + 1 ; assegnando i registri base, Base A[ ] test i $t5 $s4 $s1 è data dalle istruzioni:

    add $s1, $zero, $zero FOR: slti $t7, $s1, 50 beq $t7, $zero, END_FOR sll $t3, $s1, 2 add $t2, $t3, $t5 sw $s4, 0($t2) addi $s1, $s1, 1 j FOR END_FOR: addi $s4, $s4, 1

  • 25

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for(i = 0 ; i != 50 ; i = i + 1) { A[i] = 0 ; } test = − test ; assegnando i registri base, Base A[ ] test i $s6 $t2 $t4 è data dalle istruzioni:

    addi $s0, $zero, 50 add $t4, $zero, $zero FOR: beq $t4, $s0, END_FOR sll $t1, $t4, 2 add $s2, $t1, $s6 sw $zero, 0($s2) addi $t4, $t4, 1 j FOR END_FOR: sub $t2, $zero, $t2

  • 26

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for(i = 0 ; i < 50 ; i = i + 1) { A[i] = i ; } test = 1 ; assegnando i registri base, Base A[ ] test i $s0 $t4 $t1 è data dalle istruzioni:

    add $t1, $zero, $zero FOR: slti $s6, $t1, 50 beq $s6, $zero, END_FOR sll $t2, $t1, 2 add $t3, $t2, $s0 sw $t1, 0($t3) addi $t1, $t1, 1 j FOR END_FOR: addi $t4, $zero, 1

  • 27

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i != 50 ; i = i + 1) { A[i] = 50 ; } test = 1 ; assegnando i registri base, Base A[ ] test i $t2 $s2 $s4 è data dalle istruzioni:

    add $s4, $zero, $zero addi $t0, $zero, 50 FOR: beq $s4, $t0, END_FOR sll $t7, $s4, 2 add $s5, $t7, $t2 sw $t0, 0($s5) addi $s4, $s4, 1 j FOR END_FOR: addi $s2, $zero, 1

  • 28

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i != 50 ; i = i + 1) { A[i] = 0 ; } test = test − 1 ; assegnando i registri base, Base A[ ] test i $s3 $t2 $t5 è data dalle istruzioni:

    add $t5, $zero, $zero addi $s4, $zero, 50 FOR: beq $t5, $s4, END_FOR sll $t0, $t5, 2 add $t1, $t0, $s3 sw $zero, 0($t1) addi $s4, $s4, 1 j FOR END_FOR: addi $t2, $t2, −1

  • 29

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i < 50 ; i = i + 1) { A[i] = test ; } test = test + 1 ; assegnando i registri base, Base A[ ] test i $t5 $s4 $s1 è data dalle istruzioni:

    add $s1, $zero, $zero FOR: slti $t7, $s1, 50 beq $t7, $zero, END_FOR sll $t3, $s1, 2 add $t2, $t3, $t5 sw $s4, 0($t2) addi $s1, $s1, 1 j FOR END_FOR: addi $s4, $s4, 1

  • 30

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[50], i, test ; for (i = 0 ; i != 50 ; i = i + 1) { A[i] = 0 ; } test = − test ; assegnando i registri base, Base A[ ] test i $s6 $t2 $t4 è data dalle istruzioni:

    addi $s0, $zero, 50 add $t4, $zero, $zero FOR: beq $t4, $s0, END_FOR sll $t1, $t4, 2 add $s2, $t1, $s6 sw $zero, 0($s2) addi $t4, $t4, 1 j FOR END_FOR: sub $t2, $zero, $t2

  • 31

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (0 < A[5]) { A[6] = 0 ; } else { val = val + 1 ; } test = − 3 ; assegnando i registri base, Base A[ ] val test $s0 $t1 $t2 è data dalle istruzioni:

    lw $s6, 20($s0) slt $t0, $zero, $s6 beq $t0, $zero, ELSE sw $zero, 24($s0) j END_IF ELSE: addi $t1, $t1, 1 END_IF: addi $t2, $zero, −3

  • 32

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (B[6] == 0) { A[4]=0 ; } else { val = val + A[4] ; } test = 1 ; assegnando i registri base, Base A[ ] Base B[ ] val test $t5 $s0 $s3 $s6 è data dalle istruzioni:

    lw $s1, 24($s0) bne $s1, $zero, ELSE sw $zero, 16($t5) j END_IF ELSE: lw $s2, 16 ($t5) add $s3, $s3, $s2 END_IF: addi $s6, $zero, 1

  • 33

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (val < 2) { B[2] = 0 ; } else { val = A[3] + 1 ; } test = 0 ; assegnando i registri base, Base A[ ] Base B[ ] val test $t3 $s4 $t7 $t6 è data dalle istruzioni:

    slti $t0, $t7, 2 beq $t0, $zero, ELSE sw $zero, 8($s4) j END_IF ELSE: lw $s0, 12($t3) addi $t7, $s0, 1 END_IF: add $t6, $zero, $zero

  • 34

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (0 != B[3]) { A[10] = 0 ; } else { val = val + A[10] ; } test = 0 ; assegnando i registri base, Base A[ ] Base B[ ] val test $s3 $s4 $t0 $t1 è data dalle istruzioni:

    lw $t7, 12($s4) beq $t7, $zero, ELSE sw $zero, 40($s3) j END_IF ELSE: lw $s0, 40($s3) add $t0, $t0, $s0 END_IF: add $t1, $zero, $zero

  • 35

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (A[3] < 0) { val = − 1 ; } else { A[4] = 0 ; } test = test + 1 ; assegnando i registri base, Base A[ ] val test $t1 $s0 $t5 è data dalle istruzioni:

    lw $t3, 12($t1) slt $t4, $t3, $zero beq $t4, $zero, ELSE addi $s0, $zero, −1 j END_IF ELSE: sw $zero, 16($t1) END_IF: addi $t5, $t5, 1

  • 36

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (0 < val) { val = A[1] ; } else { B[4] = 0 ; } test = test − val ; assegnando i registri base, Base A[ ] Base B[ ] val test $s1 $s3 $s5 $t1 è data dalle istruzioni:

    slt $t3, $zero, $s5 beq $t3, $zero, ELSE lw $s5, 4($s1) j END_IF ELSE: sw $zero, 16($s3) END_IF: sub $t1, $t1, $s5

  • 37

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if ((val + 1) == 5) { A[7] = 5 ; } else { val = val + test ; } test = B[8] ; assegnando i registri base, Base A[ ] Base B[ ] val test $s0 $t1 $s7 $t0 è data dalle istruzioni:

    addi $t6, $zero, 5 addi $t4, $s7, 1 bne $t6, $t4, ELSE sw $t6, 28($s0) j END_IF ELSE: add $s7, $s7, $t0 END_IF: lw $t0, 32($t1)

  • 38

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (3 == (val − 1)) { val = − val ; } else { B[9] = 3 ; } test = A[1] ; assegnando i registri base, Base A[ ] Base B[ ] val test $s5 $s0 $t6 $t4 è data dalle istruzioni:

    addi $s4, $zero, 3 addi $s2, $t6, −1 bne $s2, $s4, ELSE sub $t6, $zero, $t6 j END_IF ELSE: sw $s4, 36($s0) END_IF: lw $t4, 4($s5)

  • 39

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (A[9] != 0) { test = 1 ; } else { test = B[9] + val ; } A[10] = 0 ; assegnando i registri base, Base A[ ] Base B[ ] val test $s0 $s1 $t3 $t5 è data dalle istruzioni:

    lw $t6, 36($s0) beq $t6, $zero, ELSE addi $t5, $zero, 1 j END_IF ELSE: lw $t7, 36($s1) addi $t5,$t7,$t3 END_IF: sw $zero, 40 ($s0)

  • 40

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con A[ ] Array di interi, if (A[2] == test) { val = 5 ; } else { B[20] = test ; } test = test + 1 ; assegnando i registri base, Base A[ ] Base B[ ] val test $s7 $s5 $t4 $t6 è data dalle istruzioni:

    lw $t2, 8($s7) bne $t2, $t6, ELSE addi $t4, $zero, 5 j END_IF ELSE: sw $t6, 80($s5) END_IF: addi $t6, $t6, 1

  • 41

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int W[7500], B[7500], k ; B[7] = W[k] ; W[k + 3] = 0 ; assegnando i registri base, BaseB[ ] BaseW[ ] k $t3 $t5 $s6 è data dalle istruzioni:

    sll $t0, $s6, 2 add $t1, $t0, $t5 lw $s5, 0($t1) sw $s5, 28($t3) sw $zero, 12($t1)

  • 42

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[300], k ; test = test – k ; V[k] = V[k + 5] ; assegnando i registri base, Base V[ ] test k $s7 $t2 $t1 è data dalle istruzioni:

    sub $t2, $t2, $t1 sll $t0, $t1, 2 add $t1, $t0, $s7 lw $t4, 20($t1) sw $t4, 0($t1)

  • 43

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int T[500], C[500], k ; T[5] = 0 ; C[k + 1] = C[k] ; assegnando i registri base, Base C[ ] Base T[ ] k $s0 $s2 $t7 è data dalle istruzioni:

    sw $zero, 20($s2) sll $t0, $t7, 2 add $t3, $t0, $s0 lw $s5, 0($t3) sw $s5, 4($t3)

  • 44

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[270], k , test ; test = test - A[k] ; A[k + 4] = test ; assegnando i registri base, Base A[ ] test k $t2 $s0 $s1 è data dalle istruzioni:

    sll $t0, $s1, 2 add $t1, $t0, $t2 lw $t5, 0($t1) sub $s0, $s0, $t5 sw $s0, 16($t1)

  • 45

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int H[3000], W[3000], k ; H[6]= 0 ; W[k] = W[k + 5] ; assegnando i registri base, Base W[ ] Base H[ ] k $t1 $s4 $s3 è data dalle istruzioni:

    sw $zero, 24($s4) sll $t0, $s3, 2 add $t3, $t0, $t1 lw $s5, 20($t3) sw $s5, 0($t3)

  • 46

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int R[70], k, val ; val = - 20 ; R[k + 8] = R[k] ; assegnando i registri base, Base R[ ] val k $s1 $t4 $t6 è data dalle istruzioni:

    addi $t4, $zero, -20 sll $t0, $t6, 2 add $t1, $t0, $s1 lw $t5, 0($t1) sw $t5, 32($t1)

  • 47

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int W[800], A[800], k, val ; W[k] = A[7] ; val = V[k + 3] ; assegnando i registri base, Base A[ ] Base W[ ] val k $s3 $s5 $s1 $t4 è data dalle istruzioni:

    sll $t0, $t4, 2 add $t1, $t0, $s5 lw $s6, 28($s3) sw $s6, 0($t1) lw $s1, 12($t1)

  • 48

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int A[300], k, test ; new = 0 ; A[k + 4] = A[k] ; assegnando i registri base, Base A[ ] k test $t2 $s0 $s3 è data dalle istruzioni:

    add $s3, $zero, $zero sll $t0, $s0, 2 add $t1, $t0, $t2 lw $t4, 0($t1) sw $t4, 16($t1)

  • 49

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int V[750], B[750], test, k ; test = V[8] ; B[k] = B[k + 1] ; assegnando i registri base, Base B[ ] Base V[ ] test k $t3 $t4 $s3 $s2 è data dalle istruzioni:

    lw $s3, 32($t4) sll $t0, $s2, 2 add $t7, $t0, $t3 lw $s5, 4($t7) sw $s5, 0($t7)

  • 50

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C, int H[400], k, val ; H[k] = 0 ; val = H[k + 2] + 7 ; assegnando i registri base, Base H[ ] val k $s3 $t5 $t2 è data dalle istruzioni:

    sll $t0, $t2, 2 add $t1, $t0, $s3 sw $zero, 0($t1) lw $t6, 8($t1) addi $t5, $t6, 7

  • 51

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, k = 0 ; while (new != 0) { new = new >> 1 ; k = k + 1 ; } test = k ; assegnando i registri base, new k test $s3 $t2 $t6 è data dalle istruzioni:

    add $t2, $zero, $zero WHILE: beq $s3, $zero, END_WHILE srl $s3, $s3, 1 addi $t2, $t2, 1 j WHILE END_WHILE: add $t6, $t2, $zero

  • 52

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (0 < new) { new = new - 1 ; j = j + 1 ; } test = - j ; new = new - test ; assegnando i registri base, new j test $t0 $s2 $s4 è data dalle istruzioni:

    WHILE: slt $s6, $zero, $t0 beq $s6, $zero, END_WHILE addi $t0, $t0, -1 addi $s2, $s2, 1 j WHILE END_WHILE: sub $s4, $zero, $s2 sub $t0, $t0, s4

  • 53

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, h = new & test ; while (0 > new) { new = new + 1 ; h = h - new; } test = 1 ; assegnando i registri base, new h test $s5 $t1 $s0 è data dalle istruzioni:

    and $t1, $s5, $s0 WHILE: slti $s2, $s5, 0 beq $s2, $zero, END_WHILE addi $s5, $s5, 1 sub $t1, $t1, $s5 j WHILE END_WHILE: addi $t0, $zero, 1

  • 54

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, new = 0 ; while (new == 0) { j = j + 1 ; new = bit & j ; } new = j ; assegnando i registri base, new bit j $t5 $t4 $s1 è data dalle istruzioni:

    add $t5, $zero, $zero WHILE: bne $t5, $zero, END_WHILE addi $s1, $s1, 1 and $t5, $t4, $s1 j WHILE END_WHILE: add $t5, $zero, $s1

  • 55

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, k = 1 ; while (k < 50) { new = new - k ; k = k + 1 ; } test = test | new ; assegnando i registri base, k new test $s0 $s3 $t5 è data dalle istruzioni:

    addi $s0, $zero, 1 WHILE: slti $s1, $s0, 50 beq $s1, $zero, END_WHILE sub $s3, $s3, $s0 addi $s0, $s0, 1 j WHILE END_WHILE: or $t5, $t5, $s3

  • 56

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (new != 0) { new = new >> 1 ; j = j + 1 ; } test = j ; j = 0 ; assegnando i registri base, new j test $s3 $t2 $t6 è data dalle istruzioni:

    WHILE: beq $s3, $zero, END_WHILE srl $s3, $s3, 1 addi $t2, $t2, 1 j WHILE END_WHILE: add $t6, $t2, $zero add $t2, $zero, $zero

  • 57

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, new = test ; while (0 < new) { new = new - 1 ; i = i + 1 ; } test = - i ; assegnando i registri base, new i test $t0 $s2 $s4 è data dalle istruzioni:

    add $t0, $s4, $zero WHILE: slt $s6, $zero, $t0 beq $s6, $zero, END_WHILE addi $t0, $t0, -1 addi $s2, $s2, 1 j WHILE END_WHILE: sub $s4, $zero, $s2

  • 58

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (0 > k ) { k = k + 1 ; new = new - k ; } test = 1 ; new = k & test ; assegnando i registri base, k new test $s5 $t1 $s0 è data dalle istruzioni:

    WHILE: slti $s2, $s5, 0 beq $s2, $zero, END_WHILE addi $s5, $s5, 1 sub $t1, $t1, $s5 j WHILE END_WHILE: addi $t0, $zero, 1 and $t1, $s5, $s0

  • 59

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, j = 50 ; while (new == 0) { j = j + bit ; new = new - 1 ; } new = - j ; assegnando i registri base, new bit j $t5 $t4 $s1 è data dalle istruzioni:

    addi $t5, $zero, 50 WHILE: bne $s5, $zero, END_WHILE add $s1, $s1, $t4 addi $t5, $t5, -1 j WHILE END_WHILE: sub $t5, $zero, $s1

  • 60

    La traduzione in Assembly MIPS delle seguenti istruzioni in Linguaggio C con variabili intere, while (i < 50) { new = new - i ; i = i + 1 ; } test = test | new ; i = 1 ; assegnando i registri base, i new test $s0 $s3 $t5 è data dalle istruzioni:

    WHILE: slti $s1, $s0, 50 beq $s1, $zero, END_WHILE sub $s3, $s3, $s0 addi $s0, $s0, 1 j WHILE END_WHILE: or $t5, $t5, $s3 addi $s0, $zero, 1