Arsitektur KomputerOperasi: (A + (B – C) × D) /

Berikut ini adalah pertanyaan dari unknown pada mata pelajaran TI untuk jenjang Sekolah Dasar

Arsitektur KomputerOperasi: (A + (B – C) × D) / (E + F)
Buatlah program instruksi 0 alamat (0-address instructions) untuk operasi aritmetika tersebut.

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban dan Penjelasan:

Untuk mempermudah perancangan program intruksi 0 alamat dari operasi aritmetika tersebut, kita dapat mengubahnya ke bentuk postfix terlebih dahulu, karena instruksi 0 alamat menggunakan pengalamatan “implisit“ yang mengandalkan stack.

Ekspresi (Infix): X = A+(B-C)*D/(E+F)

Konversi ke Postfix

(E: Ekspresi yang dibaca, S: Stack = [top...bottom], P: Postfix)

  • E = (
    S = [ ( ]
    P = ""
  • E = A
    S = [ ( ]
    P = "A"
  • E = +
    S = [ + ( ]
    P = "A"
  • E = (
    S = [ ( + ( ]
    P = "A"
  • E = B
    S = [ ( + ( ]
    P = "AB"
  • E = -
    S = [ - ( + ( ]
    P = "AB"
  • E = C
    S = [ - ( + ( ]
    P = "ABC"
  • E = )
    S = [ + ( ]
    P = "ABC-"
  • E = *
    S = [ * + ( ]
    P = "ABC-"
  • E = D
    S = [ * + ( ]
    P = "ABC-D"
  • E = )
    S = [ ]
    P = "ABC-D*+"
  • E = /
    S = [ / ]
    P = "ABC-D*+"
  • E = (
    S = [ ( / ]
    P = "ABC-D*+"
  • E = E
    S = [ ( / ]
    P = "ABC-D*+E"
  • E = +
    S = [ + ( / ]
    P = "ABC-D*+E"
  • E = F
    S = [ + ( / ]
    P = "ABC-D*+EF"
  • E = )
    S = [ / ]
    P = "ABC-D*+EF+"
  • E = stop
    S = [ ]
    P = "ABC-D*+EF+/"

Notasi postfix: ABC-D*+EF+/

Program Instruksi 0-alamat

\begin{array}{lll}\sf\underline{Instruksi}&\sf\underline{Ket.}&\sf\underline{Stack}\\\tt PUSH&\tt A&\tt top=A\\\tt PUSH&\tt B&\tt top=B\\\tt PUSH&\tt C&\tt top=C\\\tt SUB&&\tt top=B-C\\\tt PUSH&\tt D&\tt top=D\\\tt MUL&&\tt top=(B-C)*D\\\tt ADD&&\tt top=A+(B-C)*D\\\tt PUSH&\tt E&\tt top=E\\\tt PUSH&\tt F&\tt top=F\\\tt ADD&&\tt top=E+F\\\tt DIV&&\tt top=(A+(B-C)*D)/(E+F)\\\tt POP&\tt X&\end{array}

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: Sat, 12 Nov 22