Download - SISTEM BILANGAN DAN REGISTER
SISTEM BILANGAN SISTEM BILANGAN DAN REGISTERDAN REGISTER
Minggu_1Minggu_1
SISTEM BILANGAN DAN SISTEM BILANGAN DAN REGISTERREGISTER
TUJUAN TUJUAN Mahasiswa mengenal sistem bilangan.Mahasiswa mengenal sistem bilangan. Mahasiswa mampu mengkonversikan sistem Mahasiswa mampu mengkonversikan sistem
bilangan.bilangan. Menampilkan dan membaca isi register.Menampilkan dan membaca isi register. Mengetahui fungsi-fungsi register sebagai Mengetahui fungsi-fungsi register sebagai
pengalamat data.pengalamat data.
JENIS BILANGAN JENIS BILANGAN Didalam pemrograman dengan bahasa Didalam pemrograman dengan bahasa
assembler, bisa digunakan berbagai jenis assembler, bisa digunakan berbagai jenis bilangan. bilangan.
Jenis bilangan yang bisa digunakan, yaitu: Jenis bilangan yang bisa digunakan, yaitu: Bilangan biner, oktal, desimal dan Bilangan biner, oktal, desimal dan hexadesimal. hexadesimal.
Pemahaman terhadap jenis-jenis bilangan Pemahaman terhadap jenis-jenis bilangan ini adalah penting, karena akan sangat ini adalah penting, karena akan sangat membantu kita dalam pemrograman yang membantu kita dalam pemrograman yang sesungguhnya. sesungguhnya.
BILANGAN BINERBILANGAN BINER
Bilangan biner adalah bilangan yang Bilangan biner adalah bilangan yang hanya terdiri atas 2 kemungkinan hanya terdiri atas 2 kemungkinan (Berbasis dua), yaitu 0 dan 1.(Berbasis dua), yaitu 0 dan 1.
Karena berbasis 2, maka pengkorversian Karena berbasis 2, maka pengkorversian ke dalam bentuk desimal adalah dengan ke dalam bentuk desimal adalah dengan mengalikan suku ke-N dengan 2N.mengalikan suku ke-N dengan 2N.
Contohnya: bilangan biner 01112 = (0 X Contohnya: bilangan biner 01112 = (0 X 23) + (1 X 22) + (1 X 21) + (1 X 20) = 710. 23) + (1 X 22) + (1 X 21) + (1 X 20) = 710.
BILANGAN DESIMALBILANGAN DESIMAL
Bilangan desimal adalah bilangan yang Bilangan desimal adalah bilangan yang terdiri atas 10 buah angka (Berbasis 10), terdiri atas 10 buah angka (Berbasis 10), yaitu angka 0-9. yaitu angka 0-9.
Dengan basis sepuluh ini maka suatu Dengan basis sepuluh ini maka suatu angka dapat dijabarkan dengan angka dapat dijabarkan dengan perpangkatan sepuluh. perpangkatan sepuluh.
Misalkan pada angka 12310 = (1 X 102) + Misalkan pada angka 12310 = (1 X 102) + (2 X 101) + (1 X 100). (2 X 101) + (1 X 100).
BILANGAN OKTAL BILANGAN OKTAL Bilangan oktal adalah bilangan dengan Bilangan oktal adalah bilangan dengan
basis 8, artinya angka yang dipakai basis 8, artinya angka yang dipakai hanyalah antara 0-7. hanyalah antara 0-7.
Sama halnya dengan jenis bilangan yang Sama halnya dengan jenis bilangan yang lain, suatu bilangan oktal dapat lain, suatu bilangan oktal dapat dikonversikan dalam bentuk desimal dikonversikan dalam bentuk desimal dengan mengalikan suku ke-N dengan 8 dengan mengalikan suku ke-N dengan 8 N. N.
Contohnya bilangan 128 = (1 X 81) + (2 X Contohnya bilangan 128 = (1 X 81) + (2 X 80) = 1010. 80) = 1010.
BILANGAN HEXADESIMALBILANGAN HEXADESIMAL
Bilangan hexadesimal adalah bilangan Bilangan hexadesimal adalah bilangan yang berbasis 16. yang berbasis 16.
Dengan angka yang digunakan berupa : Dengan angka yang digunakan berupa : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Bilangan hexadesimal mudah dikonversi Bilangan hexadesimal mudah dikonversi dengan bilangan yang lain, terutama dengan bilangan yang lain, terutama dengan bilangan biner dan desimal.dengan bilangan biner dan desimal.
Karena berbasis 16, maka 1 angka pada Karena berbasis 16, maka 1 angka pada hexadesimal akan menggunakan 4 bit. hexadesimal akan menggunakan 4 bit.
BILANGAN BERTANDA DAN TIDAKBILANGAN BERTANDA DAN TIDAK
Pada assembler bilangan-bilangan dibedakan Pada assembler bilangan-bilangan dibedakan lagi menjadi 2, yaitu bilangan bertanda dan lagi menjadi 2, yaitu bilangan bertanda dan tidak. tidak.
Bilangan bertanda adalah bilangan yang Bilangan bertanda adalah bilangan yang mempunyai arti plus(+) dan minus(-), misalkan mempunyai arti plus(+) dan minus(-), misalkan angka 17 dan -17. angka 17 dan -17.
Pada bilangan tidak bertanda, angka Pada bilangan tidak bertanda, angka negatif(yang mengandung tanda '-') tidaklah negatif(yang mengandung tanda '-') tidaklah dikenal. dikenal.
Jadi angka -17 tidak akan akan dikenali sebagai Jadi angka -17 tidak akan akan dikenali sebagai angka -17, tetapi sebagai angka lain. angka -17, tetapi sebagai angka lain.
Konversi Antar Sistem BilanganKonversi Antar Sistem Bilangan
Biner
Desimal
HexadesimalOktal
Struktur Register Struktur Register dandan
Metode PengalamatanMetode PengalamatanMemoriMemori
PENGERTIAN REGISTERPENGERTIAN REGISTER Register merupakan sebagian memori dari Register merupakan sebagian memori dari
mikroprosesor yang dapat diakses dengan mikroprosesor yang dapat diakses dengan kecepatan yang sangat tinggi.kecepatan yang sangat tinggi.
Register adalah sebagian kecil memory Register adalah sebagian kecil memory komputer yang dipakai untuk tempat komputer yang dipakai untuk tempat penampungan data. penampungan data.
Data yang terdapat dalam register dapat Data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan diproses dalam berbagai operasi dengan melihat berapa besar kemampuan register melihat berapa besar kemampuan register tersebut (8 atau 16 bit).tersebut (8 atau 16 bit).
PENGERTIAN REGISTER PENGERTIAN REGISTER Dalam melakukan pekerjaannya Dalam melakukan pekerjaannya
mikroprosesor selalu menggunakan mikroprosesor selalu menggunakan register-register sebagai perantaranya.register-register sebagai perantaranya.
Jadi register dapat diibaratkan sebagai Jadi register dapat diibaratkan sebagai kaki dan tangan dari mikroprosesor.kaki dan tangan dari mikroprosesor.
Penggolongan Register Penggolongan Register
General Purpose RegisterGeneral Purpose Register Segment RegisterSegment Register Pointer RegisterPointer Register Index RegisterIndex Register Flag RegisterFlag Register
General Purpose RegisterGeneral Purpose Register
Accumulator Register AX (16 BIT)Accumulator Register AX (16 BIT)AX = AH (8 BIT) + AL (8 BIT)AX = AH (8 BIT) + AL (8 BIT)
Base Register BX (16 BIT)Base Register BX (16 BIT)BX = BH (8 BIT) + BL (8 BIT)BX = BH (8 BIT) + BL (8 BIT)
Counter Register CX (16 BIT)Counter Register CX (16 BIT)CX = CH (8 BIT) + CL (8 BIT)CX = CH (8 BIT) + CL (8 BIT)
Data Register DX (16 BIT)Data Register DX (16 BIT)DX = DH (8BIT) + DL (8 BIT)DX = DH (8BIT) + DL (8 BIT)
Kelompok Register Data:Kelompok Register Data:
Terdiri dari 4 buah register 16 bit yaitu: AX, Terdiri dari 4 buah register 16 bit yaitu: AX, BX, CX dan DX.BX, CX dan DX.
AX AccumulatorAX Accumulator
BX Base RegisterBX Base Register
CX Counter RegisterCX Counter Register
DX DX Data RegisterData Register
AH AL
BH BL
CH CL
DH DL
Register AX merupakan register aritmatik, Register AX merupakan register aritmatik, karena register ini selalu dipakai dalam karena register ini selalu dipakai dalam operasi penambahan, pengurangan, operasi penambahan, pengurangan, perkalian dan pembagian.perkalian dan pembagian.
Register BX adalah salah satu dari dua Register BX adalah salah satu dari dua register base Addressing Mode yang register base Addressing Mode yang dapat mengambil atau menulis langsung dapat mengambil atau menulis langsung dari/ke memori.dari/ke memori.
Register CX merupakan suatu counter Register CX merupakan suatu counter untuk meletakkan jumlah lompatan pada untuk meletakkan jumlah lompatan pada Loop yang anda lakukan.Loop yang anda lakukan.
Register DX mempunyai tiga tugas, yaitu:Register DX mempunyai tiga tugas, yaitu:• Membantu AX dalam proses perkalian dan Membantu AX dalam proses perkalian dan
pembagian, terutama perkalian dan pembagian, terutama perkalian dan pembagian 16 bit.pembagian 16 bit.
• DX merupakan register offset dari DSDX merupakan register offset dari DS• DX bertugas menunjukkan nomor port DX bertugas menunjukkan nomor port
pada operasi portpada operasi port
Segment RegisterSegment Register
Code Segment Register CS (16 bit)Code Segment Register CS (16 bit) Data Segment Register DS (16 bit)Data Segment Register DS (16 bit) Stack Segment Register SS (16 bit)Stack Segment Register SS (16 bit) Extra Segment Register ES (16 bit)Extra Segment Register ES (16 bit)
Kelompok Register SegmentKelompok Register Segment
Terdiri dari 4 buah register 16 bit, Terdiri dari 4 buah register 16 bit, yaitu : ES,CS,DS dan SS.yaitu : ES,CS,DS dan SS.
ExtraExtra Segment Segment
CodeCode Segment Segment
DataData Segment Segment
StackStack Segment Segment
ES
CS
DS
SS
Tugas register CS yang penting adalah Tugas register CS yang penting adalah menunjukkan segment program berada. menunjukkan segment program berada. Pasangan register ini adalah Pasangan register ini adalah register IPregister IP..
Tugas register DS dan SS adalah Tugas register DS dan SS adalah menunjukkan segmen dari segment data menunjukkan segmen dari segment data dan segment stack. Pasangan dari dan segment stack. Pasangan dari register DS adalah register DS adalah DXDX dan register SS dan register SS adalahadalah SP.SP.
Register Register ESES tidak mempunyai tugas, tidak mempunyai tugas, namun berguna untuk pemrograman pada namun berguna untuk pemrograman pada saat melakukan operasi ke segment lain.saat melakukan operasi ke segment lain.
Kelompok Register Index dan Kelompok Register Index dan PointerPointer
Terdiri dari 2 buah register index dan Terdiri dari 2 buah register index dan 3 buah register pointer.3 buah register pointer.
Stack PointerStack Pointer
Base PointerBase Pointer
Source IndexSource Index
Destination IndexDestination Index
Instruction Pointer Instruction Pointer
SP
BP
SI
DI
IP
Pasangan register IP adalah Pasangan register IP adalah register CSregister CS yang merupakan register terpenting untuk yang merupakan register terpenting untuk menunjukkan baris perintah programmenunjukkan baris perintah program..
Pasangan register SP adalah Pasangan register SP adalah register SSregister SS yang digunakan untuk yang digunakan untuk operasi stackoperasi stack. . Pada saat program pertama dijalankan Pada saat program pertama dijalankan register ini akan menunjuk pada byte register ini akan menunjuk pada byte terakhir stack.terakhir stack.
Register BP mempunyai fungsi yang sama Register BP mempunyai fungsi yang sama dengan register BX yaitu dapat menulis dengan register BX yaitu dapat menulis dan membaca ke atau dari memori secara dan membaca ke atau dari memori secara langsung. langsung.
Index Register terdiri dari dua register Index Register terdiri dari dua register yaitu register DI dan SI, dimana kedua yaitu register DI dan SI, dimana kedua register ini merupakan register yang register ini merupakan register yang dipakai untuk melakukan Operasi String. dipakai untuk melakukan Operasi String. Kedua register ini sering digunakan untuk Kedua register ini sering digunakan untuk menulis dan membaca ke atau dari menulis dan membaca ke atau dari memori seperti BX dan BP.memori seperti BX dan BP.
Flag RegisterFlag Register Register 16 bit dengan komposisi sbRegister 16 bit dengan komposisi sbbb : :
X X X X OF DF IF TF SF ZF X AF X PF X CF
FLAG NILAI BIT 1 NILAI BIT 0
CF CARRY FLAG CARRY NOT CARRY
PF PARITY FLAG EVEN PARITY ODD PARITY
AF AUXILIARY FLAG NOT CARRY CARRY
ZF ZERO FLAG ZERO NOT ZERO
SF SIGN FLAG NEGATIF POSITIF
TF TRAP FLAG TRAP NOT TRAP
IF INTERUPT FLAG ENABLE DISABLE
DF DIRECTION FLAG DECREMENT INCREAMENT
OF OVERFLOW FLAG OVERFLOW NOT OVERFLOW
Flag operasi aritmatika dan logika : CF, PF, AF, ZF, SF.
Flag operasi khusus kerja mikroprosesor : IF, DF, OF, TF.
Model PengalamatanModel Pengalamatan
Model pengalamatan adalah cara Model pengalamatan adalah cara penulisan instruksi untuk transfer data, penulisan instruksi untuk transfer data, dari atau kedalam mikroprosessor.dari atau kedalam mikroprosessor.
Ada beberapa model pengalamatan :Ada beberapa model pengalamatan : Model Pengalamatan Immediate.Model Pengalamatan Immediate. Model Pengalamatan Register.Model Pengalamatan Register. Model Pengalamatan Direct.Model Pengalamatan Direct. Model Pengalamatan Indirect.Model Pengalamatan Indirect. Model Pengalamatan String.Model Pengalamatan String. Model Pengalamatan I/O.Model Pengalamatan I/O.
Model Pengalamatan Model Pengalamatan ImmediateImmediate
Instruksi untuk trasnfer data ke memory Instruksi untuk trasnfer data ke memory atau register.atau register. Contoh :Contoh :
MovMov AL,80HAL,80H MovMov BL,72HBL,72H MovMov [1234H],25H[1234H],25H MovMov AX,1234HAX,1234H MovMov DX,0300HDX,0300H
Model Pengalamatan Model Pengalamatan RegisterRegister
Instruksi untuk trasnfer data antar Instruksi untuk trasnfer data antar register.register. Contoh :Contoh :
MovMov AL,BLAL,BL MovMov BH,ALBH,AL MovMov CH,CLCH,CL MovMov AX,BXAX,BX MovMov DX,CXDX,CX
Model Pengalamatan DirectModel Pengalamatan Direct
Instruksi untuk trasnfer data dari atau Instruksi untuk trasnfer data dari atau ke memory dimana alamat memory ke memory dimana alamat memory dituliskan langsung.dituliskan langsung. Contoh :Contoh :
MovMov [1234H],80H[1234H],80H MovMov BL,[3472H]BL,[3472H] MovMov [1234H],AX[1234H],AX MovMov AX,[1234H]AX,[1234H]
Model Pengalamatan IndirectModel Pengalamatan Indirect
Instruksi untuk trasnfer data dari atau Instruksi untuk trasnfer data dari atau ke memory dimana alamat memory ke memory dimana alamat memory ditunjukkan oleh isi dari sebuah ditunjukkan oleh isi dari sebuah register.register. Contoh :Contoh :
MovMov [[DIDI],80H],80H MovMov BL,[BL,[BPBP]] MovMov [[DI+1DI+1],AX],AX MovMov AX,[AX,[SI+BXSI+BX]]
Model Pengalamatan StringModel Pengalamatan String
Dalam sistem komputer string adalah Dalam sistem komputer string adalah sebuah urutan penyimpanan dari byte sebuah urutan penyimpanan dari byte atau word dalam memory.atau word dalam memory.
Prosessor menyimpan text sepanjang Prosessor menyimpan text sepanjang string dari karakter ASCII.string dari karakter ASCII. Contoh :Contoh :
MOVSBMOVSB
Model Pengalamatan I/OModel Pengalamatan I/O
Ada 2 model pengalamatan I/O, yaitu model Ada 2 model pengalamatan I/O, yaitu model pengalamatan I/O direct dan indirect.pengalamatan I/O direct dan indirect.
Model Pengalamatan I/O direct digunakan Model Pengalamatan I/O direct digunakan pada I/O yang mempunyai alamat mulai pada I/O yang mempunyai alamat mulai 00H s/d FFH.00H s/d FFH.
Model Pengalamatan I/O indirect digunakan Model Pengalamatan I/O indirect digunakan pada I/O yang mempunyai alamat mulai pada I/O yang mempunyai alamat mulai 0000H s/d FFFFH. Sebagai tempat untuk 0000H s/d FFFFH. Sebagai tempat untuk menyimpan alamat port adalah register DX.menyimpan alamat port adalah register DX.
Contoh :Contoh : OutOut 7FH,AL7FH,AL ;Out data ke 7FH;Out data ke 7FH InIn AL,8FHAL,8FH ;In data dari 8FH;In data dari 8FH
MovMov DX,0303HDX,0303H MovMov AL,80HAL,80H Out Out DX,ALDX,AL
MovMov DX,0302HDX,0302H In In AL,DXAL,DX
Arsitektur Processor 8086/8088Arsitektur Processor 8086/8088
Kapasitas memori = 1 MB.Kapasitas memori = 1 MB.Terdapat 1 MB (2Terdapat 1 MB (22020) = 1024 sel memori 8 bit, dengan ) = 1024 sel memori 8 bit, dengan
alamat 0 s/d 2alamat 0 s/d 22020- 1 atau 00000 H s/d FFFFF H- 1 atau 00000 H s/d FFFFF H
Register-register 16 bit hanya mampu Register-register 16 bit hanya mampu mengalamati memori dari 0 s/d (2mengalamati memori dari 0 s/d (21616 – 1). – 1).
Metode Pengalamatan MemoriMetode Pengalamatan Memori
Metode Pengalamatan dengan Dua Register Metode Pengalamatan dengan Dua Register / Pengalamatan Relatif (untuk mendapatkan / Pengalamatan Relatif (untuk mendapatkan pengalamatan 2pengalamatan 22020):):
Segment RegisterSegment Register Offset RegisterOffset Register
Contoh Pengalamatan RelatifContoh Pengalamatan Relatif
Segment Offset
A123 : 009A H
Komposisi Bit :1010 0001 0010 0011 0000
0000 1001 1001 1010
1010 0001 1011 1100 1010 = A1BCA H+
Alamat Mutlak (physical address)
Pada arsitektur 8086/88 terdapat peta memori sebagai berikut :Pada arsitektur 8086/88 terdapat peta memori sebagai berikut :Alamat Fisik Keterangan
00000 – 0007F BIOS INTERUPT VEKTOR
00080 – 003FF DOS INTERUPT VEKTOR
00400 – 004FF BIOS DATA AREA
00500 – 005FF DOS & BASIC DATA AREA
00600 – 9CFFF RAM WORKING SPACE
A0000 – A3FFF CADANGAN
A4000 – AFFFF MONOCHROME ADAPTER
B0000 – B1000 VIDEO BUFFER
B1001 – B7FFF COLOR/GRAPHICS ADAPTER
B8000 – BBFFF
BC000 – BFFFF
C0000 – C7FFF EKSPANSI MEMORY
C8000 – F3FFF HARDDISK
CC000 – F3FFF CADANGAN
F4000 – F5FFF USER ROM (8 K)
F6000 – FDFFF ROM BASIC (32 K)
FE000 – FFFFF ROM BIOS (8 K)
Organisasi MemoriOrganisasi Memori