Kamis, 01 November 2012

Pemrograman Bahasa Rakitan : Materi 3

Yah, balik ke materi kuliah. Setelah sehari - dua harian ane posting diluar kuliah, sekrng balik lagi. Mahasiswa kalo tanpa tugas bagai sayur tanpa garam. Hambar banget gan. Hehehehehe :D

Postingan ane kali ini sebenernya adalah dua materi yang ada di blog dosen ane. tapi karena salah satu materi sedikit banget, maka ane gabungin aja. Hehehe :)

Masih inget kode yang ini khan gan?
Kalo masih inget, ane jelasin bagian demi bagian kode tersebut. Pada bagian
.model small, bagian ini digunakan sebagai yang ngasih tau komputer tentang besaran memori yang akan digunakan buat menjalankan program yang kita bikin. Berikut besaran memori yang sering digunakan

Tiny
Tiny digunakan saat pembuatan program hanya menggunakan 1 segment saja.

Small
Small digunakan saat pembuatan program kode dan data yang digunakan kurang dari 1 segment atau 64 KB.

Medium
Medium digunakan saat pembuatan program data yang digunakan kurang dari 1 segment namun kodenya bisa lebih dari 1 segment.

Compact
Compact digunakan saat pembuatan program data yang digunakan lebih dari 1 segment sedangkan kodenya kurang dari 1 segment.

Large
Large digunakan saat pembuatan program data dan kodenya lebih dari 1 segment.

Pada bagian .code, bagian ini digunakan sebagai yang ngasih tau komputer bahwa kita akan meletakkan kode segmentnya yang sudah berisi program-program yang nanti bakal dijalankan. Pada bagian org 100h, bagian ini digunakan sebagai yang ngasih tau kalo pas programnya dijalankan atau diload ke dalam memori dimasukkan dari offset sampai 100h / 256 bytes. Pada bagian mulai, yang menjadi identitas dari kumpulan-kumpulan perintah inti. Bagian dari mov ah,02h sampe end mulai ini yang jadi tempat untuk menulis perintah-perintah yang akan dijalankan.

Setelah selesai, kita liat lagi kodenya. Di dalam kode tersebut berisi instruksi-instruksi yang dapat dijalankan.
Di dalam kode tersebut terdapat instruksi yang mirip, makanya ane tuliskan satu aja yang mirip. Ane pecah lagi instruksinya jadi beberapa bagian. Mov adalah suatu perintah yang memiliki fungsi memindahkan suatu nilai dari satu sumber ke sumber yang lain. Ah ini adalah salah satu jenis register. Apaan tuch register? Register adalah memori yand berada di dalam prosessor.

Jenis-jenis Register

Segment Register
Register ini digunakan untuk menunjukan alamat dari suatu segment. Beberapa contoh register segment ini adalah CS, DS, ES dan ES yang masing-masing berukuran 16 bit.

POINTER dan INDEX REGISTER
Register ini digunakan sebagai petunjuk atau pointer terhadap suatu lokasi memori. Beberapa contoh register ini adalah SP, BP,SI,DI yang masing-masing berukuran 16 bit.

FLAGS REGISTER
Register ini akan digunakan sebagai tempat penyimpanan tanda. kaya namanya, FLAGS register ini akan menyimpan data yang berupa keadaan 1 atau 0, ya atau tidak.
OF (Overflow Flag) = jika terjadi overflow pada operasi aritmatika, register ini akan bernilai 1.
SF (Sign Flag) = register ini akan bernilai 1 jika digunakan bilangan bertanda.
ZF (Zero Flag) = register ini akan bernilai 1 jika operasi bernilai nol.
CF (Carry Flag) = akan bernilai 1 jika terjadi carry pada operasi penjumlahan dan borrow pada operasi pengurangan. 

GENERAL PURPOSE REGISTER (GPR)
Beberapa register yang masuk kedalam kategori GPR yaitu AX, BX, CX, DX yang masing-masing berukuran 16 bit. register ini bisa dipisah jadi 2 kondisi High (akhiran H) dan kondisi Low (akhiran L).
GBR dibagi menjadi beberapa bagian :

Accumulator Register. Beberapa fungsi dari register ini :
  • AH, Tempat menyimpan nomor service (untuk memesan layanan interupsi)
  • AL, AX, EAX (Extra AX) tempat menyimpan bilangan pada operasi aritmatika
Base Register. fungsi register ini tempat menyimpan alamat offset data yang treletak pada memori selain itu juga dapat digunakan sebagai operasi aritmatika dan logika.

Counter Register. fungsi dari register ini adalah
  • CX, ECX Sebagai pencacah pada operasi perulangan (loop)
  • CL sebagai pencacah untuk operasi shift dan rotate
  • CX sebagi pencacah operasi shift pada operasi string
Data Register, fungsinya sebagai berikut :
  • Tempat penyimpanan setengah bagian terbesar hasil dari perkalian bilangan 16bit (DX-AX) dan 32bit (EDX-EAX)
  • Tempat penyimpanan setengah bagian terbesar  suatu bilangan yang akan dikenai operasi pembagian (DX-AX dan EDX-EAX), serta suatu pembagian (DX dan EDX)
  • DL Tempat penyimpanan data hexadesimal (kode ASCII) yang akan dicetak ke layar monitor.
02h adalah number service yang berpasangan dengan interupsi sehingga komputer dapat mejalankan perintah  
yang ada sesuai dengan number service yang diberikan. Int adalah singkatan dari Interupsi. Kalo mau lebih banyak buka aja postingan ane yang ini Pembahasan Tugas PBR Kedua. 21h ini yang sebagai penentu prosesor untuk melakukan yang diperintahkan.


Cukup sekian postingan ane kali ini. Semoga bisa bermanfaat buat agan-agan semua. Dan seperti biasa, tunggu postingan ane selanjutnya.

Tidak ada komentar:

Posting Komentar