Simple As Posible – 2 (bag-1) (Pertemuan ke-17)
Disusun ulang oleh: Andrian Rakhmatsyah Diedit ulang oleh: Endro Ariyanto
Prodi S1 Teknik Informatika Fakultas Informatika
Universitas Telkom
Maret 2016
Arsitektur SAP-2
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #1
Arsitektur SAP-2 vs SAP -1 Cp CLK
L A
8 Program Counter
Accumulator A
4
CLR Ep
8
E A
L M
CE
I
8
CLK
Instruction Register
CLR E
8
8
8
L
RAM 16 x 8
S 4
8
CLK
Input & MAR
CLK
Adder/Substractor
B Register
Output Register
E
L
U U
B
CLK
L
O
CLK
4
I
CLK ControllerSequencer
CLK
Binary Display
CLR CLR
SAP-1 BLOCK ARCHITECTURE
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #2
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 #3
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 #4
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 #5
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 #6
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 #7
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 #8
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 #9
Klasifikasi Instruksi (2) • Instruksi Jump dan CALL • • • • • •
JMP (jump) JM (jump if minus) JZ (jump if zero) JNZ (jump if not zero) CALL (call the subroutine) RET (return)
• Instruksi Logika – 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 #10
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 #11
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 #12
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 #13
Instruksi Beracuan Memori (MRI) (2) Format instruksi : LDA address STA address
; LDA adalah opcodenya ; STA adalah opcodenya
Contoh Initial : AddrMem 2000H = 8AH LDA 2000H STA 7FFFH Final : AddrMem 2000H = 8AH Accumulator (A) = 8AH AddMem 7FFFH = 8AH
; A CON(2000H) ; AddrMem 7FFFH CON(A)
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #14
Instruksi Beracuan Memori (MRI) (3) Format instruksi : MVI A, byte MVI B, byte MVI C, byte
; MVI reg, … adalah opcode ; byte = nilai dalam ukuran 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 Organisasi dan Arsitektur Komputer – CSG2G3/2016 #15
Instruksi Beracuan Memori (MRI) (4)
Instruction
Opcode
T States Flags
Addressing
Bytes
LDA address
3AH
13
STA address
32H
MVI A, byte
Arti
None
Direct
3
A Maddress
13
None
Direct
3
Maddress A
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 #16
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 MVI B,4AH MVI C,4BH STA 6285H HLT
; A 49H ; B 4AH ; C 4BH ; CON(6285H) 49H ; Selesai Organisasi dan Arsitektur Komputer – CSG2G3/2016 #17
Instruksi Beracuan Memori (MRI) (6) Alamat Isi 2000H 2001H 2002H 2003H 2004H 2005H 2006H 2007H 2008H 2009H
Mnemonik 3EH MVI A, 49H 49H 06H MVI B, 4AH 4AH 0EH MVI C, 4BH 4BH 32H STA 6285H 85H 62H 76H HLT
; Big Endian
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #18
Instruksi Register (1) Instruction Opcode T Flags
Addressing Bytes
Arti
ADD B
80H
4
S, Z
Register
1
;AA+B
ADD C
81H
4
S, Z
Register
1
;AA+C
DCR A
3DH
4
S, Z
Register
1
;AA–1
DCR B
05H
4
S, Z
Register
1
;BB–1
DCR C
0DH
4
S, Z
Register
1
;CC–1
INR A
3CH
4
S, Z
Register
1
;AA+1
INR B
04H
4
S, Z
Register
1
;BB+1
INR C
0CH
4
S, Z
Register
1
;CC+1
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #19
Instruksi Register (2) Instruction
Opcode
T
Flags
Addressing
Bytes
Arti
MOV A, B
78H
4
None
Register
1
;AB
MOV A, C
79H
4
None
Register
1
;AC
MOV B, A
47H
4
None
Register
1
;BA
MOV B, C
41H
4
None
Register
1
;BC
MOV C, A
4FH
4
None
Register
1
;CA
MOV C, B
48H
4
None
Register
1
;CB
SUB B
90H
4
S, Z
Register
1
;AA–B
SUB C
91H
4
S, Z
Register
1
;AA-C
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #20
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 MVI B,2DH ADD B STA 5600H INR A MOV C, A HLT
; A 23d ; B 45d ; A 23d + 45d ; M5600H 68d ; A 68d + 1d ; C 69d ; Selesai Organisasi dan Arsitektur Komputer – CSG2G3/2016 #21
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 #22
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 #23
Instruksi Jump (1) Misal,
address 2005H
Instruksi JMP 3000H
2000H
………………… ………………… ………………… JMP 3000H 00H 30H MOV A, B … MOV B, C .................. …………………
Ilustrasi
2005H 2006H 2007H 2008H … 3000H
; PC 2006H ; PC 2007H ; PC 3000H
; PC 3001H
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #24
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 #25
Instruksi Jump (3) Jawab Alamat 2000H 2001H 2002H 2003H 2004H 2005H 2006H 2007H 2008H 2009H
Isi 0EH 03H 0DH CAH 09H 20H C3H 02H 20H 76H
Simbolik MVI C,03H DCR C JZ 2009H
JMP 2002H
HLT Organisasi dan Arsitektur Komputer – CSG2G3/2016 #26
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 #27
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 #28
Contoh (2) Tuliskan Program ProMul dengan menggunakan JNZ kemudian lakukan assembli-tangan! Alamat Isi 2000H 3EH 2001H 00H 2002H 06H 2003H 0CH 2004H 0EH 2005H 08H 2006H 80H 2007H 0DH 2008H C2H 2009H 06H 200AH 20H 200BH 76H
Instruksi MVI A,00H
Label MVI B, 0CH MVI C,08H
ADD B DCR C JNZ 2006H
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 #29
Contoh (3) Buatlah program untuk menjumlahkan angka desimal: 19 + 21 + 5 * 8 – 58 dengan menggunakan Instruksi JUMP! Alamat 2000H 2002H 2004H 2005H 2007H 2009H 200AH 200BH 200EH 2011H 2013H 2014H
Mnemonik MVI A,13H MVI B,15H ADD B MVI B,08H MVI C,05H ADD B DCR C JZ 2011H JMP 2009H MVI B,3AH SUB B HLT
Komentar ; A 19 ; B 21 ;AA+B ;B8 ;C5 ;AA+B ;CC-1 ; Lompat jika Z = 1 ; Lompat ; B 58 ;AA-B ; Selesai Organisasi dan Arsitektur Komputer – CSG2G3/2016 #30
Contoh (4)
Alamat 2000H 2001H 2002H 2003H 2004H 2005H 2006H 2007H 2008H 2009H 200AH 200BH 200CH 200DH 200EH 200FH 2010H 2011H 2012H 2013H 2014H
Isi 3EH 13H 06H 15H 80H 06H 08H 0EH 05H 80H 0DH CAH 11H 20H C3H 09H 20H 06H 3AH 90H 76H
Mnemonik MVI A,13H MVI B,15H ADD B MVI B,08H MVI C,05H ADD B DCR C JZ 2011H
JMP 2009H
MVI B,3AH SUB B HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #31
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 #32
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 Alamat Mnemonik 2004H ADD B F006H ADD B 2005H MVI B,08H F007H DCR C 2007H MVI C,05H F008H JZ F006H 2009H CALL F006H F00BH RET 200CH MVI B,3AH 200EH SUB B 200FH HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #33
CALL & RET (3)
Alamat Isi
Simbolik
F006H F007H F008H F009H F00AH F00BH
ADD B DCR C JZ F006H
80H 0DH CAH 06H F0H C9H
RET
Alamat 2000H 2001H 2002H 2003H 2004H 2005H 2006H 2007H 2008H 2009H 200AH 200BH 200CH 200DH 200EH 200FH
Isi 3EH 13H 06H 15H 80H 06H 08H 0EH 05H CD 06H F0H 06H 3AH 90H 76H
Simbolik MVI A,13H MVI B,15H
ADD B MVI B,08H MVI C,05H CALL F006H
MVI B,3AH SUB B HLT
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #34
Referensi • Malvino, Albert Paul; Jerald A. Brown. 1999. “Digital Computer Electronics”.3rd edition. McGraw-Hill. New York
Organisasi dan Arsitektur Komputer – CSG2G3/2016 #35