wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Pretest Introduction to QTSpim

Total questions: 20

Worksheet time: 7mins

Name
Class
Date
1.

Label dalam bahasa Assembly MIPS digunakan untuk?

a)

Menandai instruksi yang harus dilewati

b)

Menentukan alamat memori tertentu

c)

Mengontrol aliran program

d)

Menghitung jumlah instruksi

e)

Menyimpan data konstan

2.

Instruksi "beq" dalam bahasa Assembly MIPS digunakan untuk?

a)

Menambahkan dua nilai register

b)

Melakukan operasi logika AND antara register

c)

Memeriksa apakah dua nilai register sama

d)

Mengirimkan sinyal sistem

e)

Mengurangi nilai register dengan konstan

3.

Berikut adalah potongan kode bahasa Assembly MIPS. Apa yang dilakukan kode tersebut?

a)

Menambahkan nilai dalam register $t1 dan $t2, lalu menyimpan hasilnya ke dalam alamat memori yang disimpan di register $a0.

b)

Menambahkan nilai dalam register $t0 dan $t1, lalu menyimpan hasilnya ke dalam alamat memori yang disimpan di register $a0.

c)

Menambahkan nilai dalam register $t1 dan $t2, lalu menyimpan hasilnya ke dalam register $t0.

d)

Menyimpan nilai dalam register $t0 ke dalam alamat memori yang disimpan di register $a0.

e)

Tidak melakukan apa-apa, kode tersebut tidak valid.

4.

Sebuah fungsi dalam bahasa Assembly MIPS menerima dua parameter, yaitu bilangan bulat dalam register $a0 dan $a1. Fungsi tersebut akan mengembalikan nilai yang merupakan hasil perkalian dari kedua parameter tersebut. Berikut adalah potongan kode yang mewakili fungsi tersebut.

Apa nilai yang akan dikembalikan oleh fungsi ini jika $a0 berisi 5 dan $a1 berisi 7?

a)

10

b)

20

c)

25

d)

35

e)

42

5.

Berikut adalah potongan kode bahasa Assembly MIPS:

addi $t0, $zero, 10

addi $t1, $zero, 20

add $t2, $t0, $t1

Setelah eksekusi kode di atas, nilai yang tersimpan dalam register $t2 adalah:

a)

0

b)

10

c)

20

d)

30

e)

40

6.

Instruksi "jalr" dalam bahasa Assembly MIPS digunakan untuk?

a)

Melakukan panggilan fungsi rekursif

b)

Mengembalikan nilai dari fungsi

c)

Melakukan panggilan fungsi yang tidak bersyarat

d)

Mengalokasikan ruang stack untuk fungsi

e)

Melompat ke alamat yang disimpan dalam register dan menjalankan instruksi dari sana

7.

Dalam bahasa Assembly MIPS, apa perbedaan antara instruksi "add" dan "addi"?

a)

"add" digunakan untuk menambahkan dua nilai register, sedangkan "addi" digunakan untuk menambahkan nilai register dengan nilai konstan.

b)

Keduanya memiliki fungsi yang sama.

c)

"addi" hanya dapat digunakan untuk register tertentu, sedangkan "add" dapat digunakan untuk semua register.

d)

"add" digunakan untuk menambahkan nilai register dengan nilai konstan, sedangkan "addi" digunakan untuk menambahkan dua nilai register.

e)

"addi" hanya dapat digunakan untuk nilai konstan positif.

8.

Perbedaan utama antara instruksi "bne" dan "beq" dalam bahasa Assembly MIPS adalah?

a)

Keduanya memiliki fungsi yang sama.

b)

"beq" hanya akan bercabang jika kondisinya salah, sedangkan "bne" jika benar.

c)

"bne" tidak melakukan percabangan, sedangkan "beq" melakukan percabangan.

d)

"beq" tidak melakukan percabangan, sedangkan "bne" melakukan percabangan.

e)

"bne" hanya akan bercabang jika kondisinya salah, sedangkan "beq" jika benar.

9.

Perbedaan antara instruksi JMP, JE, JNE, JZ, dan JNZ dalam Assembly adalah?

a)

Semua instruksi tersebut memiliki fungsi yang sama

b)

Instruksi JMP digunakan untuk percabangan tak bersyarat, JE untuk percabangan jika sama, JNE untuk percabangan jika tidak sama, JZ untuk percabangan jika nol, dan JNZ untuk percabangan jika tidak nol

