Komputer yang kita
lihat sekarang semuanya telah terlihat bagus dan indah, bisa mengerjakan
berbagai tugas dan proses sekaligus, namun apakah yang terjadi di dalam
computer kita sebenarnya? Semua yang ada di dalam memori hanyalah
susunan/deretan dari angka-angka biner(0 dan 1), semua input dari user
dan output kepada user berjalan dengan interrupt dan yang dilakukan oleh
computer hanyalah pemindahan data dari satu alamat ke alamat lain
melalui register. Semua yang computer lakukan itu bisa kita atur dengan
menggunakan bahasa assembly.
Pada
artikel ini kita akan mengenali tentang bahasa Assembly dulu. Assembly
adalah bahasa pemrograman tingkat rendah untuk sebuah computer dan
hardware-hardware lainnya. Bahasa assembly sangat bergantung kepada
hardware dimana bahasa tersebut diimplementasikan, mudahnya, bahasa
assembly di PC berbeda dengan bahasa assembly di Mac. Bahasa assembly
menggunakan register untuk membantu jalannya pemrograman dan
pemindahan-pemindahan data. Bahasa assembly memungkinkan programmer
untuk memanfaatkan hardware dengan maksimal, misal mempercepat kinerja
dengan menggunakan perintah yang menggunakan clock cycle lebih sedikit.
Tak hanya hardware, software pun kita bisa optimalisasi dengan melihat
program codenya dalam bahasa assembly.
Di
dalam bahasa assembly penulisan angka bisa dengan 3 bentuk yaitu
decimal(0-9), biner, dan hexadecimal(0-9,A-F). Hexadecimal biasa
digunakan untuk menuliskan alamat, karena alamat pada dasarnya tertulis
dengan angka biner yang sangat panjang misal alamat 11111111 dalam biner
bisa ditulis dengan FF dalam hexadecimal
Register memiliki banyak jenis, tergantung untuk kegunaannya seperti :
1. AX,
BX, CX, DX untuk kegunaan umum, berukuran 16 bit(16 digit angka biner).
Register ini bisa diperkecil menjadi 8 bit register, AX menjadi AH dan
AL, namun apabila AX dirubah maka AH dan AL akan berbah dan sebaliknya.
Lebih detilnya :
a. AX untuk perkalian dan pembagian, dan penyimpanan string
b. CX untuk menghitung operasi dan perubahan string
c. DX untuk port address IN dan OUT(intel processor only)
d. BX adalah index register untuk MOV
2. SI,
DI adalah index register berukuran 16 bit, biasa digunakan sebagai
pointer dan juga bisa digunakan untuk kegunaan umum, namun tidak bisa
diperkecil menjadi register 8 bit
3. BP(Base
Pointer, menunjukkan dasar dari stack), SP(Stack Pointer, menunjukkan
puncak dari stack) adalah register 16 bit yang digunakan untuk menunjuk
suatu data.
4. CS(Code
Segment), DS(Data Segment), ES(Extra Segment), SS(Stack Segment adalaha
segment register berukuran 16 bit yng digunakan untuk menunjukkan
memori yang digunakan di dalam program. Instruction Pointer(IP) register
digunakan dengan CS untuk mencatat alamat dari perintah berikutnya yang
akan dikerjakan oleh CPU.
5. FLAGS register menyimpan informasi penting dari hasil perintah sebelumnya.
sumber
0 komentar:
Post a Comment