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