assembler


BILANGAN

BERBAGAI JENIS BILANGAN
Didalam pemrograman dengan bahasa assembler, bisa digunakan berbagai jenis bilangan. Jenis bilangan yang bisa digunakan, yaitu: Bilangan biner, oktaf, desimal dan hexadesimal. Pemahaman terhadap jenis-jenis bilangan ini adalah penting, karena akan sangat membantu kita dalam pemrograman yang sesungguhnya.
1. BILANGAN BINER
Sebenarnya semua bilangan, data maupun program itu sendiri akan diterjemahkan oleh komputer ke dalam bentuk biner. Jadi pendefinisisan data dengan jenis bilangan apapun(Desimal, oktaf dan hexadesimal) akan selalu diterjemahkan oleh komputer ke dalam bentuk biner.
Bilangan biner adalah bilangan yang hanya terdiri atas 2 kemungkinan(Berbasis dua), yaitu 0 dan 1. Karena berbasis 2, maka pengkorversian ke dalam bentuk desimal adalah dengan mengalikan suku ke-N dengan 2N. Contohnya: bilangan biner 01112 = (0 X 23) + (1 X 22) + (1 X 21) + (1 X 20) = 710.
2. BILANGAN DESIMAL
Tentunya jenis bilangan ini sudah tidak asing lagi bagi kita semua. Bilangan Desimal adalah jenis bilangan yang paling banyak dipakai dalam kehidupan sehari-hari, sehingga kebanyakan orang sudah akrab dengannya.
Bilangan desimal adalah bilangan yang terdiri atas 10 buah angka(Berbasis 10), yaitu angka 0-9. Dengan basis sepuluh ini maka suatu angka dapat dijabarkan dengan perpangkatan sepuluh. Misalkan pada angka 12310 = (1 X 102) + (2 X 101) + (1 X 100).
3. BILANGAN OKTAL
Bilangan oktal adalah bilangan dengan basis 8, artinya angka yang dipakai hanyalah antara 0-7. Sama halnya dengan jenis bilangan yang lain, suatu bilangan oktal dapat dikonversikan dalam bentuk desimal dengan mengalikan suku ke-N dengan 8N. Contohnya bilangan 128 = (1 X 81) + (2 X 80) = 1010.
5
4. BILANGAN HEXADESIMAL
Bilangan hexadesimal merupakan bilangan yang berbasis 16. Dengan angka yang digunakan berupa:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Dalam pemrograman assembler, jenis bilangan ini boleh dikatakan yang paling banyak digunakan. Hal ini dikarenakan mudahnya pengkonversian bilangan ini dengan bilangan yang lain, terutama dengan bilangan biner dan desimal. Karena berbasis 16, maka 1 angka pada hexadesimal akan menggunakan 4 bit.

M E M O R I

