mempelajari bahasa rakitan memang memerlukan
perjuangan yang lumayan menguras pikiran, namun ketika memetik hasilnya akan
sangat luar biasa sebab bisa diterapkan ke banyak bidang dan banyak kemanfaatan
dalam kehidupan.
Dibawah ini adalah contoh dari code bahasa rakitan :
Dari code diatas, sebetulnya beberapa baris ada
kemiripan instruksi seperti MOV AH,02H dan MOV DL,65 kemudian INT
21H dan INT 20H. karena ada kemiripan, maka kita bagi saja jadi 2
struktur seperti ini :
Perbedaan register dengan memori lainnya yang berada
di luar prosesor adalah dari segi kapasitas dan kecepatannya, kalau memori
diluar prosesor kapasitasnya bisa mencapai Mega bahkan Giga dengan kecepatan
akses yang rendah. namun reigster sebaliknya, ia mempunya kapasitas yang kecil
hanya dalam satuan bit saja dengan kecepatan yang sangat tinggi.
JENIS REGISTER
1. Segment Register
2. Pointer dan Index Register
3. Flags Register
4. General Purpose Register
SEGMENT REGISTER
Register ini digunakan untuk menunjukan alamat dari
suatu segment. beberapa register 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 memory. beberapa register ini adalah SP, BP,SI,DI yang
masing-masing berukuran 16 bit.
FLAGS REGISTER
Register ini akan digunakan sebagai tempat penyimpanan
tanda. seperti 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) seperti
berikut :
Register ini bernama 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
Register ini bernama Base
Register. fungsi register ini tempat menyimpan alamat offset data yang
treletak pada memori selain itu juga dapat digunakan sebagai operasi aritmatika
dan logika.
- 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.
TUGAS
A F I F
Sebelum masuk ke pembahasan berikutnya, untuk lebih memahami lagi tentang register. silahkan modifikasi lagi code diatas sehingga bisa menampilkan nama anda.
Bagaimana hasil modifikasinya..? pasti berhasil donk ya...(entah berhasil muncul output yang sesuai, berhasil muncul message error, atau malah berhasil membuat kepala pusing) pokoknya yang penting berhasil dech..:-)
Interupt berjumlah 256 buah, dibagi menjadi 2 macam, yaitu :
- Interupt 00h – 1Fh (0 – 31) : interupt ini adalah interupt BIOS. interupt yang standar untuk semua komputer baik dengan OS DOS atau bukan.
- Interupt 20h-FFh (32-255) : ini adalah Interupt DOS. hanya ada pada komputer yang ber OS DOS.
Satu lagi dech dicoba ya…
Bagaimana hasil dari code diatas ? silahkan disimpulkan, dan ini dia tantangannya..coba dech kolaborasikan code pertama dan ketiga ini sehingga bisa memunculkan output huruf ABCDEFGHIJKLMNO tapi…hanya pakai 1 kali INT 21H nya. oc…semoga sukses untuk kita semua…
0 komentar:
Posting Komentar