Minggu, 27 November 2011

MIKROPROSESSOR D3

Lanjutan-


Untuk bilangan pertama dan kedua masing-masing diperlukan N-byte memory. Sedangkan untuk menampung hasil penjumlahannya di simpan pada lokasi memory yang sama.
Notasi operasinya adalah sebagai berikut :
Operand                   operand + penjumlah
Pada operasi pengurangan, kita menggunakan rangkaian digital yang sama dengan yang digunakan dalam operasi penjumlahan, karena cara menyelesaikan operasinya juga hampir sama. Perbedaannya hanyalah pada teknik menegatifkan operand kedua. Untuk menegatifkan bilangan, dilakukan cara yang disebut 2’s complement. Cara ini terdiri dari 2 tahap, tahap pertama adalah membalik bilangan tersebut, semua angka ‘0’ pada bilangan tersebut diubah menjadi 1 dan sebaliknya. Sedangkan tahap kedua adalah increment bilangan.
Potongan program untuk pengurangan hampir sama dengan potongan program untuk penjumlahan, kita cukup mengganti instruksi ADDC (Add with Carry) menjadi SUBB ( Sub with Borrow).
(Sumber : Modul 9.Aritmetika Biner Mikroprosesor (Ir. Eko Ihsanto M.Eng.)
A.     Alat Dan Bahan
1.  Adaptor 12 V                                                 1 Buah
2.  Trainer Mikroprosessor                               1 Buah
3.  Modul Mikroprosessor                                 1 Buah
B.    Langkah Kerja
1.    Mencari object code dari perintah program penambahan dan pengurangan biner.
2.    Lakukan pengisian program pada memory. (Addres memory mulai 1800 H – 18IBH). Dimana untuk register IX mulai  alamat 1800 H sedang untuk register IY mulai alamat 1819.
3.    Periksa  kembali  isi  register  IX  dan  IY  dengan  menekan  tombol  reg  dan IX  atau  IY.
4.    Lakukan pengecekan hasil penjumlahan dengan menekan tombol (PC + GO).0
5.    Catat hasil pengamatan pada tabel
6.    Analisa hasil pengamtan dan bualah kesimpulan.
C.    Hasil Percobaan
Tabel 7. Penjumlahan Bilangan Biner
Yang ditambah
Penambah
Jawab
Pemeriksaan
793865 H
ABCDEFG H
Cy = 1
240745
009543 H
AB1236 H
Cy = 0
ABA779
 954717 H
003390 H
Cy = 0
957AA7
Tabel 8. Pengurangan Bilangan Biner
Yang dikurangi
Pengurang
Jawab
Pemeriksaan
68347 H
336700 H
0
34CA47
5935AB H
5877FF H
1
01BDAC
049677 H
F65B79 H
1
0E3AFE
D.    Analisa Data
Tabel 9. Listing Program
ADDRESS
OBJECT CODE
Bahasa Assembly
KETERANGAN
18 00
AF
XOR A

18 01
06
LD B, 3
Memuat (load) register B
18 02
03

18 03
DD
LD A, (IX)
Memuat (load) register B
18 04
7E
ADC A, (IY)
Menjumlahkan A
18 05
00
LD (IX), A
Load IX
18 06
FD
INC IX
Increment IX
18 07
8E
INX IY
Index IY

ADDRESS

OBJECT CODE
Bahasa Assembly
KETERANGAN

18 08
00



18 09
DD



18 0A
77



18 0B
00



18 0C
DD



18 0D
23



18 0E
FD



18 0F
23



18 10
10



18 11
F1



18 12
FF



18 13
FF



18 14
FF



18 15
FF
RET
Mengakhiri Program








1.    Penjumlahan Bilangan Biner
ADDRESS
OBJECT CODE

18 00
AF

18 01
Rectangular Callout: Penjumlahan06

18 02
03

18 03
DD

18 04
7E

18 05
00

18 06
FD

18 07
8E


  I       II     III
18 16
 79    00    95
18 17
     IX      ( Yang ditambah)       
 38    95    47                                           
18 18

65     43    17
18 19
   
AB    AB    00
18 1A
     IY         (Penambah)       
CE    12    33
18 1B

DE    36    90

MIKROPROSESSOR D3

PENAMBAHAN DAN PENGURANGAN BNER
A.     Tujuan
1.    Mengetahui dan mengerti bagaimana operasi penambahan dan pengurangan dilaksanakan dalam suatu mikrokomputer
2.    Membiasakan pemakai dengan teknik-teknik membuat program.
B.    Teori Dasar
Dalam percobaan ini kita hanya membicarakan penambahan dan pengurangan bilangan bulat (integer) biner tak bertanda. Untuk suatu bilangan biner AND bit, cakupannya adalah (0 - > 2 -1) misalnya, jika AND = 8, cakupannya adalah (0 -> 255); jika AND = 16, cakupannya adalah (0 -> 65535). Jika cakupan bilangan-bilangan itu dinyatakan dalam digit-digit Heksadesimal, cakupannya adalah (0 -> FFH) dan (0 -> FFFFH) dan seterusnya. Jika operasi penjumlahan lebih besar dari pada nilai maksimum yang dapat dinyatakan dalam AND bit, dihasilkan Carry, carry flag di-set. Dalam operasi pengurangan, jika bilangan pengurangan lebih besar daripada bilangan yang dikurangi, dihasilkan peminjaman (borrow) dan carry flag di-Set, berarti hasilnya tidak benar.
CONTOH   1  :           Penambahan dan pengurangan bit tunggal
                           Penambahan : 7 FH + ADH = 12 CH
                                                01111111 à 7FH
                                         +)    10101101 ­­Ã  ADH
                                         ----------------------------
                                              100101100 à 12 CH
                          
                                           carry  

                   penggurangan  7FH – ADH        pengurangan ADH-7FH=2 EH
                           01111111                                         10101101
                       -)  10101101                                   -)  01111111
                         111010010                                       000101110
                  Pinjaman                                                 Pinjaman
                  (borrow)                                                   (borrow)
                  Hasil tidak benar (CY = 1)                    Hasil benar (CY = 0)

               CONTOH  2. penambahan dan  pengurangan tiga byte
                Penambahan : 6A7CBDH  +  4B65ACH  = B5E269H
                           6A                    7C                  BD
