SELAMAT DATANG DI BLOGGER FITRI FITRIANI, BLOG INI HANYA UNTUK SHAREING PENGETAHUAN DAN PENGALAMAN.. !!! TRIMAKASIH SUDAH BERKUNJUNG DI BLOG FITRI FITRIANI...:)

Minggu, 10 Maret 2013

Praktikum Bahasa Rakitan


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
  1. Mengetahui tata cara meng-assembly program dengan  menggunakan debug.exe.
  2. Mengenal lebih jauh tentang interrupt dan service
  3. Mempelajari fungsi looping dalam bahasa rakitan menggunakan interksi LOOP
  4. 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


 

1 komentar: