Simple As Possible (SAP) - 22 kB pertama (0000 H s/d 07FF H) untuk program monitor : serangkaian...
Transcript of Simple As Possible (SAP) - 22 kB pertama (0000 H s/d 07FF H) untuk program monitor : serangkaian...
Arsitektur Komputer SAP-2
Persamaan dengan
SAP-1 :
Sama-sama komputer
8 bit.
Kesamaan ini dapat
dilihat dari data yang
diolah oleh ALU SAP-2
yang masih 8 bit.
Keyboard
Heksadesimal
Register
Masukan 1
Register
Masukan 2
Program
Counter
MAR
Memori RAM
64 KB
Memory Data
Register
Register
Instruksi
Pengendali-
Pengurut
Akumulator A
ALU
TEMP
B
C
Register
Keluaran 3
Peraga
Heksadesimal
Register
Keluaran 48
16
8
16
8
8
8
8
16
8
8
8
8
8
8
8 8
16
8
8
8
CON
Serial Out
Flag2
Serial In
W
16
Perbedaan SAP-1 dengan SAP-2
Penambahan register-register baru.
Penambahan lebar bus menjadi 16 bit (lebar data yang dioperasikan ALU tetap 8 bit).
RAM yang tersedia 64 KB.
Penambahan kemampuan logika pada ALU.
Adanya flag (bendera).
Peningkatan jumlah instruksi dari 5 ke 43 instruksi (42 instruksi + 1 instruksi No operation).
Penambahan Register
Register-register pada SAP-1 (5 buah) :– Input Register dan MAR (1 buah)– Output Register (1 buah)– Register Instruksi (1 buah)– Register Aritmatika (2 buah : A dan B)
Register-register pada SAP-2 (11 buah) :– Input Register (2 buah)– Output Register (2 buah)– Register Instruksi (1 buah)– Register Aritmatika (4 buah : A, B, C, TMP)– MAR (1 buah)– Memory Data Register (MDR, 1 buah)
Penambahan Lebar Bus dan PC
Penambahan lebar bus menjadi 16 bit untuk mendukunglebar alamat memori yang dikeluarkan oleh PC.
PC mengeluarkan 16 bit alamat berarti dapatmengalamati 216 alamat = 65.536 alamat, dari 0000 H sampai FFFF H
65.536 alamat dengan tiap alamat 8 bit maka :
– 65.536 * 8 bit = 524.288
– 524.288 : 8192 = 64 kByte
PC dapat menerima data masukan dari bus W ygbermanfaat untuk instruksi Jump dan pemanggilansubroutine.
RAM 64 KB
Kapasitas RAM 64 kB dari alamat 0000 H sampai FFFF H.
2 kB pertama (0000 H s/d 07FF H) untuk program monitor : serangkaian program untuk menampilkan isiinput register dan output register ke monitor.
62 kB berikutnya untuk instruksi dan data.
Kemampuan Logika ALU & Flag
SAP-1 belum punya ALU tetapi hanya Penambah & Pengurang. SAP-2 sudah memiliki ALU.
Adanya Flag :
– Sign Flag untuk menandai nilai pada register A negatif (sign flag = 1) atau A positif (sign flag = 0).
– Zero Flag untuk menandai nilai pada register A nol (zero flag = 1) atau A bukan nol (zero flag = 0).
Peningkatan Jumlah Instruksi
Data yang masuk dari IR ke Pengendali & Pengurutsebanyak 8 bit.
8 bit ini menjadi alamat bagi Pengendali & Pengurut.
Kemampuan pengalamatannya 28 = 256 alamat, dari 00 H sd FF H.
Tiap alamat berisi 1 signal CON.
Dari 256 signal CON didapat 43 instruksi.
Perangkat Instruksi
Instruksi terdiri dari 2 bagian, yaitu kode operasi(operation code, opcode) dan yang dioperasikan(operand).
Kode operasi lebarnya 8 bit, menempati satu alamat diRAM.
Contoh instruksi dengan operand yang berbeda-beda :
Perangkat Instruksi (2)
ADD B : Kode operasi 80 dan tidakmembutuhkan memori untukoperand.
MVI A, 18 H : Kode operasi 3E membutuhkansatu alamat RAM untuk operand.
STA 4861 H : Kode operasi 32 membutuhkan 2 alamat RAM untuk operand.
Misal ketiga instruksi tersebut disimpan pada RAM secaraberurutan mulai alamat 1000 H, maka peta isi RAM sebagai berikut :
RAM
Alamat Isi (Biner) Isi (Hexa) Instruksi
1000 H 1000 0000 80 ADD B
1001 H 0011 1110 3EMVI A, 18 H
1002 H 0001 1000 18
1003 H 0011 0010 32
STA 4861 H1004 H 0110 0001 61
1005 H 0100 1000 48
1006 H ….. ….. …..
Perangkat Instruksi SAP-2No Mnemonik Opcode
1 ADD B 80
2 ADD C 81
3 DCR A 3D
4 DCR B 05
5 DCR C 0D
6 HLT 76
7 INR A 3C
8 INR B 04
9 INR C 0C
10 LDA alamat 3A
11 MOV A, B 78
12 MOV A, C 79
13 MOV B, A 47
No Mnemonik Opcode
14 MOV B, C 41
15 MOV C, A 4F
16 MOV C, B 48
17 STA alamat 32
18 SUB B 90
19 SUB C 91
20 OUT D3
21 MVI A, byte 3E
22 MVI B, byte 06
23 MVI C, byte 0E
Perangkat Instruksi SAP-2No Mnemonik Opcode
24 JMP alamat C3
25 JM alamat FA
26 JNZ alamat C2
27 JZ alamat CA
28 ANA B A0
29 ANA C A1
30 ANI byte E6
31 CALL alamat CD
32 CMA 2F
33 ORA B B0
34 ORA C B1
35 ORI byte F6
36 RAL 17
No Mnemonik Opcode
37 RAR 1F
38 RET C9
39 XRA B A8
40 XRA C A9
41 XRI byte EE
42 IN byte DB
43 NOP 00
Instruksi-Instruksi SAP-2
1. LDA (Load The Accumulator)
Mengambil data dari memori dan dipindahkan keAkumulator.
Format : LDA alamat
Contoh : LDA 1500H (isi reg A dgn nilai pada alamat 1500H)
2. STA (Store The Accumulator)
Mengambil data dari Akumulator dan dipindahkan kememori.
Format : STA alamat
Contoh : STA 1501H (isi RAM pada alamat 1501H dengan nilai ygada pada Akumulator)
Instruksi-Instruksi SAP-2 (2)
3. MVI (Move Immediate)
Mengisi register aritmatika (A, B, C) dengan nilaitertentu.
Format : MVI register, nilai
Contoh : MVI B, C4H (isi register B dengan nilai C4H)
4. MOV (Move)
Menyalin data dari satu register aritmatika ke register aritmatika lain.
Format : MOV register, register
Contoh : MOV B, C (isi register B dgn data pd register C).
Instruksi-Instruksi SAP-2 (3)
5 & 6. ADD dan SUBMenambah atau mengurang isi reg A dgn nilairegister aritmatika lain dan hasil disimpan padaAkumulator.Format : ADD register atau SUB register
Contoh : ADD B (A = A + B)SUB C (A = A – C)
7 & 8. INR (Increment) dan DCR (Decrement)Menambah atau mengurangi isi sebuah register aritmatika dengan 1.Format : INR register atau DCR register
Contoh : INR B (B = B + 1)DCR C (C = C – 1)
Instruksi-Instruksi SAP-2 (4)
9. JMP (Jump)
Instruksi lompatan tidak bersyarat. Prosesor langsungmengalihkan eksekusi program sesuai dengan alamattujuan lompatan.
Format : JMP alamat
Contoh : JMP 2500H
PC 2500H
Instruksi ini memberitahu prosesor untuk menjalankaninstruksi pada alamat 2500H.
Proses ini mengubah nilai program counter denganalamat 2500H.
Instruksi-Instruksi SAP-2 (5)
10. JM (Jump if Minus)
Instruksi lompatan bersyarat. Prosesor akan memeriksaflag (Sign) keluaran dari ALU pada operasi sebelumya.
Jika sign flag bernilai 1, artinya hasilnya negatif, makalompatan dilakukan.
Jika sebaliknya maka lompatan tidak dilakukan.
Format : JM alamat
Instruksi-Instruksi SAP-2 (6)
Contoh :
Asumsi : Nilai reg A = 45H, B = 10H, dan C=60H
SUB B : A = A - B
= 45H - 10H
A = 35H
JM 1000H
SUB C : A = A - C
= 35H - 60H
A = Hasilnya minus (kecil dari 0)
JM 2600H
Instruksi-Instruksi SAP-2 (7)
Setelah instruksi pertama dieksekusi nilai A positif.
Pada instruksi berikutnya (JM 1000H) kondisi syaratuntuk lompat tidak dipenuhi maka prosesor mengerjakaninstruksi berikutnya (SUB C).
Setelah instruksi ketiga isi A bernilai negatif maka padainstruksi ke 4 (JM 2600H) prosesor akan lompat danmengerjakan instruksi pada alamat 2600H.
Instruksi-Instruksi SAP-2 (8)
11. JZ (Jump if Zero)
Instruksi lompatan bersyarat. Prosesor akan memeriksa(flag) Zero keluaran dari ALU sebelumnya. Jika flag Zero bernilai 1, artinya hasilnya 0, maka lompatan akandilakukan. Jika sebaliknya maka lompatan tidakdilakukan.
Format : JZ alamat
Contoh : JZ 2500H
Instruksi ini memberitahu prosesor untuk menjalankaninstruksi pada alamat 2500H jika zero flag bernilai 1.
Instruksi-Instruksi SAP-2 (9)
12. JNZ (Jump if not Zero)
Instruksi lompatan bersyarat. Prosesor akan memeriksa(flag) Zero keluaran dari ALU sebelumnya. Jika flag Zero bernilai 0, artinya hasilnya bukan 0, maka lompatanakan dilakukan. Jika sebaliknya maka lompatan tidakdilakukan.
Format : JNZ alamat
Contoh : JNZ 2500H
Instruksi ini memberitahu prosesor untuk menjalankaninstruksi pada alamat 2500H jika zero flag bernilai 0.
Latihan (1)
Berikut adalah potongan sebuah program pada SAP-2. Tentukan nilai akhir pada register Akumulator !
MVI A, 6A HMVI B, 2E HMVI C, 89 HSUB BDCR AADD COUTHLT
Latihan (2)
Berikut adalah potongan sebuah program pada SAP-2. Tentukan nilai akhir pada register Akumulator !
MVI A, 2C HMVI B, 19 HMVI C, 2A HADD BDCR CSUB COUTHLT
Latihan (3)
Berikut adalah potongan sebuah program pada SAP-2. Tentukan nilai akhir pada register Akumulator !
MVI A, 2C HMVI B, 19 HMVI C, 3E HADD BINR ADCR CSUB COUTHLT
Latihan (4)
Berikut adalah potongan sebuah program pada SAP-2. Tentukan nilai akhir pada register C !
MVI A, 17 HMVI B, 2D HADD BINR AMOV C, AHLT
Latihan (5)
Berikut adalah potongan sebuah program pada SAP-2. Tentukan nilai akhir pada RAM di alamat 3AB8 H !
LDA 3AB7 H, 3A HMVI B, 1D HMVI C, 3C HADD BSUB CADD 4210
STA 3AB8 HHLT