Title: Program Bahasa Rakitan dengan DEBUG.COM
1Program Bahasa Rakitan dengan DEBUG.COM
Mata Kuliah Bahasa Rakitan Materi ke-4
2Perintah dan Fungsi dalam DEBUG.COM
- DEBUG, menjalankan program DEBUG
- Agt DEBUG nama file . COM
- Q (Quit), keluar dari program DEBUG
- - Q
- H (Hexa), menjumlahkan dan mengurangkan dua
bilangan Heksadesimal - - H 2204 02012
- 4216 01F2
Hasil pengurangan
Hasil penjumlahan
3Perintah dan Fungsi dalam DEBUG.COM (cont.)
- R (Register), mengetahui isi masing-masing
register - -R
- AX0000 BX0000 CX0000 DX0000
- DS0FD8 ES0FD8 SS0FD8 CS0FD8
- A (Assembler), perintah untuk masuk ke tempat
penulisan program assembler. - -A -A100
- 0AB40100 0AB40100
4Perintah dan Fungsi dalam DEBUG.COM (cont.)
- N (Name), perintah untuk membuat nama program
yang telah dibuat. - Format N drivenama program
- -N BCOBA.COM
- RCX (Register CX), perintah untuk mengetahui dan
memperbaiki isi register cx sebagai tempat
penampungan panjang program yang sedang aktif. - -RCX
- CX 0000
- 0008
5Perintah dan Fungsi dalam DEBUG.COM (cont.)
- RIP (Register IP), perintah yang memberi-tahukan
komputer untuk mulai memroses program dari titik
tertentu. Pada program debug selalu dimulai dari
0100 h. - - RIP
- IP 0100
- 0100
- W (Write), perintah yang digunakan untuk menulis
program ke media penyimpanan. - -W
- Writing 0008 bytes
6Perintah dan Fungsi dalam DEBUG.COM (cont.)
- G (GO), perintah yang digunakan untuk
menjalan-kan program. - -G
- A
- Program terminated normally
- U (Unassemble), perintah untuk menampilkan
deretan program yang sedang aktif sepanjang 21 H. - Format
- U tempat awal unassemble L panjang
program - -U 100 L 0D
- CtrlPrint Screen, cetak ke printer
7Perintah dan Fungsi dalam DEBUG.COM (cont.)
- T (Trace), perintah untuk memroses sebaris
program saja. - -A100
- 0AD2 0100 MOV DL,41
- 0AD2 0102 INT 21
- 0AD2 0104 INT 20
- 0AD2 0106
- -RCX
- CX 0000
- 06
- -RIP
- IP 0100
-
- -G
- A
- Program terminated normally
- -T
- AX0000 BX0000 CX0006 DX0041 SPFFEE
BP0000 SI0000 DI0000 - DS0AD2 ES0AD2 SS0AD2 CS0AD2 IP0102 NV UP
EI PL NZ NA PO NC - 0AD2 0102 CD21 INT 21
8SET INSTRUKSI
- Intstruksi Transfer Data
- Instruksi Aritmetika
- Instruksi Looping
- Instruksi Jump
- Operasi Stack
- Operasi Logika
9INSTRUKSI TRANSFER DATA
- MOV
- Format MOV operarand-1,operand-2
- Operand 1 Register, Variabel, Lokasi Memory
- Operand 2 Register, Variabel, Lokasi Memory,
Bilangan - MOV AH,AL menduplikatkan isi register AL ke
register AH. - Operand 1 Register AH
- Operand 2 Register AL
10Instruksi Transfer Data (Cont.)
- MOV AH,02 memasukkan bilangan 02 ke register AH
- Operand 1 Register AH
- Operand 2 Bilangan 02
11INSTRUKSI ARITMATIKA
- INC (Increment), operasi pertambahan dengan satu
- Format INC Register/Variabel
- A A 1
- DEC (Decrement), operasi pengurangan dengan satu
- Format DEC Variabel/Register
- A A 1
-
12Instruksi Aritmetika (Cont.)
- Operasi Pertambahan Selain Satu
- Format ADD operand-1, operand-2
menjumlahkan isi operand 1 dengan operand 2 dan
hasil disimpan di operand 1 - Operand 1 Register, Variabel
- Operand 2 Register, Variabel, Bilangan
- AH .. 10
- AL .. 5
- AH . 15
13Instruksi Aritmatika (Cont.)
- Operasi Pengurangan Selain Satu
- Format SUB OPERAND 1, OPERAND 2
- mengurangkan isi operand 1 dengan operand 2 dan
hasil disimpan di operand 1 - Operand 1 Register, Variabel
- Operand 2 Register, Variabel, Bilangan
- AH .. 15
- AL .. 10 -
- AH 5
14Instruksi Aritmatika (Cont.)
- Operasi Perkalian 8 Bit
- Format MUL Register
- mengalikan isi register BL dengan isi register
AL dan hasil disimpan di register AX - MUL BL
- BL 04
- AL 08 x
- AX ... 32
15Instruksi Aritmatika (Cont.)
- Operasi Perkalian 16 Bit
- Format MUL REGISTER
- mengalikan isi register BX dengan isi register
AX, hasil disimpan di register AX dan DX - MUL BX
- BX 12900
- AX 10000 x
- DX AX 129000000 7B0 6240
- DX
AX
16Instruksi Aritmatika (Cont.)
- Operasi Pembagian 8 Bit
- Format DIV Register
- membagi isi register AX dengan isi register BL
dan hasil disimpan di register AL dan sisa di
register AH - DIV BL
- hasil sisa
- AL AH
- BL AX
17Instruksi Aritmatika (Cont.)
- Operasi Pembagian 16 Bit
- Format DIV Register
- membagi isi register DX AX dengan isi register
BX dan hasil pembagian dimasukkan dalam register
DX sedangkan sisa hasil pembagian dimasukkan
dalam register AX - DIV BX
- hasil sisa
- DX AX
- BX DXAX
18INSTRUKSI LOOPING
- LOOP, instruksi Looping
- Format LOOP lokasi memori
- Mengulang instrksi alamat memory sebanyak 5
kali. Setiap kali pengulangan processor akan
mengurangi isi register CX sampai 0. Kemudian
proses akan berlanjut ke instruksi di bawah loop. - CX 5
-
-
- LOOP
- ..
19Instruksi Looping (Cont.)
- JMP, instruksi lompatan tak bersyarat
- Format JMPlokasi memori
- Melakukan lompatan tanpa syarat ke lokasi memori
segment 0103 - JMP 0103
- CMP, instruksi lompatan bersyarat
- Format CMP operand-1,operand-2
- Operand-1 variabel, register
- Operand-2 variabel, register, lokasi memori,
bilangan
20Instruksi Looping (Cont.)
Jenis-jenis Lompatan Bersyarat
- JNS (Jump On Not Sign)
- JC (Jump On Carry)
- JNC (Jump On Not Carry)
- JCXZ (Jump If CX0)
- JB (Jump If Below)
- JBE (Jump If Below or Equal)
- JNBE (Jump If Not Below or Equal)
- JZ (Jump On Zero)
- JNZ (Jump On Not Zero
- JS (Jump On Sign)
- JE (Jump If Equal)
- JNE (Jump If Not Equal)
- JG (Jump If Greater Than)
- JNG (Jump If Not Greater Than)
- JNGE (Jump If Not Greater or Equal)
- JE (Jump If Less Than)
- JLE (Jump If Less or Equal)
- JNL (Jump If Not Less Than)
- JNLE (Jump If Not Less or Equal)
- JA (Jump if Above)
- JNA (Jump If Not Above or Equal)
- JNAE (Jump If Not Above or Equal)
21OPERASI STACK
- Operasi yang digunakan untuk menyimpan sementara
suatu nilai pada alamat offset terakhir pada
suatu segment - Stack bersifat LIFO (Last In First Out)
- Beberapa contoh perintah yang digunakan dalam
operasi stack - PUSH register 16 bit
- Digunakan untuk menyimnpan nilai di register 16
bit ke dalam stack - POP register 16 bit
- Digunakan untuk mengambil kembali stack,kemudian
disimpan di register 16 bit - PUSHF
- Digunakan untuk menyimpan nilai flag register ke
dalam stack - POPF
- Digunakan untuk mengambil isi stack, kemudian
disimpan di dalam flag register F.
22OPERASI LOGIKA
- Beberapa Operasi Logika yang digunakan
- AND
- OR
- XOR
AND OR XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0