0
 
1
 
0
 
                           4B                   65                    AC
0
 
0
 
0
 
                            +                     +                      +         ← CARRY
                                   B5                 E2                  69
                              ↑
                      CARRY          CARRY          CARRY
              Pengurangan : 854372H – 69ACBFH =
                           85                     43                   72
                         -69                   -AC                 -BF
0
 
1
 
1
 
                      0  1B                 1 97                 1 B3
1
 
1
 
0
 
                            -                      -                       -          ← Pinjaman (borrow)
                                  1A                 96                    B3
                            ↑
          pinjaman       pinjaman          pinjaman
Pinjaman dari byte berorde paling tinggi adalah 0, jadi hasilnya adalah benar. Dalam pengurangan lebih dari satu byte (Multibyte), benar atau tidaknya hasil yang didapat tergantung dari pinjaman pada byte yang berorde  paling tinggi. Jika pinjaman = 1, hasilnya tidak benar.
Susunan Data Yang Tersimpan Dalam Memory:
Penyimpanan data multi byte dalam memory adalah sebagai berikut : byte yang berorde paling rendah disimpan dalam address yang paling rendah, byte yang berorde paling tinggi disimpan dalam address yang paling tinggi pula. Addres data multi byte biasanya dinyatakan dengan address yang l paling rendah. Misalnya, bilangan 7325 H disimpan dalam memory address A sebagai berikut :
73
 
25
 
Address A               ← byte berorde rendah
        A + 1                ← byte berorde tinggi
Jika address awal dari empat buah bilangan tiga byte yang tersimpan di memory adalah A, data dan address –addressnya sebagai berikut :






Address
A
56





7C

987C56H



98




A + 3
43





69

AD6943H



AD




A + 6
BC





O1

2501BCH



25




A + 9
78





95

439578H



43




A + 12
21





96

…….







