Selasa, 13 November 2012

Pemrograman Bahasa Rakitan : Materi 4

Yah... Tugas lagi. Hahaha... Nggak apa-apa dech tugas terus yang penting nilai Makulnya bisa A (Aamiien..). Hehehehehe

Tugas kali ini ane lanjutin aja materi PBR yang sempat tertunda. Maafkan Daku, Pak Dosen. Soalnya baru sempet sekarang. Hehehe. Materi yang ane bagiin kali ini tentang operasi aritmatika. Dimana-mana operasi aritmatika selalu ada. Contohnya di Pasar, di Toko, dan ada juga di bahasa rakitan. Lho koq bahasa rakitan ada aritmatikanya? Nah, ini yang ane mau share kali ini.

Seperti yang ane jelaskan pertama kali, Pemrograman Bahasa Rakitan sebenarnya nggak jauh-jauh ama Rangkaian Digital. Kalo Rangkaian Digital diimplementasikan ke dalam struktur rangkaian elektis fisik, sedangkan Pemrograman Bahasa Rakitan diimplementasikan ke dalam program yang akan memproses jalannya suatu struktur rangkaian.

Nah, karena hubungan itulah bahasa rakitan memiliki operasi aritmatika untuk memproses suatu program. Di dalam bahasa rakitan dikenal hanya dua operasi aritmatika, yaitu Operasi Penambahan dan Operasi Pengurangan.


Operasi Penambahan

Operasi ini digunakan untuk menjumlahkan suatu registry menjadi registry baru yang kita inginkan. Ada beberapa perintah penjumlahan yang bisa kita gunakan yaitu ADD, ADC, dan INC.

ADD adalah suatu perintah yang digunakan untuk menjumlahkan dua registry yaitu registry awal dan tujuan dan hasil penjumlahan tersebut akan dimasukkan ke dalam registry tujuan.

Contoh :
Mov AH,13h  ; mengisi registry AH dengan angka 13h.

Mov AL,7h  ; mengisi registry AL dengan angka 7h.

ADD AH,AL  ; menjumlahkan registry AH dan AL.

Jumlah dari dua registry tersebut adalah 20h. Dan jumlah tersebut akan dimasukkan ke dalam registry AH.

Dalam penggunaan perintah ADD yang harus kita perhatikan adalah registry yang akan kita gunakan. Sebaiknya dua registry (awal dan tujuan) yang digunakan harus memiliki kapasitas yang sama. Seperti registry AH dan AL (8 bit), AX dan BX (16 bit).

ADC adalah suatu perintah penjumlahan yang digunakan sebagai tempat untuk menampung hasil penjumlahan yang lebih kompleks. Perintah ADC ini juga disertai dengan Carry Flag sehingga dapat menjumlahkan perhitungan yang kompleks dengan baik.

Selain Carry Flag (CF), ada juga flag-flag yang terpengaruh oleh perintah ADD dan ADC, antara lain PF,AF,ZF,SF dan OF.

INC adalah suatu perintah penjumlahan suatu registry dengan menambahkan satu bilangan ke dalam registry tujuan. Tujuan dari penggunaan perintah INC ini adalah agar lebih hemat dalam penggunaan memori dibandingkan menggunakan ADD dan ADC (Kalo INC hanya memerlukan memori sebanyak 1 bit sedangkan ADD dan ADC memerlukan 3 bit memori).

Contoh :

Mov AH,65 ; mengisi registry AH dengan angka 65.

INC AH ; menambahkan 1 bilangan ke dalam registry AH.

Hasilnya adalah 66 dan dimasukkan ke dalam registry AH.

Operasi Pengurangan

Operasi ini digunakan untuk mengurangi suatu registry menjadi registry yang diinginkan. Dalam operasi pengurangan ini ada perintah yang bisa digunakan yaitu SUB dan DEC.

SUB adalah suatu perintah yang digunakan untuk mengurangi dua registry dan hasil pengurangan dimasukkan  ke dalam registry tujuan. Konsepnya sama seperti ADD dan ADC namun SUB lebih ke operasi pengurangan.

Contoh :

Mov DL,25 ; mengisi registry DL dengan angka 25.

Mov DH,5 ; mengisi registry DH dengan angka 5.

SUB DL,DH ; mengurangi registry DL dan DH.

Hasil dari pengurangan tersebut adalah 20 dan dimasukkan ke dalam registry DL.

DEC adalah suatu perintah pengurangan suatu registry dengan cara mengurangi satu bilangan ke dalam registry tujuan.

Contoh :

Mov DL,65 ; mengisi registry DL dengan angka 65.

DEC DL ; mengurangi 1 bilangan ke dalam registry DL

Hasilnya adalah 64 dan dimasukkan ke dalam registry DL.

Nah, di akhir posting blog dosen ane. Beliau ngasih tugas seputar operasi aritmatika. Ane disuruh buat kode buat nampilin huruf M tapi registry-nya dimulai dari huruf A. Bingung khan? Nggak usah bingung gan. Ane kasih liat hasilnya.

Udah liat khan hasilnya. Masih bingung kenapa bisa hasilnya seperti ini. Eits, pasti ada yang ngira ane pake kode huruf M biar langsung nampilin huruf yang sama. Salah gan. Ane pake kode huruf A. Ya jadi selisih dari huruf A - M kira-kira 12 huruf. Nah angka 12 ini yang entar ane gunain.
Ini dia kode yang udah dibuat oleh ane.


.model small
.code
org 100h
mulai :
  mov ah,02h
  mov dl,65
  mov dh,12
  ADD dl,dh
  int 21h
  int 20h
end mulai
Dicoba dulu gan biar nggak penasaran. Belom punya compilernya? Hehehe.... Maaf gan soalnya dari kemaren ane terlalu semangat posting materi jadi lupa dech nggak ngasih compiler-nya. Insyaallah ane bakal post ke blog ane.

Sekian dulu postingan ane. Insyaallah bisa bermanfaat. Oke, seperti biasa, tunggu postingan ane selanjutnya.

Tidak ada komentar:

Posting Komentar