X = (A + B) / ((C - D) *

Berikut ini adalah pertanyaan dari maulanarafi1717 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

X = (A + B) / ((C - D) * E)Buatlah program untuk menghitung nilai X di atas dengan menggunakan instruksi 3-alamat, 2-alamat, 1-alamat, dan 0-alamat!

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban dan Penjelasan:

Diberikan ekspresi: X = (A + B) / ((C - D) * E)

__________________________

Program INSTRUKSI 3-ALAMAT

Sintaks: [opcode] [alamat-hasil] [alamat-operand1] [alamat-operand2]

Keterangan:
⇒ R1 dan R2 adalah register.
⇒ M[ ] adalah lokasi memori tertentu.

Program:

ADD R1, A, B        ; R1 = M[A] + M[B]
SUB R2, C, D        ; R2 = M[C] – M[D]
MUL R2, R2, E      ; R2 = R2 * M[E]
DIV X, R1, R2        ; M[X] = R1 / R2

__________________________

Program INSTRUKSI 2-ALAMAT

Sintaks: [opcode] [alamat-hasil] [alamat-operand]

Keterangan:
⇒ R1 dan R2 adalah register.
⇒ M[ ] adalah lokasi memori tertentu.

Program:

MOV R1, A         ; R1 = M[A]
ADD R1, B         ; R1 = R1 + M[B]
MOV R2, C        ; R2 = M[C]
SUB R2, D         ; R2 = R2 – M[D]
MUL R2, E        ; R2 = R2 * M[E]
DIV R1, R2         ; R1 = R1 / R2
MOV X, R1         ; M[X] = R1

__________________________

Program INSTRUKSI 1-ALAMAT

Sintaks: [opcode] [alamat-operand]

Keterangan:
⇒ AC adalah register akumulator.
⇒ M[ ] adalah lokasi memori tertentu.
⇒ M[T] adalah lokasi memori sementara (temporary).

Program:

LOAD A       ; AC = M[A]
ADD B        ; AC = AC + M[B]
STORE X    ; M[X] = AC
LOAD C       ; AC = M[C]
SUB D         ; AC = AC – M[D]
MUL E         ; AC = AC * M[E]
STORE T     ; M[T] = AC
LOAD X       ; AC = M[X]
DIV T          ; AC = AC / M[T]
STORE X    ; M[X] = AC

__________________________

Program INSTRUKSI 0-ALAMAT

Sintaks: [opcode]

Notasi Postfix: X =AB+CD–E*/

Keterangan:
⇒ menggunakan stack S = [top, ... → ..., bottom]

Program:

PUSH     ; push A ke stack ⇒ S = [ A ]
PUSH     ; push B ke stack ⇒ S = [ B, A ]
ADD       ; A+B  ⇒ S = [ A+B ]
PUSH     ; push C ke stack ⇒ S = [ C, A+B ]
PUSH     ; push D ke stack ⇒ S = [ D, C, A+B ]
SUB       ; C–D  ⇒ S = [ C–D, A+B ]
PUSH   ; push E ke stack ⇒ S = [ E, C–D, A+B ]
MUL     ; (C–D)*E  ⇒ S = [ (C–D)*E, A+B ]
DIV       ; (A+B) / ((C–D)*E)  ⇒ S = [ (A+B) / ((C–D)*E) ]
POP       ; pop elemen teratas stack, X = (A+B) / ((C–D)*E)

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Thu, 27 Oct 22