4-sap 2.pptx
TRANSCRIPT
Pengantar Arsitektur Komputer
SAP-2
SAP – 2 Evolusi ke Komputer Modern Arsitektur lebih lengkap dibanding
SAP-1 Instruksi lebih banyak termasuk
jump (Lompat) Menggunakan Register dua Arah Persamaan fundamental SAP-1 dan
SAP-2 lebar data ALU sebesar 8 bit
PC (Program Counter ) 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
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
07
Ready
Serial OutAck
07
MAR & Memori Menerima alamat 16-bit Keluaran 2-state ke memori
ROM 2KB berisi program Monitor Inisialisasi saat dinyalakan
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
07
Ready
Serial OutAck
07
ROM
RAM
0000 H07FF H0800 H
FFFF H
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
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
07
Ready
Serial OutAck
07
Register Instruksi ( IR ) IR 8-bit mampu menampung 2^8
= 256 Instruksi. SAP-2 hanya 42 Instruksi Kompatibel dengan 8080 /
8085
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
0
7
Ready
Serial OutAck
07
Pengendali-Pengurut Menghasilkan kata kendali
atau mikroinstruksi SAP-2 lebih banyak
Instruksi, pengendali lebih rumit.
Kata CON lebih panjang
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
0
7
Ready
Serial OutAck
07
Akumulator Register 2 Arah Keluaran 3-state ke bus W Terus menerus
menggerakkan ALU
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
0
7
Ready
Serial OutAck
07
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.
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
0
7
Ready
Serial OutAck
07
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
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
0
7
Ready
Serial OutAck
07
Output Port Mempunyai 2 Output Port Output Port 3 ke Peraga
Hexa Output Port 4 ke Serial Out
line 0
Encoder Hexa
In Port 1
In Port 2
PC
MAR
A
ALU
TEMP
B
C
8
8 8
88
16
Bus W
Memori
MDR
IR
CON
Out Port 3
Out Port 4
16
8
8
8
8
816
8
8
8
8
8
8
Hexa Disp
Flag
8
2
Serial In
Ack
0
7
Ready
Serial OutAck
07
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 */
STA (Store Accumulator) Simpan Isi Akumulator ke lokasi memori yang ditunjuk Contoh : STA 7FFFH ; /* Simpan Isi Akumulator ke
alamat 7FFFH */
OperanOperasi
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, byteMVI B, byteMVI C, byte
ADD BADD CANA BANA CANI byteCALL alamatCMADCR ADCR BDCR CHLTIN byteINR AINR BINR CJM alamatJMP alamatJNZ alamatJZ alamatLDA alamatMOV A,BMOV A,C
8081A0A1E6CD2F3D050D76DB3C040CFAC3C2CA3A7879
MOV B,AMOV B,CMOV C,AMOV C,BMVI A, byteMVI B, byteMVI C, byteNOPORA BORA CORI byteOUT byteRALRARRETSTA alamatSUB BSUB CXRA BXRA CXRI byte
47414F483E060E00B0B1F6D3171FC9329091A8A9EE
INSTRUKSI INSTRUKSIOP CODE OP CODE
Contoh : Bahasa Mesin 8080/8085 Alamat Isi Mnemonik Jumlah2000H 3EH MVI A, 49H 2-byte2001H 49H2002H 06H MVI B, 4AH 2-byte2003H 4AH2004H 0EH MVI C, 4BH 2-byte2005H 4BH2005H 32H STA 6285H 3-byte2006H 85H2007H 62H2009H 76H HLT 1-byte
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 */
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
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
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 55ADD B ; Tambahkan Register B dengan AccSTA 5000H ; Simpan Acc pada alamat 5000HINR A ; Tambahkan Isi Acc dengan 1MOV B,A ; Simpan Isi Acc pada Register BHLT ; Berhenti
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
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
ILUSTRASI :2000 H -----------
-----------2005 H JMP 3000 H2006 H ----------- -----------
-----------3000 H -----------
-----------
ILUSTRASI :2000 H -----------
-----------2005 H JM 3000 H2006 H ----------- -----------
-----------3000 H -----------
-----------
Tanpa Syarat Jika S = 1
ILUSTRASI :2000 H -----------
-----------2005 H JZ 3000 H2006 H ----------- -----------
-----------3000 H -----------
-----------
ILUSTRASI :2000 H -----------
-----------2005 H JNZ 3000 H2006 H ----------- -----------
-----------3000 H -----------
-----------
Jika Z = 1 Jika Z = 0
ILUSTRASI :2000 H -----------
-----------2005 H CALL 5000 H2006 H ----------- -----------
-----------5000 H -----------
----------- -----------
RET
ILUSTRASI : Alamat Isi Simbol
2000 H 0E H MVI C,03 H2001 H 03 H 2002 H 0D H DCR C2003 H CA H JZ 2009 H2004 H 09 H 2005 H 20 H2006 H C3 H JMP 2002H2007 H 02 H2008 H 20 H2009 H 76 H HLT
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.
INSTRUKSI LOGIKA
ILUSTRASI :Label Mnemonik Komentar
MVI A,00 H ; Kosongkan AkumulatorMVI B,0C H ; Isikan desimal 12 ke BMVI C,08 H ; Preset C dengan 8
REPEAT : ADD B ; Tambahkan dengan 12DCR C ; Kurangi isi C dengan 1JZ DONE ; Lompat ke DONEJMP REPEAT ; Ulangi / Lompat
DONE : HLT ; Berhenti
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
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 1010B = 1000 0101 ; Maka Eksekusi XRA B menghasilkan :A = 0110 1111
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
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
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
ILUSTRASI :Label Mnemonik WaktuMVI A,00 H ; 1 x 7 x TMVI B,0C H ; 1 x 7 x TMVI C,08 H ; 1 x 7 x TREPEAT : ADD B ; 4 x 8 x TDCR C ; 4 x 8 x TJZ DONE ; 7 x 7 x T (tanpa Lompatan); 10 x 1 x T (dengan Lompatan) JMP REPEAT; 10 x 7 x T (dengan Lompatan) DONE: HLT ; 5 x 1 x T