PEMBELAJARAN TENTANG BAHASA RAKITAN

Untuk menuliskan source file untuk program assembly bisa anda gunakan berbagai editor, misalkan SideKick, WordStar dan Word Perfect. Source file yang diketikkan harus berupa file ASCII, file ini bisa anda hasilkan melalui WordStar dengan file 'NON DOCUMEN', atau dengan SideKick.
Untuk meyakinkan bahwa source file yang anda buat adalah file ASCII, bisa anda coba ketikkan perintah Type pada A>. Bila file yang terlihat dengan perintah type sama persis dengan yang anda ketikkan pada editor, tanpa tambahan karakter-karakter yang acak, maka file tersebut adalah file ASCII. Source file untuk assembly harus berektensi .ASM.

COMPILER
Source file ASCII yang telah anda ketikkan perlu dicompile kebentuk file object dengan extensi .OBJ, dari file object inilah nantinya dapat dijadikan kebentuk file .EXE atau .COM.
Untuk mengcompile source file, misalnya file COBA.ASM menjadi file object dengan extensi .OBJ bisa anda gunakan file TASM.EXE dengan mengetikkan:

C:\>tasm coba
Turbo Assembler Version 2.0 Copyright (c) 1988,
1990 Borland International
Assembling file: coba.ASM
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 307k
C:\>dir coba.*
Volume in drive C is S’to
Directory of C:\
COBA OBJ 128 08-12-94 10:42p
COBA ASM 128 08-12-94 10:41p
2 file(s) 246 bytes
1,085,952 bytes free

LINGKING
File object yang telah terbentuk dengan TASM, belum dapat dieksekusi secara langsung. Untuk membuat file object ke bentuk file yang dapat dieksekusi(ektensi .COM atau .EXE) bisa anda gunakan file TLINK.EXE.
Bila source program yang anda buat dalam bentuk EXE maka untuk membentuk file dengan ektensi EXE bisa anda ketikkan :
C:\>tlink coba

Turbo Link Version 3.0 Copyright (c) 1987,
1990 Borland International
Bila source program yang dibuat adalah file COM, maka bisa anda ketikkan:
C:\>tlink/t coba

Turbo Link Version 3.0 Copyright (c) 1987,
1990 Borland International
Contoh Program di bawah ini disusun berdasarkan pengalaman dan dari tugas Kuliah Pemrograman Bahasa Rakitan penulis sendiri dengan menggunakan bahasa assembler. Oleh karenanya posting ini disusun dengan harapan bagi anda yang tidak tahu sedikitpun tentang assembly dapat belajar sehingga assembler akan tampak sama mudahnya dengan bahasa tingkat tinggi. Semoga contoh program ini dapat bermanfaat

Contoh 1 :

.model small

.code

org 100h

proses :

mov ah, 15h

mov al, 4

add ah, al

mov dl, ah

mov ah, 02h

mov cx, 01h

int 21h

mov ax, 1234h

mov bx, 0F221h

add ax, bx

mov bx,ax

mov dl, bh

mov ah, 02h

mov cx,01h

int 21h

mov dl, bl

mov ah, 02h

mov cx,01h

int 21h

mov ax, 1234h

mov bx, 9ABCh

mov cx, 5678h

mov dx, 0DEF0h

add cx, dx

add ax, bx

inc al

mov bx,ax

mov dl, bh

mov ah, 02h

mov cx,01h

int 21h

mov dl, bl

mov ah, 02h

mov cx,01h

int 21h

int 20h

end proses


Contoh 2 :


.model small

.code

org 100h

mulai:

mov ah,20h

mov dl,'A'

int 21h

int 20h

end mulai

Jika “02h” diganti jadi “20h” tidak ada nilai yang keluar

.model small

.code

org 100h

mulai:

mov ah,02h

mov dl,'Ada'

int 21h

int 20h

end mulai

Jika A dirubah jadi “Ada” maka :

.model small

.code

org 100h

