PERTEMUAN
I : MENGENAL DEBUG
TUJUAN PRAKTIKUM
1.
Mengenai kegunaan program debug.exe
dalam konteks memperkenalkan bentuk bahasa assembler.
2.
Mengetahui apa yang disebut dengan rutin
program, data.
3.
Mengetahui cara melakukan debugging
(tracing).
TEORI PENUNJANG
Teori
Sistem Operasi (DOS) disusun dari
kumpulan rutin-rutin assembly (bahasa rakitan) dan ditopeng dengan library
prosedur yang disebut dengan interrupt. Debug adalah program sederhana yang
tersedia dan dapat digunakan mulai untuk proses debugging (tracing), editing
hingga creating (membuat baru). Walaupun dengan keterbatasan debug cukup bagi
pemula untuk mengenal struktur bahasa rakitan, kode rutin program dan mengenal
jenis-jenis data mulai dari byte, word dan double word.
Berikut ini adalah perintah-perintah
yang terdapat dalam debug:
Assembly
A [address]
Compare C range address
Dump D [range]
Enter E address
Fill F range list
Go G [=address][addesses]
Hex H value 1 value 2
Input I port
Load L
[address][drive][firstsector][number]
Move M range address
Name N [pathname][arglist]
Output O port byte
Procced P [=address][number]
Quit Q
Register R [register]
Search S
range list
Trace T
[address][drive][firstsector][number]
Unassemble U
[range]
Write W
[address][drive][firstsector][number]
Allocate
expanded memory XA [#pages]
Dellocate
expanded memory XD [handle]
Map
expanded memory pages XM
[Lpage][Ppage][handle]
Display
expanded memory status XS
MATERI PENUNJANG
Melakukan percobaan-percobaan yang ada
didebug seperti Unassemble(lihat kode program), Dump(melihat data byte),
Enter(merubah isi memory), Assembly(membuat program), dll.
Program
sederhana
a-100
1074:0100
mov cx, 05
1074:0103
mov bh, 41
1074:0105
mov ah, 02
1074:0107
mov dl, bh
1074:0109
int 21
1074:010B
inc bh
1074:010D
loop 107
1074:010F
int 20
Dari program sederhana diatas lakukan
proses pendebugan(tracing) atas program tersebut sekaligus diperhatikan keadaan
register dan rutin pada saat itu.
Melakukan
proses trace
-T
AX=0000
BX=0000 CX=0005 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1074
ES=1074 CS=1074 IP=0103 NV UP EI PL NZ NA PO NC
1074:0103
B741 MOV BH,4
Program sederhana
PERTEMUAN
: 2 OPERASI SEDERHANA DENGAN MENGGUNAKAN
DEBUG
TUJUAN PRAKTIKUM
- Mengetahui tata cara meng-assembly program dengan menggunakan debug.exe.
- Mengenal lebih jauh tentang interrupt dan service
- Mempelajari fungsi looping dalam bahasa rakitan menggunakan interksi LOOP
- Mempelajari intruksi lompatan
TEORI PENUNJANG
Teori
Program bahasa rakitan dengan
ekstensi.com adalah program bahasa rakitan 1 segment yang berarti program akan
diload kedalam memori dengan single segmen ( tidak ada lompatan antar segmen )
sehingga program akan bergerak dalam segmen itu saja. Oleh karena itu
pembuatannya harus memperhatikan tata cara teknisnya, yaitu antara lain besar
program tersebut tidak boleh lebih besar dari 64kb ( 1 segment )selain itu juga
awal harus terletak pada lokasi offset 0100h. Oleh karena itu dalam
pembuatannya harus diperhatikan lokasi offset dari program yang dibuat, sebagai
contoh apabila pembuatan program dilakukan dengan debug maka rutin pertama
harus dilakukan dengan perintah : - A100
begitu juga apabila penulisan listing dilakukan dengan menggunakan program non
debug. Interrupt 20h digunakan oleh program . com untuk menghentikan program
dan kembali ke DOS, selan itu dapat juga digunakan interrupt 21h service 4Ch.
Contohnya :
C:\>debug
-a100
1074:0100 MOV AH,02
1074:0102 MOV DL,41
1074:0104 INT 21
1074:0106 INT 20
1074:0108
Untuk melihat hasilnya gunaakan
statement : -G
1074:0108
-g
A
Program terminate normally
Program
sederhana menampilkan A
MATERI
PRAKTIKUM
Membuat program looping sederhana
seperti dibawah ini, untuk mencetak ABCDEF dengan mengggunakan debug.exe
Contoh :
C:\>debug
-a100
1074:0100 MOV CX,6
1074:0103 MOV AH,02
1074:0105 MOV DL,41
1074:0107 INT 21h
1074:0109 INC DL
1074:010B LOOP 107
1074:010D INT 20h
Hasil runingnya :
-g
ABCDEF
Program terminated normally
Program
sederhana menampilkan ABCED
Program
sederhana menampilkan abcdef
Penjelasan :
Penggalan program diatas menggunakan
registrer Cx untuk melakukan counter perhitungan mundur sebanyak 6 kali,
untuk menampilkan huruf capital A
lerlebih dahulu deberikan nilai hexsadesimal 41 pada pegister DI. Agar supaya karakter selanjutnya adalah B lakukan penambahan pada register DI ( gunakan statement inc ). Agar
proses diatas berulang sebanyak 6 kali, gunakan statement LOOP dengan
menunjukan offset 107.
PERTEMUAN
: 3 PENGENALAN TORBO ASSEMBLER ( TASM )
TUJUAN PRAKTIKUM
1.
Mengetahui cara kerja meng-assembly
program dengan menggunakan TASM (TURBO ASSEMBLER)
2.
Mengenal bentuk umum format penulisan
program rakitan menggunakan TASM.
3.
Mempraktekan teknik pemograman dengan
memakai data berangkai (panjang).
4.
Mengenal lebih lengkap INT 21h service
09h, mencetak rangkaian kalimat.
TEORI PENUNJANG
Penulisan menggunakan TASM berarti penulisan rutin
program bahasa rakitan dengan menggunakan kompiler terpisah dan secara tidak
penulisan program bahasa rakitan dengan TASM urutan pertama kalinya adalah
penulisan program, program di tulis menggunakan text editor biasa (DOS edit
atau sk/ sidekick) stelah rutin ditulis maka dilanjutkan dengan proses
pengkompilan.
Penulisan rutin dibuat dengan menggunakan bentuk
umum sebagai berikut:
P8086
;Prosessor
yang digunakan (P8086, P286, P386, P486)
MODEL
TINY
;Model
memory yang digunakan (TINY, SMALL, MEDIUM, COMPACT, LARGE, HUGE), khusus untuk
program .COM harus menggunakan MODEL TINY
DATASEG
;Tempat
mendefinisikan data data yang digunakan dengan penginisialisasian
UDATASEG
;
Tempat mendefinisikan data data yang digunakan tanpa penginisialisasian
CODESEG
STARTUPCODE
;Tempat
meletakan code program
;
INT 20h; keluar
dari DOS
Subrutin
1 PROC NEAR
;kode
subrutin diletakan disini
;
RET
Subrutin 1 ENDIP
END
Interupt 21h service 09h digunakan untuk mencetak
rangkaian kalimat, dimana register AH adalah nomor service dan DS DX diletakan
lokasi memori dari rangkaian data yang akan disetak, syaratnya data yang akan
dicetak harus diakhiri dengan kode “$”.
MATERI
PRAKTIKUM
Menggunakan program assembler dengan menggunakan
media lain yaitu Editor/ sidekick(sk). Dalam media ini program assembler
memiliki struktur pengkodean. Untuk latihan, anda dapat gunakan program
sederhana yanh terdapat pada praktikum pertama.
Seperti pada contoh dibawah ini:
.Model Tiny
.code
Org 100h
Mulai:
Mov cx, 05
Mov bh, 41
Mov ah, 02
Gol:
Mov dl, bh
Int 21
Inc bh
Loop gol
INT 20h
END Mulai
Program diatas adalah program pencetakan sebuah
karakter pada monitor digunakan service 02h dengan interupt 21h. Sedangkan
untuk pencetakan sebuah string dalam bahasa assembler digunakan service 09h
dengan interupt 21h.
Contohnya: menampilkan kalimat GUNADarma
.Model Tiny
.code
Org 100h
Mulai: jmp proses
Klm db ‘GUNADarma$’, 13, 10 proses: mov ah, 09
Mov dl, offset klm
Int 21
INT 20h
End Mulai
Program 'BATMAN SI MANUSIA KELELAWAR
.MODEL SMALL
.CODE
ORG 100h
TData :
JMP Proses
Kar
DB ?
Klm
DB 'BATMAN SI MANUSIA KELELAWAR ' ; 28 Karakter
Proses
: MOV
CX,28 ; Banyaknya
pengulangan
XOR
BX,BX ; Addressing Mode
Ulang :
MOV
DL,Klm[BX]
MOV
Kar,DL
CALL
Cetak_Kar ; Panggil Cetak_Kar
INC
BX
LOOP
Ulang
INT
20h
Cetak_Kar
PROC NEAR
PUSH
AX ; Simpan semua register
PUSH
DX ; Yang digunakan
MOV
AH,02h
MOV
DL,Kar
INT
21h ; Cetak karakter
POP
DX ; Kembalikan semua
register
POP
AX ; Yang disimpan
RET ; Kembali kepada si pemanggil
Cetak_Kar
ENDP ; END Procedures
END TData
Program
sederhana batman si manusia kelalawar
bagus
BalasHapus