Memori dengan komputer memiliki hubungan yang tak dapat dipisahkan, karena setiap komputer memerlukan memori sebagai tempat kerjanya. Memori ini dapat berfungsi untuk memuat program dan juga sebagai tempat untuk menampung hasil proses.
Yang perlu kita perhatikan bahwa memori untuk menyimpan program maupun hasil dari pekerjaan bersifat volatile yang berarti bahwa data yang disimpan cuma sebatas adanya aliran listrik. Jadi bila listrik mati maka hilang pulalah semua data yang ada di dalamnya. Hal ini mengakibatkan diperlukannya media penyimpan kedua yang biasanya berupa disket maupun hard disk.
2.1. Microprocessor
Pada IBM-PC terdapat suatu bagian penting yang disebut microprocessor atau yang sering disebut processor saja. Processor ini berfungsi untuk menangani keseluruhan dari kerja komputer kita. Pada processor inilah segala hal yang berhubungan dengan kerja komputer diatur dan dibagi prioritasnya dengan baik agar tidak terjadi kesalahan yang kemudian akan menyebabkan kacaunya informasi yang diperoleh.
Lama kelamaan tugas komputer tentu saja makin bertambah baik dari segi kuantitas maupun kerumitannya. Sejalan dengan itu processor juga makin dikembangkan. Processor yang baru sebenarnya hanyalah perbaikan dan pengembangan dari yang versi lama sehingga semua instruksi yang berlaku di processor lama dapat pula dikerjakan oleh yang baru dengan tentu saja beberapa keunggulan.
Adapun processor yang kini banyak beredar di pasaran :
– 8088 & 8086 :
Ini merupakan processor IBM-PC yang pertama sekali atau yang sering disebut XT. Processor 8088 menggunakan jalur bus data 8 bit sedangkan 8086 menggunakan 16 bit. Perbedaan jalur bus ini menyebabkan perbedaan jumlah data yang dikirim pada satu saat dan secara langsung mengakibatkan speed 8086 berada di atas 8088. Baik 8088 maupun 8086 mampu mengalamatkan memori hingga 1 MB.
– 80286 :
Versi pengembangan dari 8086. Pada 80286 ini beberapa instruksi baru ditambahkan. Selain itu dengan jalur bus yang sama dengan 8086, 80286 dirancang mempunyai speed di atas 8086. Selain itu 80286 dapat bekerja pada
mode yaitu mode real dan protected.
Mode real pada 80286 dapat beroperasi sama seperti 8088 dan 8086 hanya terdapat perbedaan dalam hal speed. Mode real ini dimaksudkan agar semua software yang dapat dioperasikan pada 8088/8086 dapat pula dioperasikan dengan baik di 80286. Pada mode protected 80286 mampu mengalamatkan sampai 16 MB memori.
– 80386 :
Processor 80386 merupakan sesuatu yang sangat baru dibanding 80286 sebab bus data yang digunakan di sini sudah 32 bit sehingga speednya juga jauh di atas 80286. Selain itu pada 80386 ditambahkan pula sebuah mode pemrograman baru yaitu mode virtual. Pada mode virtual ini 80386 mampu mengalamatkan sampai 4 GB memori. Sama seperti 80286, mode real dimaksudkan untuk kompatibilitas
dengan 8088/8086 dan mode protected untuk menjaga kompatibilitas dengan 80286.
2.2. Organisasi Memori Pada PC
Memori yang ada pada komputer perlu diatur sedemikian rupa sehingga mudah dalam pengaksesannya. Oleh sebab itu dikembangkanlah suatu metode yang efektif dalam pengorganisasiannya. Pada bagian ini akan dibahas mengenai pengorganisasian memori ini.
2.3. Pembagian Memori
Memori komputer terbagi atas 16 blok dengan fungsi-fungsi khusus yang sebagian besar adalah sebagai RAM (Random Access Memory) yang berfungsi sebagai penyimpan bagi hasil pengolahan pada komputer itu sendiri.
—————————————————
block fungsi
—————————————————
0 RAM
1 RAM
2 RAM
3 RAM
4 RAM
5 RAM
6 RAM
7 RAM
8 RAM
9 RAM
A EXTENDED VIDEO MEMORI
B EXTENDED VIDEO MEMORY
C PERLUASAN ROM
D FUNGSI LAIN
E FUNGSI LAIN
F BIOS & BASIC
—————————————————
2.4. Pengalamatan Memori Dengan Segment Offset
Sudah kita bahas bersama bahwa baik 8086 maupun mode real 80286 dapat mengalamatkan sampai 1 MB memori. Tetapi sebenarnya baik 8086 maupun 80286 adalah procesor 16 bit. Banyaknya memori yang dapat dicatat atau dialamatkan oleh procesor 16 bit adalah maksimal 216 byte (=64 KB). Jadi bagaimana 8086 dan mode real 80286 mampu mengalamatkan sampai 1 MB memori ?.
Hal ini dapat dimungkinkan dengan adanya pengalamatan yang menggunakan sistem 20 bit walaupun sebenarnya procesor itu hanya 16 bit. Dengan cara ini dapat dialamatkan 220 byte (=1 MB) memori.
Tetapi masih tetap ada satu kendala dalam pengalamatan 20 bit ini. Yaitu bahwa sesuai dengan tipenya procesor ini hanya mampu mengakses 16 bit data pada satu kali akses time. Sebagai
pemecahannya dikembangkanlah suatu metode pengalamatan 20 bit
yang dimasukkan ke dalam format 16 bit.
Pada metode pengalamatan ini baik 8086 maupun mode real
80286 membagi ruang memori ke dalam segmen-segmen di mana besar 1 segmen adalah 64 KB (=216 byte). Jadi pada segmen 0000h(Tanda “h” menunjukkan hexadesimal) terdapat 64 KB data, demikian pula dengan segmen 0001h dan seterusnya.
Sekarang bagaimana caranya agar setiap data yang tersimpan dalam satu segmen yang besarnya 64 KB itu dapat diakses secara individual. Cara yang dikembangkan adalah dengan membagi-bagi setiap segmen menjadi bagian-bagian yang disebut offset. Dalam satu segmen terdapat 216 offset yang diberi nomor dari 0000h sampai FFFFh. Nomor offset selalu diukur relatif dari awal suatu segmen.
Sekarang kita lihat bagaimana sebenarnya letak suatu segmen dalam memori komputer kita. Segmen 0000h berawal dari lokasi memori 0 hingga 65535 ( 64 KB ). Segmen 0001h berawal dari lokasi memori 16 (0010h) hingga 65551 (65535 + 16). Segmen 0002h berawal dari lokasi 32 hingga 65567. Demikian seterusnya. Kita lihat bahwa sistem penempatan segmen semacam ini akan menyebabkan terjadinya overlapping (tumpang-tindih) di mana lokasi offset 0010h bagi segmen 0000h akan merupakan offset 0000h bagi segmen 0001h. Demikian pula offset 0011h bagi segmen 0000h akan merupakan offset 0001h bagi segmen 0001h.