mulai:

mov ah,02h

mov dl,'A'

int 21h

int 02h

end mulai

Jika int “20h” diganti menjadi int “02h” maka tidak ada hasil

Contoh 3 :

Nama : Handik Wantoro Setiyadi

NIM : SIA 201040

Tugas 1

.model small

.code

org 100h

mulai:

mov ah,2h

mov dl,'A'

mov cx,18

lagi:

int 21h

inc DL

loop lagi

mov ah,2h

mov dl,'Z'

mov cx,19

lagi2:

int 21h

dec DL

loop lagi2

int 20h

end mulai


Tugas 2


.model small

.code

org 100h

mulai:

mov ah,09h

mov al,'C'

mov BH00h

mov BL, 01110010

mov cx,20h

ulang :

int 10h

inc AL

loop ulang

int 20h

end mulai



.model small

.code

org 100h

mulai:

mov ah,09h

mov al,'C'

mov BH,00h

mov BL, 01100111b

mov cx,10

ulang :

int 10h

inc AL

loop ulang

int 20h

end mulai



.model small

.code

org 100h

mulai:

mov ah,09h

mov dl,'C'

mov BH,00h

mov BL,01110010b

mov cx,20

ulang :

int 10h

inc AL

loop ulang

int 20h

end mulai



Contoh 4 :


.model small

.code

org 100h

mulai:

mov ah,01h

int 21h

int 20h

end mulai


.model small

.code

org 100h

mulai:

mov ah,07h

int 21h

int 20h

end mulai


.model small

.code

org 100h

mulai:

mov ah,08h

int 21h

int 20h

end mulai

Analisa :

Tidak ada bedanya

Contoh 5 :

Membuat Pasword :

.model small

.code

org 100h

mulai:

jmp proses

kal db 13,10,'Masukkan Password : $'

kal2 db 10,'Welcome guys$'

proses :

mov ah, 09h

lea dx, kal

int 21h


mov ah, 07h

int 21h

cmp al, 'Y'

je pilihan1

jne proses

int 20h


pilihan1:

mov ah, 02h

mov dl, '*'

int 21h

mov ah, 07h

int 21h

cmp al, 'O'

je pilihan2

jne proses

pilihan2:

mov ah, 02h

mov dl, '*'

int 21h

mov ah, 07h

int 21h

cmp al, 'U'

je pilihan3

jne proses

pilihan3:

mov ah, 02h

mov dl, '*'

int 21h

mov ah, 07h

int 21h

cmp al, 'R'

je pilihan4

jne proses

pilihan4:

mov ah, 02h

mov dl, '*'

int 21h

mov ah, 07h

int 21h

mov ah, 09h

lea dx, kal2

int 21h

int 20h

Contoh 6 :

Tugas Terbalik ;

.model small

.code

org 100h

data:

jmp mulai

asal db 'Handik Wantoro Setiyadi$'

mulai :

xor bx,bx

cek :

mov al, asal [bx]

inc bx

cmp al,'$'

jne cek

bx

mov cx,bx

ulang :

dec bx

mov dl, asal [bx]

mov ah,2h

int 21h

loop ulang

int 20h

end data










PERINTAH MOV
Perintah MOV digunakan untuk mengcopy nilai atau angka menuju suatu register,variabel atau memory. Adapun syntax untuk perintah MOV ini adalah :
MOV Tujuan,Asal
Sebagai contohnya : MOV AL,9 ; masukkan nilai 9 pada AL.
MOV AH,AL ; nilai AL=9 dan AH=9
MOV AX,9 ; AX=AH+AL hingga AH=0 dan AL:=9

PERINTAH INT
perintah INT dengan syntax: INT NoIntDengan NoInt adalah nomor interupsi yang ingin dihasilkan. Sebagai contohnya bila kita ingin menghasilkan interupsi 21h, bisa dituliskan dengan: INT 21h, maka interupsi 21h akan segera terjadi.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comments: