Program Bahasa Rakitan dengan DEBUG.COM

22
Program Bahasa Rakitan dengan DEBUG.COM Mata Kuliah : Bahasa Rakitan Materi ke-4

description

Program Bahasa Rakitan dengan DEBUG.COM. Mata Kuliah : Bahasa Rakitan Materi ke-4. Perintah dan Fungsi dalam DEBUG.COM. DEBUG , menjalankan program DEBUG : A> DEBUG nama file . COM Q (Quit), keluar dari program DEBUG : - Q - PowerPoint PPT Presentation

Transcript of Program Bahasa Rakitan dengan DEBUG.COM

Page 1: Program Bahasa Rakitan dengan DEBUG.COM

Program Bahasa Rakitan dengan DEBUG.COM

Mata Kuliah : Bahasa Rakitan

Materi ke-4

Page 2: Program Bahasa Rakitan dengan DEBUG.COM

2

Perintah dan Fungsi dalam DEBUG.COM

DEBUG, menjalankan program DEBUG :A> 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 penjumlahan

Hasil pengurangan

Page 3: Program Bahasa Rakitan dengan DEBUG.COM

3

Perintah dan Fungsi dalam DEBUG.COM (cont.)

R (Register), mengetahui isi masing-masing register-RAX=0000 BX=0000 CX=0000 DX=0000 …DS=0FD8 ES=0FD8 SS=0FD8 CS=0FD8…

A (Assembler), perintah untuk masuk ke tempat penulisan program assembler.-A -A1000AB4:0100 0AB4:0100

Page 4: Program Bahasa Rakitan dengan DEBUG.COM

4

Perintah dan Fungsi dalam DEBUG.COM (cont.)

N (Name), perintah untuk membuat nama program yang telah dibuat.

Format : N [drive]:[nama program]

-N B:COBA.COM

RCX (Register CX), perintah untuk mengetahui dan memperbaiki isi register cx sebagai tempat penampungan panjang program yang sedang aktif.-RCXCX 0000:0008

Page 5: Program Bahasa Rakitan dengan DEBUG.COM

5

Perintah 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.- RIPIP 0100: 0100

W (Write), perintah yang digunakan untuk menulis program ke media penyimpanan.-WWriting 0008 bytes

Page 6: Program Bahasa Rakitan dengan DEBUG.COM

6

Perintah dan Fungsi dalam DEBUG.COM (cont.)

G (GO), perintah yang digunakan untuk menjalan-kan program. -GAProgram 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

Ctrl+Print Screen, cetak ke printer

Page 7: Program Bahasa Rakitan dengan DEBUG.COM

7

Perintah dan Fungsi dalam DEBUG.COM (cont.) T (Trace), perintah untuk memroses sebaris program saja.

-A1000AD2 : 0100 MOV DL,410AD2 : 0102 MOV AH,020AD2 : 0104 INT 210AD2 : 0106 INT 200AD2 : 0108-RCXCX 0000:08-RIPIP 0100:-GA Program terminated normally

-T AX=0000 BX=0000 CX=0006 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0AD2 ES=0AD2 SS=0AD2 CS=0AD2 IP=0102 NV UP EI PL NZ NA PO NC 0AD2 : 0102 CD21 INT 21

Page 8: Program Bahasa Rakitan dengan DEBUG.COM

8

SET INSTRUKSI

1. Intstruksi Transfer Data

2. Instruksi Aritmetika

3. Instruksi Looping

4. Instruksi Jump

5. Operasi Stack

6. Operasi Logika

Page 9: Program Bahasa Rakitan dengan DEBUG.COM

9

INSTRUKSI 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

Page 10: Program Bahasa Rakitan dengan DEBUG.COM

10

Instruksi Transfer Data (Cont.)

MOV AH,02 ; memasukkan bilangan 02 ke register AH

Operand 1 : Register AH

Operand 2 : Bilangan 02

Page 11: Program Bahasa Rakitan dengan DEBUG.COM

11

INSTRUKSI 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

Page 12: Program Bahasa Rakitan dengan DEBUG.COM

12

Instruksi 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

Page 13: Program Bahasa Rakitan dengan DEBUG.COM

13

Instruksi Aritmatika (Cont.)

Operasi Pengurangan Selain SatuFormat : 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

Page 14: Program Bahasa Rakitan dengan DEBUG.COM

14

Instruksi Aritmatika (Cont.)

Operasi Perkalian 8 BitFormat : 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

Page 15: Program Bahasa Rakitan dengan DEBUG.COM

15

Instruksi Aritmatika (Cont.)

Operasi Perkalian 16 BitFormat : MUL [REGISTER] ;mengalikan isi register BX dengan isi register AX, hasil disimpan di register AX dan DX

MUL BXBX …………… 12900AX …………… 10000 xDX AX … 129000000 = 7B0 6240

DX AX

Page 16: Program Bahasa Rakitan dengan DEBUG.COM

16

Instruksi 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

Page 17: Program Bahasa Rakitan dengan DEBUG.COM

17

Instruksi Aritmatika (Cont.)

Operasi Pembagian 16 BitFormat : 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 DX:AX

Page 18: Program Bahasa Rakitan dengan DEBUG.COM

18

INSTRUKSI 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 *……..

Page 19: Program Bahasa Rakitan dengan DEBUG.COM

19

Instruksi Looping (Cont.)

JMP, instruksi lompatan tak bersyarat

Format : JMP[lokasi memori]Melakukan lompatan tanpa syarat ke lokasi memori

segment : 0103JMP 0103

CMP, instruksi lompatan bersyarat

Format : CMP [operand-1],[operand-2]

Operand-1 : variabel, register

Operand-2 : variabel, register, lokasi memori, bilangan

Page 20: Program Bahasa Rakitan dengan DEBUG.COM

20

Instruksi Looping (Cont.)

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)

JNS (Jump On Not Sign) JC (Jump On Carry) JNC (Jump On Not Carry) JCXZ (Jump If CX=0) 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)

Jenis-jenis Lompatan Bersyarat :

Page 21: Program Bahasa Rakitan dengan DEBUG.COM

21

OPERASI 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.

Page 22: Program Bahasa Rakitan dengan DEBUG.COM

22

OPERASI LOGIKA

Beberapa Operasi Logika yang digunakan :

1. AND

2. OR

3. XOR

AND OR XOR

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 1 0