simple as posible 2 (bag-1) · (pertemuan ke-17) prodi s1 teknik ... organisasi dan arsitektur...
TRANSCRIPT
Maret 2016
Simple As Posible – 2 (bag-1) (Pertemuan ke-17)
Prodi S1 Teknik Informatika Fakultas Informatika
Universitas Telkom
Disusun ulang oleh:
Andrian Rakhmatsyah
Diedit ulang oleh:
Endro Ariyanto
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #1
Arsitektur SAP-2
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #2
Accumulator
A
Controller-
Sequencer
Instruction
Register
RAM
16 x 8
Input &
MAR
Program Counter
Adder/Substractor
B
Register
Output
Register
Binary Display
8
8
4
84
8
8
4
8
8Cp
CLK
CLREp
CLK
CE
CLK
CLR
CLK
EA
SU
CLK
CLK
LO
LM
LI
EI
CLK
CLK
CLR
CLR
EU
LB
LA
SAP-1 BLOCK ARCHITECTURE
Arsitektur SAP-2 vs SAP -1
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #3
Komponen SAP-2 (1)
HEXADECIMAL KEYBOARD ENCODER Untuk memasukkan instruksi dan data hexadesimal Dihubungkan dengan Input Port 1 Mengirimkan sinyal READY sebagai bit-0 pada port 2 Bit READY ini mengindikasikan data pada port 1 sudah valid INPUT PORT 1 Menerima masukan dari HEXADECIMAL KEYBOARD
ENCODER INPUT PORT 2 Menerima sinyal SERIAL IN dari input port 1 Untuk mengirimkan data ke peripheral
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #4
Komponen SAP-2 (2)
PROGRAM COUNTER Menunjukkan alamat instruksi selanjutnya yang akan
dieksekusi Memiliki 16-bit (2 byte): 0000H – FFFFH MAR (MEMORY ADDRESS REGISTER) Menyimpan alamat memori dari instruksi/data Menerima masukan dari PC sebanyak 2 byte
MEMORI Memiliki ukuran 64K x 8 bit. Terbagi menjadi 2 bagian. ROM: Alamat 0000H – 07FFH (=2K) berisi program monitor
(inisialisasi, decode masukan dari keyboard) RAM: Alamat 08FFH – FFFFH (=62K), user program
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5
Komponen SAP-2 (3)
MDR (MEMORY DATA REGISTER) Menyimpan data sementara dari Memori (RAM) Untuk Akses Memori : Akses Baca : Memori MDR Bus Register Akses Tulis : Register Bus MDR Memori
INSTRUCTION REGISTER Register tempat penyimpanan instruction set (decode) Berisi Opcode 8-bit CONTROL UNIT Penghasil word kendali ACCUMULATOR Penyangga data operand atau hasil aritmatika/logik
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #6
Komponen SAP-2 (4)
ALU (ARITHMATIC LOGIC UNIT) Unit pemroses aritmatika FLAGS Register yang mengikuti hasil proses Aritmatik/Logika pada
ALU. Berukuran 2-bit. Menyimpan status S (Sign) dan Z (Zero) S = 1 jika Accumulator (A) < 0 dan sebaliknya Z = 1 jika Accumulator (A) = 0 dan sebaliknya
TMP Register, B Register and C Register Penyimpan data operand kedua untuk operasi
aritmatika/Logik
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #7
Komponen SAP-2 (5)
OUTPUT PORT 3
Penyimpan data Accumulator yang akan ditampilkan di Hexadesimal Display
HEXADECIMAL DISPLAY
Menampilkan isi Accumulator dari Output Port 3
OUTPUT PORT 4
Pin ke-7 (bit-7) dapat digunakan sebagai ACKNOWLEDGE (ACK) sinyal ke Hexadecimal encoder
Sinyal (bit) ACK dan bit READY ini bagian dari konsep Handshaking
Penyimpan data Accumulator yang akan ditampilkan secara SERIAL (dari pin/bit-0)
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #8
Pemrosesan Instruksi
1.Fase Pengambilan (Fetch Cycle), bersifat tetap yaitu 3 pulsa – T1 : Address State
– T2 : Increment State
– T3 : Memory State
2.Fase Eksekusi (Execution Cycle), jumlah pulsa tergantung instruksi
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #9
Klasifikasi Instruksi (1)
• Instruksi Beracuan Memori (MRI) – LDA (Load Accumulator) – STA (Store Accumulator) – MVI (Move Immediate)
• Instruksi Register
– MOV (move) – ADD – SUB (substract) – INR (increment) – DCR (decrement)
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #10
Klasifikasi Instruksi (2)
• Instruksi Jump dan CALL • Instruksi Logika
• JMP (jump)
• JM (jump if minus)
• JZ (jump if zero)
• JNZ (jump if not zero)
• CALL (call the subroutine)
• RET (return)
– CMA (Complement the Accumulator)
– ANA, (AND the Accumulator)
– ORA, (OR The Accumulator)
– XRA, (XOR the Accumulator)
– ANI (AND immediate)
– ORI (OR immediate)
– XRI (XOR immediate)
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #11
Klasifikasi Instruksi (3)
• Instruksi Lain – NOP (No Operation)
– HLT (Halt)
– IN (Input)
– OUT (Output)
– RAL (Rotate the Accumulator Left)
– RAR (Rotate the Accumulator Right)
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #12
Klasifikasi Instruksi (4)
Modus Pengalamatan 1. Pengalamatan langsung (Direct Addressing) Contoh : LDA address 2. Pengalamatan Segera (Immediate Addressing) Contoh : MVI A, byte 3. Pengalamatan Register (Register Addressing) Contoh : MOV A, B 4. Pengalamatan Tersirat (Implied Addressing) Contoh : RAL
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #13
Instruksi Beracuan Memori (MRI) (1)
Dibagi menjadi 2
1. Operand berupa alamat
Format Dasar : Opcode, address
Contoh : LDA 2000H
2. Operand berupa nilai konstanta (byte)
Format Dasar : Opcode, byte
Contoh : MVI A, 49H
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #14
Instruksi Beracuan Memori (MRI) (2)
Format instruksi :
LDA address ; LDA adalah opcodenya
STA address ; STA adalah opcodenya
Contoh
Initial :
AddrMem 2000H = 8AH
LDA 2000H ; A CON(2000H)
STA 7FFFH ; AddrMem 7FFFH CON(A)
Final :
AddrMem 2000H = 8AH
Accumulator (A) = 8AH
AddMem 7FFFH = 8AH
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #15
Format instruksi : MVI A, byte ; MVI reg, … adalah opcode MVI B, byte ; byte = nilai dalam ukuran byte MVI C, byte
Contoh Initial : Register A = 8AH; B = 00H; C = 00H MVI A, 00H ; CON(A) 00H MVI B, 8AH ; CON(B) 8AH MVI C, 8AH ; CON(C) 8AH Final : A = 00H B = C = 8AH
Instruksi Beracuan Memori (MRI) (3)
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #16
Instruksi Beracuan Memori (MRI) (4)
Instruction Opcode T States Flags Addressing Bytes Arti
LDA address 3AH 13 None Direct 3 A Maddress
STA address 32H 13 None Direct 3 Maddress A
MVI A, byte 3EH 7 None Immediate 2 A byte
MVI B, byte 06H 7 None Immediate 2 B byte
MVI C, byte 0EH 7 None Immediate 2 C byte
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #17
Instruksi Beracuan Memori (MRI) (5)
Contoh : Tunjukkan mnemonik dari program untuk, Mengisi akumulator dengan 49H, Mengisi register B dengan 4AH Mengisi register C dengan 4BH, dan kemudian Menyimpan isi Accumulator ke lokasi memori 6285H. Terjemahkan ke dalam bahasa mesin mulailah pada alamat 2000H! Jawab :
MVI A,49H ; A 49H MVI B,4AH ; B 4AH MVI C,4BH ; C 4BH STA 6285H ; CON(6285H) 49H HLT ; Selesai
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #18
Instruksi Beracuan Memori (MRI) (6)
Alamat Isi Mnemonik
2000H 3EH MVI A, 49H ; Big Endian
2001H 49H
2002H 06H MVI B, 4AH
2003H 4AH
2004H 0EH MVI C, 4BH
2005H 4BH
2006H 32H STA 6285H
2007H 85H
2008H 62H
2009H 76H HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #19
Instruksi Register (1)
Instruction Opcode T Flags Addressing Bytes Arti
ADD B 80H 4 S, Z Register 1 ; A A + B
ADD C 81H 4 S, Z Register 1 ; A A + C
DCR A 3DH 4 S, Z Register 1 ; A A – 1
DCR B 05H 4 S, Z Register 1 ; B B – 1
DCR C 0DH 4 S, Z Register 1 ; C C – 1
INR A 3CH 4 S, Z
Register 1 ; A A + 1
INR B 04H 4 S, Z
Register 1 ; B B + 1
INR C 0CH 4 S, Z
Register 1 ; C C + 1
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #20
Instruksi Register (2)
Instruction Opcode T Flags Addressing Bytes Arti
MOV A, B 78H 4 None Register 1 ; A B
MOV A, C 79H 4 None Register 1 ; A C
MOV B, A 47H 4 None Register 1 ; B A
MOV B, C 41H 4 None Register 1 ; B C
MOV C, A 4FH 4 None Register 1 ; C A
MOV C, B 48H 4 None Register 1 ; C B
SUB B 90H 4 S, Z Register 1 ; A A – B
SUB C 91H 4 S, Z Register 1 ; A A - C
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #21
Instruksi Register (3)
Contoh, Buatlah Program SAP-2 untuk penjumlahan angka-angka desimal 23 dan 45. Jawabannya disimpan pada lokasi memori 5600H. Kemudian jawaban itu ditambahkan dengan 1 dan disimpan di register C! Jawab
MVI A,17H ; A 23d
MVI B,2DH ; B 45d ADD B ; A 23d + 45d STA 5600H ; M5600H 68d
INR A ; A 68d + 1d MOV C, A ; C 69d HLT ; Selesai
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #22
Instruksi Jump dan CALL (1)
SAP-2 memiliki 3 macam instruksi Jump (lompat) Jump tanpa syarat
Jump bersyarat
Subrutin
Instruksi ini mengubah urutan program, program akan berpindah ke bagian program lainnya
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #23
Instruksi Jump dan CALL (2)
Instruction Opcode T Flags Addressing Bytes Arti
CALL address CDH 18 None Immediate 3 PC address
JM address FAH 10/7 None Immediate 3 PC address jika S = 1
JMP address C3H 10 None Immediate 3 PC address
JNZ address C2H 10/7 None Immediate 3 PC address jika Z = 0
JZ address CAH 10/7 None Immediate 3 PC address jika Z = 1
RET C9H 10 None Implied 1 PC Return address
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #24
Instruksi Jump (1)
Misal, address Instruksi
2005H JMP 3000H
Ilustrasi
2000H …………………
…………………
…………………
2005H JMP 3000H ; PC 2006H
2006H 00H ; PC 2007H
2007H 30H ; PC 3000H 2008H MOV A, B
… …
3000H MOV B, C ; PC 3001H
..................
…………………
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #25
Instruksi Jump (2)
Contoh,
Lakukan assembli-tangan pada program di bawah ini dimulai dari lokasi memori 2000H:
MVI C,03H
DCR C
JZ 2009H
JMP 2002H
HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #26
Instruksi Jump (3)
Jawab Alamat Isi Simbolik 2000H 0EH MVI C,03H 2001H 03H 2002H 0DH DCR C 2003H CAH JZ 2009H 2004H 09H 2005H 20H 2006H C3H JMP 2002H 2007H 02H 2008H 20H 2009H 76H HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #27
Instruksi Jump Bersyarat
Misal, address Instruksi 2005H JM 3000H Ilustrasi 2000H ………………… ………………… ………………… 2005H JM 3000H ; PC 2006H 2006H ; PC 2007H 2007H ; PC 2008H (7T) atau 3000H
(10T) 2008H MOV A, B … … 3000H MOV B, C ; PC 3001H .................. …………………
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #28
Contoh (1)
ProMul: Tuliskan program perkalian bilangan desimal 12 dengan 8
Jawab : Label Instruksi Komentar MVI A,00H ; Kosongkan isi A MVI B, 0CH ; Isikan desimal 12 ke B MVI C,08H ; Isikan desimal 8 ke C REPEAT: ADD B ; Tambahkan A dengan B DCR C ; Kurangkan isi C JZ END ; Periksa apakah C = 0
JMP REPEAT ; Ulangi END: HLT ; Berhenti
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #29
Contoh (2)
Tuliskan Program ProMul dengan menggunakan JNZ kemudian lakukan assembli-tangan! Alamat Isi Instruksi
2000H 3EH MVI A,00H 2001H 00H 2002H 06H MVI B, 0CH 2003H 0CH 2004H 0EH MVI C,08H 2005H 08H 2006H 80H ADD B 2007H 0DH DCR C 2008H C2H JNZ 2006H 2009H 06H 200AH 20H 200BH 76H
Label Instruksi MVI A,00H MVI B, 0CH MVI C,08H LOOP: ADD B DCR C JNZ LOOP END: HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #30
Contoh (3)
Buatlah program untuk menjumlahkan angka desimal: 19 + 21 + 5 * 8 – 58 dengan menggunakan Instruksi JUMP! Alamat Mnemonik Komentar 2000H MVI A,13H ; A 19 2002H MVI B,15H ; B 21 2004H ADD B ; A A + B 2005H MVI B,08H ; B 8 2007H MVI C,05H ; C 5 2009H ADD B ; A A + B 200AH DCR C ; C C - 1 200BH JZ 2011H ; Lompat jika Z = 1 200EH JMP 2009H ; Lompat 2011H MVI B,3AH ; B 58 2013H SUB B ; A A - B 2014H HLT ; Selesai
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #31
Contoh (4) Alamat Isi Mnemonik 2000H 3EH MVI A,13H 2001H 13H 2002H 06H MVI B,15H 2003H 15H 2004H 80H ADD B 2005H 06H MVI B,08H 2006H 08H 2007H 0EH MVI C,05H 2008H 05H 2009H 80H ADD B 200AH 0DH DCR C 200BH CAH JZ 2011H 200CH 11H 200DH 20H 200EH C3H JMP 2009H 200FH 09H 2010H 20H 2011H 06H MVI B,3AH 2012H 3AH 2013H 90H SUB B 2014H 76H HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #32
CALL & RET (1)
• Subroutine yang disimpan di suatu lokasi memori tertentu untuk digunakan oleh program lain.
• Analogi sebuah fungsi dalam PASCAL, yang dapat menghasilkan keluaran.
• RET digunakan pada setiap akhir sebuah subroutine, artinya memberitahu komputer untuk kembali ke program semula.
• Isi Program Counter akan disimpan secara otomatis dalam 2 lokasi memori yaitu FFFEH & FFFFH pada saat instruksi CALL dieksekusi.
• Setelah selesai dilaksanakan instruksi RET akan memberitahu komputer agar isi pada 2 lokasi memori FFFEH & FFFFH diisikan ke Program Counter untuk mengembalikan kendali ke program semula.
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #33
CALL & RET (2)
Buatlah Program pada contoh 6 (di buku) dengan menggunakan CALL dan RET pada proses perkalian 5 * 8 jika lokasi CALL berada di F006H! Alamat Mnemonik 2000H MVI A,13H 2002H MVI B,15H 2004H ADD B 2005H MVI B,08H 2007H MVI C,05H 2009H CALL F006H 200CH MVI B,3AH 200EH SUB B 200FH HLT
Alamat Mnemonik F006H ADD B F007H DCR C F008H JZ F006H F00BH RET
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #34
CALL & RET (3) Alamat Isi Simbolik 2000H 3EH MVI A,13H 2001H 13H 2002H 06H MVI B,15H 2003H 15H 2004H 80H ADD B 2005H 06H MVI B,08H 2006H 08H 2007H 0EH MVI C,05H 2008H 05H 2009H CD CALL F006H 200AH 06H 200BH F0H 200CH 06H MVI B,3AH 200DH 3AH 200EH 90H SUB B 200FH 76H HLT
Alamat Isi Simbolik
F006H 80H ADD B
F007H 0DH DCR C
F008H CAH JZ F006H
F009H 06H
F00AH F0H
F00BH C9H RET
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #35
• Malvino, Albert Paul; Jerald A. Brown. 1999. “Digital Computer Electronics”.3rd edition. McGraw-Hill. New York
Referensi