ARSITEKTUR SAP-2 Output Port

advertisement
::. MATA KULIAH MIKROPROSESSOR .::
[
:: SAP - 2 ::
TEORI, IMPLEMENTASI & APLIKASI
]
1
::. MATA KULIAH MIKROPROSESSOR .::
SAP - 2< Evolusi ke Komputer
Modern >
Arsitektur lebih lengkap dibanding SAP-1
Instruksi lebih banyak termasuk jump
(Lompat)
Menggunakan Register dua Arah
LOAD
CLK
Enable
BUS
2
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
8
ALU
ARSITEKTUR SAP-2
8
8
Ack
8
In Port 2
8
PC
16
MAR
2
Flag
8
In Port 1
TEMP
8
B
16
8
C
MDR
8
8
Out Port 3
IR
8
8
Out Port 4
16
8
Memori
8
8
0
7
Hexa Disp
Serial Out
Ack
Memiliki saluran 16-bit
PC=0000 0000 0000 0000
Sampai :
PC=1111 1111 1111 1111
Atau
PC=0000 H – FFFF H
Instruksi selalu mulai : 0000 H
0000 H Instruksi pertama
0001 H Instruksi kedua
0002 H Instruksi ketiga dst
8
Ready 0
7
Serial In
PC < Program Counter >
CON
3
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
8
ALU
ARSITEKTUR SAP-2
8
8
Ack
8
In Port 2
8
PC
16
MAR
16
2
Flag
8
In Port 1
8
Menerima alamat 16-bit
Keluaran 2-state ke memori
TEMP
0000 H
8
B
8
C
ROM
07FF H
0800 H
16
RAM
Memori
8
FFFF H
MDR
8
IR
8
8
Ready 0
7
Serial In
MAR & Memori
8
Out Port 3
8
0
8
Out Port 4
7
Hexa Disp
Serial Out
Ack
ROM 2KB berisi program
Monitor  Inisialisasi saat
dinyalakan
CON
4
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
ARSITEKTUR SAP-2
8
8
Ack
8
8
ALU
In Port 2
8
8
TEMP
PC
16
8
B
MAR
16
8
C
MDR
8
8
Out Port 3
IR
8
8
Out Port 4
2
Flag
8
Hexa Disp
Memori
MDR<Memory Data Register>
Keluaran MDR aktifkan
RAM.
Menerima data dari bus,
sblm operasi menulis ke
RAM
Mengirim data ke bus, stlh
operasi membaca dari RAM
8
0
7
Serial Out
Ack
8
Ready 0
7
Serial In
16
8
In Port 1
CON
5
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
ARSITEKTUR SAP-2
8
8
Ack
8
8
ALU
In Port 2
8
8
TEMP
PC
16
8
B
MAR
16
8
C
MDR
8
8
Out Port 3
IR
8
8
Out Port 4
2
Flag
8
Hexa Disp
Register Instruksi < IR >
IR 8-bit
mampu menampung 2^8 =
256 Instruksi.
SAP-2 hanya 42 Instruksi
Kompatibel dengan 8080 /
8085
Memori
8
0
7
Serial Out
Ack
8
Ready 0
7
Serial In
16
8
In Port 1
CON
6
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
ARSITEKTUR SAP-2
8
8
Ack
8
8
ALU
In Port 2
8
8
TEMP
PC
16
8
B
MAR
16
8
C
2
Flag
Pengendali-Pengurut
Menghasilkan kata kendali
atau mikroinstruksi
SAP-2
lebih
banyak
Instruksi,
pengendalilebih
rumit.
Kata CON lebih panjang
Memori
8
MDR
8
IR
8
8
Ready 0
7
Serial In
16
8
In Port 1
8
Out Port 3
8
Out Port 4
8
0
7
Hexa Disp
Serial Out
Ack
Akumulator
Register 2 Arah
Keluaran 3-state ke bus W
Terus
menerus
menggerakkan ALU
CON
7
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
ARSITEKTUR SAP-2
8
8
Ack
8
8
ALU
In Port 2
8
8
TEMP
PC
16
8
B
MAR
16
8
C
MDR
8
8
Out Port 3
IR
8
8
Out Port 4
2
Flag
Memori
8
8
0
7
Hexa Disp
Serial Out
Ack
ALU & FLAG
SAP-2
mengandung
operasi Aritmatik & Logika
FLAG
Untuk
mengawasi
/
mengikuti
perubahan
keadaan selama beroperasi.
Sign Flag : aktif bila A
berubah menjadi negatif
Zero Flag : aktif bila A
menjadi nol.
8
Ready 0
7
Serial In
16
8
In Port 1
CON
8
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
ARSITEKTUR SAP-2
8
8
Ack
8
8
ALU
In Port 2
8
8
TEMP
PC
16
8
B
MAR
16
8
C
MDR
8
8
Out Port 3
IR
8
8
Out Port 4
2
Flag
8
Hexa Disp
Memori
8
8
Ready 0
7
Serial In
16
8
In Port 1
0
7
Serial Out
Ack
Register TMP, B dan C
TMP : pengganti register B
Register B dan C berfungsi
sama untuk menyimpan
data sementara selama
operasi dilakukan.
Input Port
SAP-2 mempunyai 2 Input
Port.
Encoder keyboard Hexa ke
Input Port 1
Serial data ke Input Port 2
line 7
CON
9
::. MATA KULIAH MIKROPROSESSOR .::
Bus W
Encoder
Hexa
8
A
ARSITEKTUR SAP-2
8
8
Ack
8
8
ALU
In Port 2
8
8
TEMP
PC
16
8
B
MAR
16
8
C
MDR
8
8
Out Port 3
IR
8
8
Out Port 4
2
Flag
8
Hexa Disp
Memori
8
0
7
Serial Out
Ack
8
Ready 0
7
Serial In
Output Port
Mempunyai 2 Output Port
Output Port 3 ke Peraga
Hexa
Output Port 4 ke Serial Out
line 0
16
8
In Port 1
CON
10
::. MATA KULIAH MIKROPROSESSOR .::
Perangkat Instruksi < Instruction Set >
Operasi dasar yang dapat dilakukan dengan perintah /
program.
LDA < Load Data Accumulator >
Isi Akumulator dengan isi dari lokasi memori
Contoh : LDA 2000H ; /* Isikan Akumulator dengan isi alamat
2000H */
Operan
Operasi
STA < Store Accumulator >
Simpan Isi Akumulator ke lokasi memori yang ditunjuk
Contoh : STA 7FFFH ; /* Simpan Isi Akumulator ke alamat
7FFFH */
11
::. MATA KULIAH MIKROPROSESSOR .::
Perangkat Instruksi < Instruction Set >
MVI < Move immediate >
Pindahkan Segera
Mengisi Register dengan bilangan yang mengikutinya
Contoh :
MVI A, 37H ; /* Isikan Akumulator dengan bilangan 37H */
Jika eksekusi perintah ini, maka :
A =0011 0111
Format Instruksi :
MVI A, byte
MVI B, byte
MVI C, byte
12
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI
OP CODE
ADD B
ADD C
ANA B
ANA C
ANI byte
CALL alamat
CMA
DCR A
DCR B
DCR C
HLT
IN byte
INR A
INR B
INR C
JM alamat
JMP alamat
JNZ alamat
JZ alamat
LDA alamat
MOV A,B
MOV A,C
80
81
A0
A1
E6
CD
2F
3D
05
0D
76
DB
3C
04
0C
FA
C3
C2
CA
3A
78
79
INSTRUKSI
MOV B,A
MOV B,C
MOV C,A
MOV C,B
MVI A, byte
MVI B, byte
MVI C, byte
NOP
ORA B
ORA C
ORI byte
OUT byte
RAL
RAR
RET
STA alamat
SUB B
SUB C
XRA B
XRA C
XRI byte
OP CODE
47
41
4F
48
3E
06
0E
00
B0
B1
F6
D3
17
1F
C9
32
90
91
A8
A9
EE
13
::. MATA KULIAH MIKROPROSESSOR .::
Perangkat Instruksi < Instruction Set >
Contoh : Bahasa Mesin 8080/8085
Alamat Isi
2000H
2001H
2002H
2003H
2004H
2005H
2005H
2006H
2007H
2009H
3EH
49H
06H
4AH
0EH
4BH
32H
85H
62H
76H
Mnemonik
MVI A, 49H
Jumlah
2-byte
MVI B, 4AH
2-byte
MVI C, 4BH
2-byte
STA 6285H
3-byte
HLT
1-byte
14
::. MATA KULIAH MIKROPROSESSOR .::
Instruksi-Instruksi Register
MRI=Memory Reference Instruction Lebih lambat
karena memerlukan lebih dari 1 operasi akses memori.
Sedangkan Instruksi Register memindahkan data dari
Register ke Register yang lain
MOV
Memindahkan data dari satu register ke register yang
lain.
Contoh : MOV A, B. /* Pindahkan data dalam Register B
ke Akumulator */
15
::. MATA KULIAH MIKROPROSESSOR .::
Instruksi-Instruksi Register
ADD
Tambahkan isi Register dengan Isi Akumulator
Contoh : ADD B
Jika : A = 04 H dan B = 02 H, maka eksekusi ADD B
menghasilkan :
A = 06 H
SUB
Kurangkan isi Register dengan Isi Akumulator
Jika : C = 03 H, maka eksekusi SUB C diperoleh
A = 03 H
16
::. MATA KULIAH MIKROPROSESSOR .::
Instruksi-Instruksi Register
INR
Penambahan isi Register dengan satu angka
Contoh : INR B
Jika : B = 09 H, maka eksekusi INR B menghasilkan :
B = 0A H
DCR
Pengurangan isi Register dengan satu angka
Jika : C = 03 H, maka eksekusi DCR C diperoleh
C = 02 H
17
::. MATA KULIAH MIKROPROSESSOR .::
CONTOH :
Tambahkan bilangan 25 dan 55, simpan hasilnya pada
lokasi memori 5000 H dan tambahkan hasilnya dengan 1,
serta simpan di register B.
MVI A, 19 H ; Isikan Accumulator dengan 25
MVI B, 37 H ; Isikan Register B dengan 55
ADD B
; Tambahkan Register B dengan Acc
STA 5000H ; Simpan Acc pada alamat 5000H
INR A
; Tambahkan Isi Acc dengan 1
MOV B,A ; Simpan Isi Acc pada Register B
HLT
; Berhenti
18
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI JUMP DAN CALL :
JMP
Mengambil Instruksi berikutnya pada Alamat yang ditunjuk
Selalu diikuti Alamat yang diisikan ke Pencacah Program
Tanpa syarat
JM
Jump if Minus < Lompat ke Alamat yang ditunjuk Jika A bernilai
Minus >
SAP-2 mempunyai Zero Flag (Z) dan Sign Flag (S)
S = 0 jika A >= 0 dan S = 1 jika A < 0
Lompat dengan Syarat jika S = 1
19
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI JUMP DAN CALL :
JZ
Jump if Zero < lompat ke Alamat yang ditunjuk Jika A bernilai
Nol >
Z = 1 jika A = 0 dan Z = 0 jika A~= 0
Lompat dengan Syarat Z = 1
JNZ
Jump if Not Zero < Lompat ke Alamat yang ditunjuk Jika A tidak
sama dengan Nol >
Lompat dengan Syarat jika Z = 0
20
::. MATA KULIAH MIKROPROSESSOR .::
ILUSTRASI :
ILUSTRASI :
2000 H --------------------2005 H JMP 3000 H
2006 H ------------------------------3000 H ---------------------
2000 H --------------------2005 H JM 3000 H
2006 H ------------------------------3000 H ---------------------
Tanpa Syarat
Jika S = 1
21
::. MATA KULIAH MIKROPROSESSOR .::
ILUSTRASI :
2000 H --------------------2005 H JZ 3000 H
2006 H ------------------------------3000 H ---------------------
Jika Z = 1
ILUSTRASI :
2000 H --------------------2005 H JNZ 3000 H
2006 H ------------------------------3000 H ---------------------
Jika Z = 0
22
::. MATA KULIAH MIKROPROSESSOR .::
ILUSTRASI :
2000 H --------------------2005 H CALL 5000 H
2006 H ------------------------------5000 H ------------------------------RET
ILUSTRASI :
Alamat Isi
2000 H
2001 H
2002 H
2003 H
2004 H
2005 H
2006 H
2007 H
2008 H
2009 H
Simbol
0E H MVI C,03 H
03 H
0D H DCR C
CA H JZ 2009 H
09 H
20 H
C3 H JMP 2002H
02 H
20 H
76 H HLT
23
::. MATA KULIAH MIKROPROSESSOR .::
LOOP DAN LABEL :
LOOP < Simpal >
Bagian dari Program yang diulang-ulang
Lihat Ilustrasi
LABEL
Tanda bantu yang digunakan untuk instruksi lompat dan panggil
Diakhiri dengan : < titik dua >
Terdiri dari 1 – 6 karakter, yang pertama selalau huruf.
24
::. MATA KULIAH MIKROPROSESSOR .::
ILUSTRASI :
Label
Mnemonik
Komentar
MVI A,00 H ; Kosongkan Akumulator
MVI B,0C H ; Isikan desimal 12 ke B
MVI C,08 H ; Preset C dengan 8
REPEAT :
ADD B
; Tambahkan dengan 12
DCR C
; Kurangi isi C dengan 1
JZ DONE
; Lompat ke DONE
JMP REPEAT; Ulangi / Lompat
DONE :
HLT
; Berhenti
25
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI LOGIKA :
CMA
Complement the Accumulator < Komplemenkan isi Akumulator >
Melakukan komplemen-1 pada Isi Akumulator
ANA
AND-kan Isi Akumulator dengan isi Register tertentu
Contoh : ANA B ; AND-kan Isi Akumulator dengan isi Register B
Jika : A = 1110 1010
B = 1000 0101
Maka Eksekusi dari ANA B menghasilkan :
A = 1000 0000
26
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI LOGIKA :
ORA
OR –kan Isi Akumulator dengan Isi Register tertentu
Jika : A = 1110 1010
B = 1000 0101 ; maka Eksekusi ORA B menghasilkan :
A = 1110 1111
•XRA
– XOR-kan Isi Akumulator dengan isi Register tertentu
– Contoh : XRA B ; AND-kan Isi Akumulator dengan isi Register B
– Jika : A = 1110 1010
–
B = 1000 0101 ; Maka Eksekusi XRA B menghasilkan :
A = 0110 1111
27
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI LOGIKA :
ANI
AND –kan segera Isi Akumulator dengan Byte tertentu
Jika : A = 1110 1010, Maka Eksekusi ANI C7 H menghasilkan :
= 1100 0111 < C7 H >
A = 1100 0010
•ORI
OR-kan Segera Isi Akumulator dengan Byte tertentu
Eksekusi ORI C7 H menghasilkan :
A = 1100 0111
XRI
XOR-kan Segera Isi Akumulator dengan Byte Tertentu
28
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI LAINNYA :
NOP
No Operation ( tidak ada oprasi )
Untuk pengaturan waktu atau Waktu tunda
Jika 1 NOP = 4 T, maka 100 NOP menunggu 400 T
IN
Instruksi untuk memberi masukan
Memindahkan data dari Input Port ke Akumulator
Contoh : IN 02 H ; Memindahkan data dari Port 2 ke Akumulator
OUT
Memindahkan Isi Akumulator ke Output Port
Contoh : OUT 03 H ; Pindahkan Isi Akumulator ke Output Port 3
29
::. MATA KULIAH MIKROPROSESSOR .::
INSTRUKSI LAINNYA :
RAL
Rotate the Accumulator Left < Putar akumulator ke kiri >
RAR
Rotate the Accumulator Right < Putar akumulator ke kanan >
Jika A = 0100 1001, maka Eksekusi :
RAL  A = 1001 0010
RAR  A = 1010 0100
MSB
LSB
MSB
LSB
30
::. MATA KULIAH MIKROPROSESSOR .::
ILUSTRASI :
Label
Mnemonik
MVI A,00 H
MVI B,0C H
MVI C,08 H
REPEAT :
ADD B
DCR C
JZ DONE
DONE :
Waktu
;1x7xT
;1x7xT
;1x7xT
;4x8xT
;4x8xT
; 7 x 7 x T (tanpa Lompatan)
; 10 x 1 x T (dengan Lompatan)
JMP REPEAT; 10 x 7 x T (dengan Lompatan)
HLT
;5x1xT
31
::. MATA KULIAH MIKROPROSESSOR .::
::. Terima Kasih .::
32
Download