c)

Instruksi JMP digunakan untuk percabangan jika sama, JE untuk percabangan jika nol, JNE untuk percabangan jika tidak sama, JZ untuk percabangan tak bersyarat, dan JNZ untuk percabangan jika tidak nol

d)

Instruksi JMP digunakan untuk percabangan jika nol, JE untuk percabangan jika sama, JNE untuk percabangan tak bersyarat, JZ untuk percabangan jika tidak sama, dan JNZ untuk percabangan jika tidak nol

e)

Instruksi JMP digunakan untuk percabangan tak bersyarat, JE untuk percabangan jika sama, JNE untuk percabangan jika tidak sama, JZ untuk percabangan jika nol, dan JNZ untuk percabangan jika tidak nol

10.

Bagaimana cara menginisialisasi register $t0 dengan nilai 10 dalam program MIPS?

a)

move $t0, 10

b)

add $t0, $zero, 10

c)

li $t0, 10

d)

load $t0, 10

e)

store $t0, 10

11.

Bagaimana cara mendeklarasikan variabel dalam program MIPS?

a)

Menggunakan keyword "var"

b)

Menggunakan keyword "declare"

c)

Menggunakan directive ".word"

d)

Menggunakan directive ".var"

e)

Menggunakan directive ".data"

12.

Apa komponen utama dalam arsitektur MIPS?

a)

ALU

b)

Register File

c)

Control Unit

d)

Semua jawaban benar

e)

Tidak ada yang benar

13.

Apa yang dilakukan instruksi push dalam Assembly?

a)

Menambah data ke dalam register

b)

Menambah data ke dalam stack

c)

Mengurangi data dari stack

d)

Mengganti data dalam register

e)

Tidak ada yang benar

14.

Perhatikan potongan kode pada gambar diatas!

Apa yang dilakukan instruksi "sw $t1, SUM($0)"?

a)

Mengurangi nilai register $t1 dengan nilai di alamat memori yang ditunjukkan oleh label SUM

b)

Menambahkan nilai register $t1 dengan nilai di alamat memori yang ditunjukkan oleh label SUM

c)

Mengalikan nilai register $t1 dengan nilai di alamat memori yang ditunjukkan oleh label SUM

d)

Menyimpan nilai register $t1 ke alamat memori yang ditunjukkan oleh label SUM

e)

Output nilai register $t1

15.

Instruksi "jr" dalam bahasa Assembly MIPS digunakan untuk?

a)

Melakukan panggilan sistem

b)

Melakukan percabangan tak bersyarat

c)

Kembali ke alamat yang disimpan dalam register

d)

Mengganti nilai register

e)

Mengontrol loop

16.

Teknik loop unrolling dapat meningkatkan efisiensi kode Assembly dengan cara?

a)

Menambahkan jumlah instruksi dalam loop

b)

Mengurangi jumlah instruksi dalam loop

c)

Mengubah cara pengalamatan dalam loop

d)

Memperpanjang loop

e)

Tidak mempengaruhi efisiensi kode

17.

Apakah output dari potongan kode assembly berikut?

ADDI $t1, $zero, 5

ADDI $t2, $zero, 3

ADD  $t3, $t1, $t2

Clue: fill in using numbers

(a)  

18.

Apakah pernyataan berikut yang digunakan untuk menggeser nilai di register $t0 sebanyak dua kali ke kiri?

a)

SLL $t0, $t0, 2

b)

LEFT_SHIFT $t0, $t0, 2

c)

SHIFT_LEFT $t0, $t0, 2

d)

SHL $t0, $t0, 2

e)

SLT 2, $t0

19.

Apakah pernyataan berikut yang digunakan untuk menginisialisasi array dengan panjang 8 dalam assembly?

a)

ARRAY_SIZE 8

b)

INIT_ARRAY 8

c)

.space 8

d)

.arr[8]

e)


.data 8

20.

mul $s0, $s1, $s2

add $s3, $s4, $s5

Apa nilai dari register $s0 dan $s3 setelah eksekusi kedua instruksi di atas?

a)

$s0 = $s1 * $s2, $s3 = $s4 + $s5

b)

$s0 = $s1 * $s2, $s3 = $s4 - $s

c)

$s0 = $s1 + $s2, $s3 = $s4 - $s5

d)

$s0 = $s1 + $s2, $s3 = $s4 + $s

e)

$s0 = $s1 + $s2, $s3 = $s4 * $s5