Pemrograman Dengan Bahasa Assembly Edisi Listing program SV sengaja tidak disertakan karena...

download Pemrograman Dengan Bahasa Assembly Edisi Listing program SV sengaja tidak disertakan karena diharapkan

of 269

  • date post

    11-Mar-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Pemrograman Dengan Bahasa Assembly Edisi Listing program SV sengaja tidak disertakan karena...

  • Pemrograman Dengan

    Bahasa Assembly Edisi Online Versi 1.0

    Penulis : S’to

    Editor : Arif Nopi

    1

  • KATA PENGANTAR

    Walaupun bahasa tingkat tinggi terus berkembang dengan segala fasilitas

    dan kemudahannya, peranan bahasa pemrograman tingkat rendah tetap tidak dapat

    digantikan. Bahasa assembly mempunyai keunggulan yang tidak mungkin diikuti

    oleh bahasa tingkat apapun dalam hal kecepatan, ukuran file yang kecil serta

    kemudahan dalam manipulasi sistem komputer.

    Buku ini disusun berdasarkan pengalaman dari penulis sendiri dalam

    menggunakan bahasa assembler. Oleh karenanya buku ini disusun dengan harapan

    bagi anda yang tidak tahu sedikitpun tentang assembly dapat belajar sehingga

    assembler akan tampak sama mudahnya dengan bahasa tingkat tinggi.

    Setiap penjelasan pada buku ini akan disertai dengan contoh program yang

    sesederhana dan semenarik mungkin agar mudah dimengerti. Selain itu juga

    diberikan TIP-TIP dan TRIK dalam pemrograman !

    EDISI ONLINE Setelah melalui beberapa kali cetakan di PT Gramedia, buku ini tidak mengalami cetakan lanjutan lagi dan mempertimbangkan cukup banyak yang tertarik dengan buku ini, maka saya memutuskan untuk mempublikasikannya secara online dan memberikannya secara gratis sehingga perpanjangan percetakan ke Gramedia tidak akan dilakukan lagi untuk buku ini. Edisi online ini bisa terlaksana berkat partisipasi dari teman kita melalui milist Jasakom Arif Nopi (nophiee@yahoo.com ) yang biasa menggunakan nick Ragila yang telah meluangkan waktunya yang begitu banyak untuk mengedit versi buku online ini. Melalui ini saya ucapkan banyak terima kasih yang tak terhingga atas kesediaannya menjadi sukarelawan demi kemajuan anak-anak bangsa. Anda diijinkan untuk mendistribusikan buku ini secara bebas asalkan tidak merubah sedikitpun isi yang ada di buku edisi online. Untuk mendistribuksikannya ataupun saran dan kritik anda bisa menghubungi penulis melalui email sto@poboxes.com atau sto@jasakom.com S’to 25 Jun 2001 http://www.jasakom.com

    2

    mailto:nophiee@yahoo.com mailto:sto@poboxes.com mailto:sto@jasakom.com

  • DISKET PROGRAM

    Buku ini disertai dengan disket program sehingga memudahkan anda yang

    ingin mencoba program-program didalam buku ini. Semua listing program dalam

    buku ini disimpan pada directory ASM. Listing program telah diuji semua oleh

    penulis dan anda dapat memperoleh hasil jadinya dalam bentuk COM maupun EXE

    pada directory COM.

    Selain itu penulis juga menyadari bahwa bahasa assembler adalah bahasa

    yang rawan. Dengan sedikit kesalahan saja misalkan anda lupa mengakhiri

    program dengan suatu interupsi atau kesalahan dalam pemakaian interupsi,

    komputer akan menjadi "hang". Tentunya akan sangat membosankan bila anda harus

    selalu mem-boot ulang komputer setiap kali menjalankan program anda yang

    ternyata salah.

    Untuk itulah penulis membuat sebuah program yang sangat sederhana dengan

    ukuran file sekecil mungkin untuk membantu anda. Program tersebut bisa anda

    dapatkan pada disket program dengan nama SV.COM. Program SV merupakan sebuah

    program residen (akan anda pelajari pada bab 24) yang akan membelokkan vektor

    interupsi 05h(PrtScr).

    Sebelum anda mulai bereksperimen dengan program-program assembly,

    jalankanlah dahulu program SV.COM dengan cara:

    C:\SV

    Setelah program SV dijalankan maka setiap kali program anda mengalami

    kemacetan anda tinggal menekan tombol PrtScr. Tombol PrtScr akan segera

    memaksa program tersebut segera kembali ke DOS sehingga anda tidak perlu mem-

    Boot ulang komputer anda.

    Program SV dibuat dengan cara sesederhana dan sekecil mungkin (hanya 816

    Byte) sehingga anda tidak perlu khawatir akan kekurangan memory. Listing

    program SV sengaja tidak disertakan karena diharapkan setelah anda membaca bab

    24(tentang residen) anda sudah bisa membuat program semacam ini. Bila anda

    ingin melihat listing dari program SV ini anda bisa menggunakan program

    seperti SR.EXE(khusus untuk melihat listing), DEBUG.EXE atau TD.EXE(Bab 27).

    3

  • UCAPAN TERIMA KASIH

    Atas diselesaikannya buku ini, penulis ingin mengucapkan terima kasih

    kepada Suriyanto, Rudi, Pieter, Harianto, Adi dan Sentosa yang telah

    meminjamkan buku-buku bacaan, Aripin yang telah meminjamkan printer HP, Wandy,

    To-je, Aliang, Aminandar, Petrick, Suwangdi dan Weng yang selalu mendukung,

    serta teman- teman seperjuangan di STMIK BINA NUSANTARA, terutama yang sering

    menandatangani absen saya.

    Diluar itu semua, saya juga sangat berterima kasih kepada Sdr.

    AriSubagijo yang telah banyak membantu, Staf serta pimpinan dari ELEX MEDIA

    KOMPUTINDO.

    Jakarta, 27 November 1994 4

    S’to

    4

  • BAB I BILANGAN

    1.1. 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.1.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.

    1.1.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 10 1) + (1 X 100).

    1.1.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 8 N. Contohnya bilangan 128 = (1 X 81) + (2 X 80) =

    1010.

    5

  • 1.1.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.

    1.2. BILANGAN BERTANDA DAN TIDAK

    Pada assembler bilangan-bilangan dibedakan lagi menjadi 2, yaitu

    bilangan bertanda dan tidak. Bilangan bertanda adalah bilangan yang mempunyai

    arti plus(+) dan minus(-), misalkan angka 17 dan -17. Pada bilangan tidak

    bertanda, angka negatif(yang mengandung tanda '-') tidaklah dikenal. Jadi

    angka -17 tidak akan akan dikenali sebagai angka -17, tetapi sebagai angka

    lain.

    Kapan suatu bilangan perlakukan sebagai bilangan bertanda dan tidak?

    Assembler akan selalu melihat pada Sign Flag, bila pada flag ini bernilai 0,

    maka bilangan akan diperlakukan sebagai bilangan tidak bertanda, sebaliknya

    jika flag ini bernilai 1, maka bilangan akan diperlakukan sebagai bilangan

    bertanda.

    Pada bilangan bertanda bit terakhir (bit ke 16) digunakan sebagai tanda

    plus(+) atau minus(-). Jika pada bit terakhir bernilai 1 artinya bilangan

    tersebut adalah bilangan negatif, sebaliknya jika bit terakhir bernilai 0,

    artinya bilangan tersebut adalah bilangan positif(Gambar 1.1).

    +--------------------------------------------+

    | >>>> Bilangan

  • | 1111 1111 | + 255 | - 1 |

    | 1111 1110 | + 254 | - 2 |

    | 1111 1101 | + 253 | - 3 |

    | 1111 1100 | + 252 | - 4 |

    | 1111 1011 | + 251 | - 5 |

    | 1111 1010 | + 250 | - 6 |

    +------------+---------------+---------------+

    Gambar 1.1. Bilangan Bertanda dan Tidak

    7

  • BAB II 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 ki