Aku hanya ingin membuat hal yang biasa saja menjadi "SESUATU" Aku juga masih ingin BELAJAR
Sabtu, 25 Mei 2013
Kamis, 21 Maret 2013
Catatan Bahasa Rakitan
hari ini gw belajar kulit dari Bahasa Rakitan atau Bahasa Mesin. um, emang ribet sih... coz termasuk bahasa tingkat rendah. nah, berikut ini merupakan catatan yang gw buat. oh ya, bahasa rakitan ini menggunakan Command Promp.
bagi yang belum tau, tekan "Windows" pada keyboard dan "R".
maka akan muncul "Run"
ketik CMD, lalu enter.
akan muncul sebuah kotak bewarna hitam.
masuk ke Root.
ketik
cd \
tekan enter.
maka akan menjadi
ketik
debug
akan muncul tanda strip ( - ).
nah, berikut adalah penjelasannya:
- = command promp dari debug, siap menerima perintah
ketik A100. akan muncul:
0B03:0100
0B03 : segmen
0100 : offset
0B03 akan berbeda pada setiap komputer.
mov AH,02 = service
mov DL,42 = register penyerta
int(interrupt) 21 = untuk mencetak hasil ke layar
int 20 = untuk end
RIP (Rest Indek Pointer) = MENENTUKAN AWAL PROGRAM,
JIKA MUNCUL IP 0100, MAKA SUDAH BENAR.
G (GO) - MENJALANKAN PROGRAM
AKAN MUNCUL "B"
MAKSUD DARI APP:
1. MEMORY UTAMA: TERDIRI DARI BANYAK SEGMEN,
SEDANGKAN SEGMEN TERDIRI DARI BANYAK OFFSET.
mulai dari 0000 sampai 00FF (sebelum 0100) disebut PSP (program
PSP berfungsi untuk menyimpan header file. tidak boleh diisi oleh apapun.
sebuah file terdiri dari 3 bagian, HEAD, ISI dan OEF
Head akan mengisi alamat 0000 samapai 00FF. header terdiri dari nama, judul, size, extension, kapan dibikin, dan terakhir di akses.
sedangkan dari 0100 samapi 0106 adalah isi.
sedangkan EOF adalah akhir dari sebuah file. pas diakhir sebuah isi yaitu 0108.
sedangkan untuk file baru, maka file tersebut akan menempati segmen baru.
masuk ke register.
AH, DL termasuk register.
general purpose register, besarnya 16 bit(binary digit) terdiri dari
AX(Akumulator), BX (base), CX (counter)dan DX(data)
AX terdiri dari 2, yaitu AH(A Hight) dan AL(A Low)
cth: AX = 0123:
AH = 01 (8 bit)
AL = 23 (8 bit)
General Purpose Register (Ranger Memory) di atas adalah yang utama.
INT (INTERRUPT)
(interupsi/perintah/komen)
INT 21 / service 02 => untuk mencetak karakter
jika hanya menuliskan INT 21, sedangkan sevice akan menggunakan AH
biasanuya INT 21/AH 02
jika int sudah terpakai, maka AH sudah tidak boleh di pakai.
INT 21/AH 02 akan ditemani oleh DL = karakter(yang terdiri dari ASCII.
posisi service harus berada di atas int, karena int akan memeriksa service diatasnya.
int 20 adalah end / stop dari sebuah file / app.
HAFALKAN ASCII
30 : UNTUK "0"
41 : UNTUK "A"
61 : UNTUK "a"
untuk setelah nilai 9, maka dilanjutkan dengan "A - F" baru 0.
Contoh: 49, 4A, 4B, 4C, 4D, 4E, 4F, 50.
contoh program:
-A100
0B03:100 MOV AH,02
0B03:102 MOV DL,4B
0B03:104 INT 21
0B03:106 MOV DL,55
0B03:108 INT 21
0B03:10A MOV DL,52
0B03:10C INT 21
0B03:10E MOV DL,4E
0B03:110 INT 21
0B03:112 MOV DL,49
0B03:114 INT 21
0B03:116 MOV DL,41
0B03:118 INT 21
0B03:11A INT 20
0B03:11C
-G
KURNIA
Program terminated normally
Program di atas akan berbentuk:
semoga bermanfaat. :D
bagi yang belum tau, tekan "Windows" pada keyboard dan "R".
maka akan muncul "Run"
ketik CMD, lalu enter.
akan muncul sebuah kotak bewarna hitam.
masuk ke Root.
ketik
cd \
tekan enter.
maka akan menjadi
ketik
debug
akan muncul tanda strip ( - ).
nah, berikut adalah penjelasannya:
- = command promp dari debug, siap menerima perintah
ketik A100. akan muncul:
0B03:0100
0B03 : segmen
0100 : offset
0B03 akan berbeda pada setiap komputer.
mov AH,02 = service
mov DL,42 = register penyerta
int(interrupt) 21 = untuk mencetak hasil ke layar
int 20 = untuk end
RIP (Rest Indek Pointer) = MENENTUKAN AWAL PROGRAM,
JIKA MUNCUL IP 0100, MAKA SUDAH BENAR.
G (GO) - MENJALANKAN PROGRAM
AKAN MUNCUL "B"
MAKSUD DARI APP:
1. MEMORY UTAMA: TERDIRI DARI BANYAK SEGMEN,
SEDANGKAN SEGMEN TERDIRI DARI BANYAK OFFSET.
mulai dari 0000 sampai 00FF (sebelum 0100) disebut PSP (program
PSP berfungsi untuk menyimpan header file. tidak boleh diisi oleh apapun.
sebuah file terdiri dari 3 bagian, HEAD, ISI dan OEF
Head akan mengisi alamat 0000 samapai 00FF. header terdiri dari nama, judul, size, extension, kapan dibikin, dan terakhir di akses.
sedangkan dari 0100 samapi 0106 adalah isi.
sedangkan EOF adalah akhir dari sebuah file. pas diakhir sebuah isi yaitu 0108.
sedangkan untuk file baru, maka file tersebut akan menempati segmen baru.
masuk ke register.
AH, DL termasuk register.
general purpose register, besarnya 16 bit(binary digit) terdiri dari
AX(Akumulator), BX (base), CX (counter)dan DX(data)
AX terdiri dari 2, yaitu AH(A Hight) dan AL(A Low)
cth: AX = 0123:
AH = 01 (8 bit)
AL = 23 (8 bit)
General Purpose Register (Ranger Memory) di atas adalah yang utama.
INT (INTERRUPT)
(interupsi/perintah/komen)
INT 21 / service 02 => untuk mencetak karakter
jika hanya menuliskan INT 21, sedangkan sevice akan menggunakan AH
biasanuya INT 21/AH 02
jika int sudah terpakai, maka AH sudah tidak boleh di pakai.
INT 21/AH 02 akan ditemani oleh DL = karakter(yang terdiri dari ASCII.
posisi service harus berada di atas int, karena int akan memeriksa service diatasnya.
int 20 adalah end / stop dari sebuah file / app.
HAFALKAN ASCII
30 : UNTUK "0"
41 : UNTUK "A"
61 : UNTUK "a"
untuk setelah nilai 9, maka dilanjutkan dengan "A - F" baru 0.
Contoh: 49, 4A, 4B, 4C, 4D, 4E, 4F, 50.
contoh program:
-A100
0B03:100 MOV AH,02
0B03:102 MOV DL,4B
0B03:104 INT 21
0B03:106 MOV DL,55
0B03:108 INT 21
0B03:10A MOV DL,52
0B03:10C INT 21
0B03:10E MOV DL,4E
0B03:110 INT 21
0B03:112 MOV DL,49
0B03:114 INT 21
0B03:116 MOV DL,41
0B03:118 INT 21
0B03:11A INT 20
0B03:11C
-G
KURNIA
Program terminated normally
Program di atas akan berbentuk:
semoga bermanfaat. :D
Langganan:
Postingan (Atom)