Merancang Program-Program Penambahan Dan Pengurangan:
Data yang dipakai pada operasi penambahan/ pengurangan disimpan dalam memory menurut metode diatas. Add­ress awal dari bilangan yang ditambah/dikurangi disimpan dalam register indeks IX. Address awal dari bilangan penambahan / pengurang disimpan dalam register index IY .Data  tentang jumlah biyte  disimpan dalam register B .Pertama tama, nolkan carry flag dan  isikan bilangan yang akan ditambah/dikurangi keaccumulator. Kemudian, pergunakan instruksi intruksi mode adressing indeks ADC untuk operasi operasi pengurangan /penambahan .Hasilnya disimpan dalam  address asal bilangan  yang ditambah / dikurangi. Akhirnya, periksa  carry flag untuk menentukan apakah hasilnya benar.satu-satunya perbedaan antara program penambahan/ pengurangan adalah bahwa instruksi ADC digunakan untuk operasi penambahan, sedangkan instruksi SBC digunakan untuk operasi pengurangan. Berikut ini adalah flowchart dan program operasi-operasi penambahan dan pengurangan yang dapat dipakai sebagai pembandingan.
  1. *** CONTOH PROGRAM GMS – 1 ***
  2. PENAMBAHAN 3 BYTE (BILANGAN BULAT TAK BERTANDA)
  3. INTPUT          : ADDRESS BILANGAN YANG DITAMBAH PADA IX,
                                ADDRESS BILANGAN YANG DITAMBAH PADA IY, 
  1. OUTPUT        : JUMLAH PADA ADDRESS BILANGAN YANG DITAMBAH
  2. ADD3             : XOR             A                     ; NOL – KAN CARRY FLAG
  LD                 B,3                  ; JUMLAH BYTE PADA B
  1. ADDLP          : LD                 A,(IX)
  ADC             A,(IY)
  LD                 (IX),A
  INC               IX
  INC               IY
  DJNZ                        ADDLP
  RET
Teknik Program :
Dari contoh-contoh diatas (contoh 1 dan 2), kita dapat melihat bahwa operasi penambahan/pengurangan multi byte dapat dilakukan dengan cara mengulangi operasi penambahan/ pengurangan byte tunggal, yaitu dengan operasi ‘loop’ penambahan/pengurangan byte tunggal. Pada program diatas, register B dipakai sebagai penghitung loop. Jika jumlah byte adalah 4, bilangan tersebut (4) pertama-tama harus diisikan ke B. setiap selesai satu operasi loop, register B kikurangi dengan 1 operasi loop berakhir jika B sama dengan 0. instruksi DJNZ dipakai untuk operasi loncat bersyarat. Bila B sama dengan 0, program tidak lagi melaksanakan operasi ‘jump’. Karena insstruksi – instruksi ADC dan SBC digunakan pada program, CY diperlukan pada tiap – tiap operasi penmabahan / pengurangan. Kaerna itu, sebelum operasi penambahan / pengurangan byte pertama flag carry harus 0 (instruksi XOR  A). register –register indeks IX dan IY digunakan sebagai penunjuk address. Dengan penambah IX dan IY dengan satu, CPU dapat mengambil data dari memory diaddress yang dimaksud. (Sumber teori: Jobsheet Praktek Mikroprosesor).
Operasi penambahan untuk bilangan biner bukan desimal, dimana setiap digit desimal dianalogikan dengan 8 bit bilangan biner yang ditulis dalam bentuk 2 angka heksa. Misalnya kita ingin menjumlahkan 3F442A dengan 4DF3.
Simpanan

1

Bilangan Pertama
3F
44
2A
Bilangan Kedua

4D
F3
Bilangan Ketiga
3F
92
1D

Jika teknik diatas diperluas menjadi bentuk yang lebih umum, yaitu penjumlah N-byte bilangan biner, maka bentuk tabelnya akan seperti berikut :
Byte ke-
N
….
3
2
1
Carry
1
….

1

Bilangan Pertama
E3

3F
44
2A
Byte ke-
N
….
3
2
1
Carry
1
….

1

Bilangan Kedua

….
02
4D
F3
Bilangan Ketiga
E4
….
41
92
1D