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
.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,'
int 21h
int 20h
end mulai
Jika A dirubah jadi “
.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
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
.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
.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
.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.