2.5. Konversi Alamat
Alamat yang menggunakan sistem segmen:offset ini disebut sebagai alamat relatif karena sifat offset yang relatif terhadap segmen. Sedangkan alamat memori yang sebenarnya disebut alamat absolut. Berikut kita lihat cara pengkonversian alamat relatif ke absolut.
Pengkonversian dapat dilakukan dengan menggeser nilai segmen 4 bit ke kiri dan kemudian dijumlahkan dengan nilai offset. Atau yang lebih sederhana adalah dengan mengalikan nilai segmen dengan 24 (=10h) dan kemudian dijumlahkan dengan nilai offset. Cara ini dikembangkan dari besarnya selisih segmen yang satu dengan yang berikutnya yang sebesar 16 bit (=10h).
Alamat relatif : 1357h:2468h 1356h:2478h
13570 13560
2468 2478
——- ——-
Alamat absolut : 159D8h 159D8h
Pada kedua contoh di atas terlihat jelas alamat relatif 1357h:2468h sebenarnya menunjukkan lokasi yang sama dalam memori dengan alamat relatif 1356h:2478h yang disebut overlapping.
Alamat yang overlapping ini menyebabkan sebuah alamat absolute dapat dinyatakan dengan alamat segmen:offset yang bervariasi sebanyak 2 pangkat 12 atau sebanyak 4096 variasi.
Variasi untuk alamat absolute :
0 – 15 dapat dinyatakan dengan 1 variasi
16 – 31 dapat dinyatakan dengan 2 variasi
32 – 48 dapat dinyatakan dengan 3 variasi
:
:
65520 keatas dapat dinyatakan dengan 4096 variasi.

About herman
workhard and be nice to people

2 Responses to assembler

  1. msihabudin says:

    Blm mudeng

  2. xusut says:

    assalamualaikum,,,,

    ……….,,.,..><

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: