NIM
MATA KULIAH
BAB
TANGGAL
:
:
:
:
:
M. YUSUF HIDAYAT
145150300111043
AOK LANJUT
I
26 SEPTEMBER 2016
4.1
Penjelasan instruksi :
MOV #5, R00 : memberi nilai 5 ke register R00
MOV #8, R00 : mengubah nilai di R00 dan memberi nilai 8 ke register R00
ADD R00, R01: menambahkan nilai dari R00 ke R01
PSH R01
PSH R00
POP R02
POP R03
CMP R04, R05 : membandingkan nilai dari register R04 dengan R05
JEQ 0
Penjelasan Program :
Program diatas berfungsi untuk menguji beberapa code perintah dari bahasa assembly.
Program tersebut juga menampilkan proses push dan pop dalam sistem stack. Dimana
push berfungsi untuk memasukkan nilai pada suatu register sedangkan pop berfungsi
untuk mengambil nilai pada suatu register.
Screenshot output :
Tabelhasilpengamatanketikainstruksiberjalan
ST
EP
R0
0
R0
1
R0
2
R0
3
R0
4
R0
5
PC
BR
Stat
us
Flag
SR
SP
809
6
12
809
6
17
809
6
20
809
8
23
810
0
28
810
0
32
810
0
35
809
8
38
809
6
10
43
809
6
11
809
6
12
809
6
IR
MO
V
#5,
R00
MO
V
#8,
R00
AD
D
R00
,
R01
PS
H
R01
PS
H
R00
CM
P
R00
,
R01
JMP
0
PO
P
R02
PO
P
R03
CM
P
R04
,
R05
JEQ
0
MO
V
#5,
R00
MA
R
0
12
MD
R
MO
V
#5,
R00
MO
V
#8,
R00
AD
D
R00
,
R01
17
PSH
R01
20
PSH
R00
23
28
CM
P
R00
,
R01
JMP
0
32
POP
R02
35
POP
R03
38
43
0
CM
P
R04
,
R05
JEQ
0
MO
V
#5,
R00
4.2
Penjelasaninstruksi :
MSF
: memanggil subroutine
PSH #8
CAL $L2
HLT
program
L2:
: Label L2
POP R02
PSH #1
POP R01
: Label L0
RET
L1:
: Label L1
Penjelasan program :
Program tersebut akan menampilkan tulisan yang sebelumnya di set pada data memory
di alamat 24 sebanyak 8x pada I/O Console.
Screenshot :
4.3
Penjelasaninstruksi :
MOV #48, R01
L0:
STB R01, @R02
: label L0
: menyimpan bi tdari register R01 ke alamat register R02
JNE $L0
SUB #1, R02
L1:
LDB @R03, R05
dimasukkan ke R05
ADD #1, R03
STB R05, @R04
CMP #29, R03
: label L1
: mengambil data bit dari alamat register R03 dan
: menambah nilai 1 ke register R03
: menyimpan bit R05 kealamat register R04
: membandingkan nilai di register R03 dengan 29
JNE $L1
HLT
: menghentikan program
Penjelasan Program :
Program akan menampilkan masukan angka 0 - 8 kemudian akan menampilkan hasil
keluar angka 0 8 dari kiri ke kanan dimulai dari memori ke 21
Screenshot :
Modifikasi program 4.3 sehingga menampilkan output angka 8 0 dari kanan ke kiri
Penjelasan Instruksi :
MOV #56, R01
L0:
STB R01, @R02
: label L0
: menyimpan bit dari register R01 kealamat register R02
JNE $L0
L1:
: label L1
Penjelasan program :
Program di atas akan menampilkan angka dari 8 0 dan berjalan dari arah kanan kekiri
pada data memory dimulai dari memori ke 21
Screenshot :