Pages

Friday, September 7, 2012

Mengenal Angka Biner Pada Komputer


Pada dasarnya komputer adalah makhluk digital yang hanya mengerti angka 1 dan 0 saja (binary). Komputer hanya mau menerima data dalam bentuk biner dan juga hanya bisa mengerti perintah dalam bentuk biner. Perintah dalam bentuk biner ini disebut dengan bahasa mesin.

Bahasa assembly adalah mnemonic dari instruksi bahasa mesin ( biner) yang disebut opcode, jadi programmer tidak memprogram dengan bahasa mesin(biner) secara langsung  tetapi mereka awalnya memprogram dengan mnemonic dari intruksi bahasa mesin yaitu "Assembly".

Setiap prosesor (otak komputer) memiliki instruction set masing-masing,sehingga bahasa assembly untuk prosesor Intel akan berbeda dengan assembly untuk prosesor lainnya.  Namun karena intel menguasai pangsa pasar prosesor maka hampir semua produsen prosesor membuat instruksi set yang kompatibel dengan intel. jadi yang kita pelajari adalah instruksi set dari intel.



Ada beberapa jenis bilangan biner yang dibedakan yaitu: "Machine Instruction" dan "Data Code"
pada dasarnya untuk mengerti sebuah kode biner harus dalam "Runtime Instruction" atau pada saat debug program.

1. Machine Instruction yaitu: sebuah kode perintah kepada komputer dengan berbentuk biner yang memiliki ukuran sekian "Byte" per intruksi misalkan untuk intruksi "mov eax,5" memiliki ukuran 2 byte per intruksi
yaitu angka binernya adalah 10110111000. sebenarnya intruksi ini akan membaca 5 byte pada 32 bit prosesor tetapi karena nilai operan keduanya adalah "5" maka 3 byte selanjutnya nilainya 00 sehingga intruksi "mov eax,5" ukurannya hanya 2 byte saja. presentasi dalam memmorynya adalah B8 05 00 00 00
lihatlah 3 byte dari kanan yaitu nilainya 0.

2. Data Code yaitu: sebuah data kode untuk prosesor yang tersimpan secara sementara pada RAM komputer dan juga memiliki ukuran sekian "Byte" per satu baris data. misalkan RAM menyimpan data string "aku" dengan ukuran 1 byte per karakter yaitu nilai binernya adalah 11101010110101101100001 yang memiliki ukuran 3 byte.

misal contoh data code:
#ascii code(bisa 4 atau 2 atau 1 byte ukuran string)
#Floating Point (bilangan ber koma yg di presentasikan dengan integer pada RAM komputer) lihat Floating Point
#data Integer... dll

contoh Machine Instruction:
pada dasarnya sebuah intruksi yg berjalan mempunyai sub prosedur ataupun function prosedur
misal suatu intruksi copy memory:
010111000111 dengan parameter ,
dengan tujuan 32 bit addres "00100c00": 000000000001000000001100000000000000 dan Nilai operannya adalah "0x54" yaitu 1010100
kemudian digabungkan secara terbalik Nilai-Tujuan-Instruction code
jadilah sebuah instruksi 1010100000000000001000000001100000000000000010111000111
artinya isikan addres 00100c00 dengan nilai 0x54
hal ini sama dengan intruksi assembly "mov[00100c00],54h" cm yg dijelaskan versi biner nya

jika intruksi berjalan pada function prosedur yang mempunyai 1 parameter dengan ukuran 4 byte karena parameter itu disimpan di stack maka di akhir intruksi harus diberi biner: 11000010 dengan operan 4 byte.
jadi penulisannya "Jumlah Byte"-"Instruction Code"
sehingga kode biner aslinya adalah 10011000010
artinya menghapus parameter memory yg ada di stack sebesar 4 byte
hal ini sama dengan intruksi assembly "ret 4" cm yg dijelaskan versi biner nya
jika tidak ada intruksi ini diakhir main instruction maka komputer km akan hank coba saja..!!

No comments:

Post a Comment