SlideShare a Scribd company logo
1 of 35
Download to read offline
Dosen : Indra Gunawan, ST.,
M.Kom., CEH., CHFI
MODUL ASSEMBLY LANJUT
SEKOLAH TINGGI TEKNIK IBNU SINA BATAM
2018
MODUL ASSEMBLY LANJUT
1
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
PRAKATA
Untuk mendapatkan buku yang membahas Bahasa pemrograman Assembly secara mudah
dengan disertai diagram alir, maka dapat membaca buku saya secara gratis di internet, silakan
dilihat pada halaman referensi (Gunawan, 2019).
I. INPUT KEYBOARD
1.1 PROGRAM #1, INTERUPT 21 SERVICE 1H
.model small
.code
org 100h
proses:
mov ah,1h ; read input with echo
mov dl, al
int 21h
loop proses
int 20h
end proses
1.2 PROGRAM #2, INTERUPT 21 SERVICE 0H
.model small
.code
org 100h
proses:
mov ah,0h ;get keystroke without buffer, al : ascii
int 16h
cmp al,00
je extended
jne biasa
extended:
mov ah,02h
mov dl,al
int 21h
loop proses
MODUL ASSEMBLY LANJUT
2
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
biasa:
mov ah,02h
mov dl,al
int 21h
loop proses
end proses
1.3 PROGRAM #3, INTERUPT 21 SERVICE 0H
.model small
.code
org 100h
datadeh :jmp mulai
var db 9,?,9 DUP(?)
mulai:
mov ah, 0ah ; only running in dosbox
lea dx, var
int 21h
lea bx, var+2
print:
mov ah,02h
mov dl,[bx]
int 21h
int 20h
end datadeh
1.4 PROGRAM #4, TUGAS
Modifikasi Program #3, untuk mencetak nama masing-masing
dipisah enter
MODUL ASSEMBLY LANJUT
3
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
II. INPUT KEYBOARD LANJUT
2.1 PROGRAM #5, INTERUPT 21 SERVICE 0H
.model small
.code
org 100h
data :jmp proses
var db 23,?,23 DUP(?)
proses:
mov ah, 0ah ; only running in dosbox
lea dx, var
int 21h
xor bx,bx
lea cx, var + 1
mov ah,02h
cetak :
mov dl,var + 2
int 21h
inc bx
loop cetak
int 20h
end data
2.2 PROGRAM #6, TUGAS
Modifikasi program #5, buat 3 variabel berisi 2 jurusan,
jika diinput xxx muncul jurusan pertama, jika diinput yyy
muncul jurusan kedua.
MODUL ASSEMBLY LANJUT
4
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
III. PROCEDURE
3.1 PROGRAM #7, MENCETAK HURUF MENGGUNAKAN PROCEDURE
.model small
.code
org 100h
;################## PROCEDURE
cetak proc near
mov ah,02h
mov dl, 'z'
int 21h
ret
cetak endp
;################## PROCEDURE
proses :
call cetak
int 20h
end proses
3.2 Program #8, Mencetak huruf menggunakan procedure
.model small
.code
org 100h
MODUL ASSEMBLY LANJUT
5
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
;################## PROCEDURE
cetak1 proc near
mov ah,02h
mov dl, var[0]
int 21h
cetak1 endp
cetak2 proc near
mov ah,02h
mov dl, var[1]
int 21h
cetak2 endp
cetak3 proc near
mov ah,02h
mov dl, var[2]
int 21h
cetak3 endp
cetak4 proc near
mov ah,02h
mov dl, var[3]
int 21h
ret
cetak4 endp
;################## PROCEDURE
data: jmp proses
var db 'satu'
proses:
call cetak1
call cetak2
call cetak3
call cetak4
int 20h
end data
3.3 PROGRAM #9, TUGAS
MODIFIKASI PROGRAM #7 ATAU #8, BUAT PROGRAM ASSEMBLY UNTUK
MENCETAK KALIMAT MENGGUNAKAN PROCEDURE.
MODUL ASSEMBLY LANJUT
6
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
IV. MACRO
4.1 PROGRAM #10, PENGGUNAAN MACRO UNTUK MENCETAK HURUF
;########### MACRO ############
cetak macro x
mov ah,02h
mov dl,x
int 21h
endm
;########### MACRO ############
.model small
.code
org 100h
proses :
cetak 'a'
cetak 'k'
cetak 'u'
int 20h
end proses
4.2 PROGRAM #11, PENGGUNAAN MACRO UNTUK OPERASI ARITMATIKA
MODUL ASSEMBLY LANJUT
7
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
;################## MACRO
hitung macro x, y, z
mov ax, x
mov bx, y
add ax, bx
add bx, z
mul bx
endm
;################## MACRO
.model small
.code
org 100h
proses:
hitung 123h, 234h, 345h
int 20h
end proses
4.3 PROGRAM #12, PENGGUNAAN MACRO UNTUK MENCETAK HURUF
;################## MACRO
cetak macro x
mov ah,02h
mov dl, x
int 21h
endm
;################## MACRO
.model small
.code
org 100h
proses :
cetak 'z'
int 20h
end proses
4.4 PROGRAM #13, PENGGUNAAN MACRO MULTI VARIABLE
MODUL ASSEMBLY LANJUT
8
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
;################## MACRO
cetak macro x, y, z, a
mov dl, x
int 21h
mov dl, y
int 21h
mov dl, z
int 21h
mov dl, a
int 21h
endm
;################## MACRO
.model small
.code
org 100h
data:jmp proses
var db 'satu'
proses :
mov ah,02h
cetak var[0], var[1], var[2], var[3]
int 20h
end data
4.4 TUGAS
Buatlah program assembly menggunakan macro untuk mencetak 3 kalimat dipisah enter
Contoh : Yayasan Yapista
STT Ibnu Sina Batam
Teknik Informatika
MODUL ASSEMBLY LANJUT
9
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
V. OPERASI LAYAR
5.1 PROGRAM #14, MENCETAK 1 HURUF MENGGUNAKAN MEMORY LAYAR
cetak macro x,y,kal,atr
MOV AX,0B800h
MOV ES,AX ; ES Menunjuk pada segment layar
MOV AH,Y
MOV AL,160
MUL AH ; Hitung offset baris
MOV BX,AX ; Simpan hasilnya pada BX
MOV AH,X
MOV AL,2
MUL AH ; Hitung offset kolom
ADD BX,AX ; Tambahkan hasilnya pada BX
MOV AL,Kal ; AL=karakter yang akan ditampilkan
MOV AH,Atr ; AH=Atribut yang akan ditampilkan
MOV ES:BX, AL ; Tampilkan Karakter dan atributnya
MOV ES:BX+1,AH ; pada posisi kolom X dan baris Y
ENDM
;############### MACRO ###########
.MODEL SMALL
.CODE
ORG 100h
MODUL ASSEMBLY LANJUT
10
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
Proses :
cetak 40 23 'A' 95
INT 20h ;
END Proses
5.2 PROGRAM #15, MENCETAK BANYAK HURUF MENGGUNAKAN MEMORY LAYAR
cetak macro x,y,kal,atr
MOV AX,0B800h
MOV ES,AX ; ES Menunjuk pada segment layar
MOV AH,Y
MOV AL,160
MUL AH ; Hitung offset baris
MOV BX,AX ; Simpan hasilnya pada BX
MOV AH,X
MOV AL,2
MUL AH ; Hitung offset kolom
ADD BX,AX ; Tambahkan hasilnya pada BX
MOV AL,Kal ; AL=karakter yang akan ditampilkan
MOV AH,Atr ; AH=Atribut yang akan ditampilkan
MOV ES:BX, AL ; Tampilkan Karakter dan atributnya
MOV ES:BX+1, AH ; pada posisi kolom X dan baris Y
ENDM
;############### MACRO ###########
.MODEL SMALL
.CODE
ORG 100h
Proses :
cetak 40 15 'S' 95
MODUL ASSEMBLY LANJUT
11
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
cetak 41 15 'T' 97
cetak 42 15 'T' 65
cetak 40 17 'I' 23
cetak 41 17 'B' 35
cetak 42 17 'N' 63
cetak 43 17 'U' 58
cetak 40 19 'S' 14
cetak 41 19 'I' 37
cetak 42 19 'N' 33
cetak 43 19 'A' 48
END Proses
INT 20h
5.3 PROGRAM #16, MENCETAK ANIMASI MENGGUNAKAN MEMORY LAYAR
Delay MACRO x
LOCAL Ulang
mov dx, x
Ulang:
dec dx
cmp dx,0
jne ulang
ENDM
cetak macro x,y,kal,atr
MOV AX,0B800h
MOV ES,AX ; ES Menunjuk pada segment layar
MOV AH,Y
MOV AL,160
MUL AH ; Hitung offset baris
MOV BX,AX ; Simpan hasilnya pada BX
MOV AH,X
MOV AL,2
MUL AH ; Hitung offset kolom
ADD BX,AX ; Tambahkan hasilnya pada BX
MOV AL,Kal ; AL=karakter yang akan ditampilkan
MOV AH,Atr ; AH=Atribut yang akan ditampilkan
MOV ES:BX, AL ; Tampilkan Karakter dan atributnya
MOV ES:BX+1, AH ; pada posisi kolom X dan baris Y
ENDM
;############### MACRO ###########
.MODEL HUGE
.CODE
ORG 100h
MODUL ASSEMBLY LANJUT
12
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
Proses :
cetak 40 15 'S' 95
cetak 41 15 'T' 97
cetak 42 15 'T' 65
cetak 43 15 ' ' 58
;delay 1111h
cetak 40 15 'I' 23
cetak 41 15 'B' 35
cetak 42 15 'N' 63
cetak 43 15 'U' 58
;delay 1111h
cetak 40 15 'S' 14
cetak 41 15 'I' 37
cetak 42 15 'N' 33
cetak 43 15 'A' 48
;delay 1111h
jmp proses
INT 20h
end Proses
5.4 PROGRAM #17, TUGAS
5.5 MODIFIKASI PROGRAM #16, UBAH AGAR PROGRAM TERSEBUT DAPAT
MENGHITUNG BILANGAN PERTAMBAHAN, PENGURANGAN, DAN PERKALIAN
BANYAK BILANGAN SECARA SEKUENSIAL.
MODUL ASSEMBLY LANJUT
13
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
VI. OPERASI LAYAR LANJUT
6.1 PROGRAM #18, MENCETAK ANIMASI KALIMAT MENGGUNAKAN MEMORY
LAYAR
Delay MACRO x
LOCAL Ulang
mov dx,0h
Ulang:
inc dx
cmp dx,x
je ulang
ENDM
cetak macro x,y,kal,atr
MOV AX,0B800h
MOV ES,AX ; ES Menunjuk pada segment layar
MOV AH,Y
MOV AL,160
MUL AH ; Hitung offset baris
MOV BX,AX ; Simpan hasilnya pada BX
MOV AH,X
MOV AL,2
MUL AH ; Hitung offset kolom
ADD BX,AX ; Tambahkan hasilnya pada BX
MOV AL,kal ; AL=karakter yang akan ditampilkan
MOV AH,atr ; AH=Atribut yang akan ditampilkan
MODUL ASSEMBLY LANJUT
14
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
MOV ES:BX,AL ; Tampilkan Karakter dan atributnya
MOV ES:BX+1,AH ; pada posisi kolom X dan baris Y
ENDM
;############### MACRO ###########
.MODEL SMALL
.CODE
ORG 100h
data:
jmp proses
var db 'Yayasan Ibnu Sina Batam'
warna db 0fh
kolom db 017h
baris db 0fh
proses:
; Setiap selesai cetak kalimat, nol kan bx, set ulang
kolom ke 40d
xor bx,bx
mov ah,017h
mov kolom,ah
proses3:
push bx ; menyimpan nilai bx untuk dipakai lg
mov dl,var[bx]
cetak kolom baris dl warna
pop bx ; isi bx dari stack
; naikkan nilai warna
xor ah,ah
mov ah,warna
add ah,0Ah
mov warna,ah
; naikkan nilai kolom
xor ah,ah
mov ah,kolom
add ah,01h
mov kolom,ah
; sleep program dgn loop sebanyak 1111x agar animasi
terlihat
delay 0fffh
;naikkan nilai bx
inc bx
cmp bx,017H
push bx
MODUL ASSEMBLY LANJUT
15
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
je proses
loop proses3
loop proses
INT 20h
end data
VII. MANIPULASI STRING
7.1 PROGRAM #19, PENGULANGAN PADA STRING
.MODEL SMALL
.CODE
ORG 100h
TData: JMP Proses
Kalimat DB 'Donald Duck$' ; 12 karakter
Buffer DB 12 DUP(?)
Proses:
LEA SI,Kalimat ; SI = sumber
LEA DI,Buffer ; DI = tujuan
CLD ; Arah proses menaik
MOV CX,18 ; Banyaknya pengulangan
REP MOVSB ; ES:Buffer,Kalimat
; Pindahkan data
; 'kalimat' ke 'Buffer'
MOV AH,09 ;
LEA DX,Buffer ;
INT 21h ; Cetak Data pada Buffer
INT 20h
END TData
7.2 PROGRAM #20, PERBANDINGAN PADA STRING
Cetak_Klm MACRO Kal
MOV AH,09
LEA DX,Kal ; Macro untuk mencetak kalimat
INT 21h
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData: JMP Proses
MODUL ASSEMBLY LANJUT
16
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
Kal1 DB 'akjsdfhakjvhdf'
Kal2 DB 'akjsdfhakPvhdf'
Pesan1 DB 'Kedua kalimat yang dibandingkan sama ! $'
Pesan2 DB 'Kedua kalimat yang dibandingkan tidak
sama !$'
Proses:
LEA SI,Kal1
LEA DI,Kal2
CLD ; Arah proses menaik
MOV CX,14 ; Banyaknya perbandingan dilakukan
Ulang:
REP CMPSB ; Bandingkan selama sama
JNE TdkSama ; Jika tidak sama, lompat ke TdkSama
Cetak_Klm Pesan1 ; Cetak pesan tidak sama
JMP EXIT ; Selesai
TdkSama:
Cetak_Klm Pesan2 ; Cetak pesan sama
EXIT:
INT 20h
END TData
7.3 PROGRAM #21, OPERASI SCAN PADA STRING
Cetak_Klm MACRO Kal
MOV AH,09 ;
LEA DX,Kal ;
INT 21h ; Macro untuk mencetak kalimat
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData: JMP Proses
Cari DB 'akddtiuerndfalDfhdadfbn' ; 24 buah karakter
Ketemu DB ' Karakter ''s''yang dicari ketemu ! $'
Tidak DB ' Karakter ''s'' yang dicari tidak ketemu ! $'
Proses:
LEA DI,Cari ; Lokasi dari string yang diScan
MOV AL,'s' ; Karakter yang dicari
MOV CX,24 ; Banyaknya proses Scan
REPNE SCASB ; Scan sebanyak CX atau sampai ZF=1
JNZ Tdk_Ada ; Jika tidak ketemu, maka lompat!
Cetak_Klm Ketemu ; Cetak ketemu
JMP Exit ; Habis
Tdk_Ada:
Cetak_Klm Tidak ; Cetak tidak ketemu
EXIT: INT 20h ; Selesai
END TData
MODUL ASSEMBLY LANJUT
17
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
VIII. OPERASI BILANGAN
8.1 PROGRAM #20, MENCETAK ANGKA DESIMAL
.MODEL SMALL
.CODE
ORG 100h
TData:
JMP Proses
Test_Angka DW 65535 ; Angka yang akan dicetak
Proses:
MOV AX,Test_Angka ; AX = angka yang akan dicetak
MOV BX,10 ; BX = penyebut
XOR CX,CX ; CX = 0
Ulang:
XOR DX,DX ; Cegah sisa bagi menjadi pembilang !
DIV BX ; Bagi angka yang akan dicetak dengan 10
PUSH DX ; Simpan sisa bagi dalam stack
INC CX ; CX ditambah 1
CMP AX,0 ; Apakah hasil bagi sudah habis ?
JNE Ulang ; Jika belum, ulangi lagi !
Cetak:
POP DX ; Ambil 1 angka yang disimpan
ADD DL,'0' ; Ubah angka tersebut dalam kode ASCII
MOV AH,02 ;
INT 21h ; Cetak angka tersebut
LOOP Cetak ; ulangi
INT 20h
END Tdata
MODUL ASSEMBLY LANJUT
18
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
8.2 PROGRAM #21, MENCETAK ANGKA HEXADESIMAL
Cetak MACRO
MOV DL,Tabel_Hex[BX] ; MACRO untuk
MOV AH,02 ; mencetak
INT 21h ; huruf ke BX pada tabel_Hex
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData:
JMP Proses
Tabel_Hex DB '0123456789ABCDEF'
Test_Angka DB 255 ; Angka yang akan dicetak 255=FFh
Proses:
SUB BH,BH ; Jadikan BH=0
MOV BL,Test_Angka ; BL = angka yang akan dicetak
PUSH BX ; Simpan angka tersebut
MOV CL,4 ; Ambil 4 bit tinggi dari +
SHR BL,CL ; BL untuk dicetak
Cetak ; Cetak 1 angka hexa tingginya
POP BX ; Ambil angka yang disimpan
AND BL,0Fh ; Ambil 4 bit rendah dari +
Cetak ; BL untuk dicetak
INT 20h
END Tdata
MODUL ASSEMBLY LANJUT
19
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
IX. AKSES FILE
9.1 PROGRAM #22, MACRO UNTUK MEMBACA FILE
Read MACRO Handle,Number,Buffer
PUSH BX
PUSH CX
PUSH DX
MOV AH,3Fh
MOV BX,Handle
MOV CX,Number
LEA DX,Buffer
INT 21h
POP DX
POP CX
POP BX
ENDM
9.2 PROGRAM #23, MACRO UNTUK MEMBUAT FILE
Create MACRO NamaFile, Attribut, Handle
PUSH CX
PUSH DX
MOV AH,3Ch
MOV CX,Attribut
LEA DX,NamaFile
INT 21h
MOV Handle,AX
POP DX
POP CX
ENDM
MODUL ASSEMBLY LANJUT
20
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
9.3 PROGRAM #24, MENGHAPUS FILE
Delete MACRO Nama
MOV AH,41h ; Servis untuk menghapus file
LEA DX,Nama ; DS:DX menunjuk pada nama file
INT 21h
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData: JMP Proses
Error DB ' Sorry, File anda tidak bisa dihapus !',13,10
DB ' Anda harus menggunakan parameter ',13,10
DB ' seperti:
DB ' C:> Hapus FILE_X ',13,10,10
DB ' untuk menghapus file FILE_X $'
Proses: MOV DI,80h ; Alamat awal parameter
MOV AL,0Dh ; Karakter Enter
REPNE SCASB ; Cari karakter Enter
DEC DI ; DI menunjuk karakter Enter
MOV AL,0 ; Jadikan ASCIIZ
STOSB ; Letakkan byte 0 pada DS:[DI]
MOV DI,82h ; Awal String
Delete [DI] ; Hapus file parameter
JNC Exit ; Jika tidak ada kesalahan, Habis
MOV AH,09 ; Jika ada kesalahan
LEA DX,Error ; Tampilkan peringatan !
INT 21h
Exit:
INT 20h
END TData
9.4 PROGRAM #25, MENULIS PADA FILE
Write MACRO Handle,Number,Buffer
PUSH BX
PUSH CX
PUSH DX
MOV AH,40h
MOV BX,Handle
MOV CX,Number
LEA DX,Buffer
INT 21h
POP DX
POP CX
POP BX
ENDM
MODUL ASSEMBLY LANJUT
21
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
9.5 PROGRAM #26, MENUTUP FILE
Close MACRO Handle
PUSH BX
MOV AH,3Eh
MOV BX,Handle
INT 21h
POP BX
ENDM
MODUL ASSEMBLY LANJUT
22
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
X. GRAFIK
11.1 PROGRAM 26# , MEMBUAT GARIS HORIZONTAL DAN VERTIKAL
MENGGUNAKAN INTERUPT 10H SERVICE 013H
Readkey MACRO
MOV AH,00h
INT 16h
ENDM
SetCRT MACRO Mode
MOV AH,00h
MOV AL,Mode
INT 10h
ENDM
PutPixel MACRO X,Y,Warna
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,0Ch ; Servis menggambar pixel
MOV CX,X ; Posisi kolom atau X
MOV DX,Y ; Posisi baris atau Y
MOV AL,Warna ; Atribut Pixel
INT 10h ; Gambar pixel tersebut !
POP DX
POP CX
POP BX
POP AX
ENDM
MODUL ASSEMBLY LANJUT
23
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
GarisV MACRO X1,Y1,Panjang,Warna
LOCAL Ulang
PUSH DX
PUSH CX
push ax
mov ax,X1
MOV DX,Y1
MOV CX,Panjang
Ulang:
PutPixel AX,DX,Warna
INC DX
LOOP Ulang
pop ax
POP CX
POP DX
ENDM
GarisH MACRO X1,Y1,Panjang,Warna
LOCAL Ulang
PUSH DX
PUSH CX
push ax
mov ax,X1
MOV DX,Y1
MOV CX,Panjang
Ulang:
PutPixel ax,DX,Warna
INC ax
LOOP Ulang
pop ax
POP CX
POP DX
ENDM
;/===============================================;
; Program : GRAPH0.ASM ;
; Author : S’to ;
; Fungsi : Menggambar garis vertical ;
; dan horisontal ;
;===============================================/;
.MODEL small
.CODE
ORG 100h
MODUL ASSEMBLY LANJUT
24
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
Proses:
SetCRT 013h ; Aktifkan mode grafik 13h
GarisH 250,50,50,12 ; Gambar garis Horisontal
GarisV 250,50,50,12 ; Gambar garis Vertikal
SetCRT 03h ; Kembali pada mode Dos
INT 20h
END Proses
MODUL ASSEMBLY LANJUT
25
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
11.2 PROGRAM 27# , MEMBUAT OBYEK TULISAN DENGAN GARIS
Readkey MACRO
MOV AH,00h
INT 16h
ENDM
SetCRT MACRO Mode
MOV AH,00h
MOV AL,Mode
INT 10h
ENDM
PutPixel MACRO X,Y,Warna
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,0Ch ; Servis menggambar pixel
MOV CX,X ; Posisi kolom atau X
MOV DX,Y ; Posisi baris atau Y
MOV AL,Warna ; Atribut Pixel
INT 10h ; Gambar pixel tersebut !
POP DX
POP CX
POP BX
POP AX
ENDM
GarisV MACRO X1,Y1,Panjang,Warna
LOCAL Ulang
PUSH DX
PUSH CX
MODUL ASSEMBLY LANJUT
26
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
push ax
mov ax,X1
MOV DX,Y1
MOV CX,Panjang
Ulang:
PutPixel AX,DX,Warna
INC DX
LOOP Ulang
pop ax
POP CX
POP DX
ENDM
GarisH MACRO X1,Y1,Panjang,Warna
LOCAL Ulang
PUSH DX
PUSH CX
push ax
mov ax,X1
MOV DX,Y1
MOV CX,Panjang
Ulang:
PutPixel ax,DX,Warna
INC ax
LOOP Ulang
pop ax
POP CX
POP DX
ENDM
GambarObyek MACRO ; buat object 3 kubus
; S
GarisH 150,50,50,12
GarisV 150,50,50,15
GarisH 150,100,50,13
GarisV 200,100,50,15
GarisH 150,150,50,12
; T
GarisH 460,50,50,14
GarisV 485,50,100,13
; T
GarisH 540,50,50,12
GarisV 560,50,100,12
MODUL ASSEMBLY LANJUT
27
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
ENDM
;/===============================================;
; Author : Indra ;
; Fungsi : Menggambar object dengan garis ;
;===============================================/;
.MODEL SMALL
.CODE
ORG 100h
Proses:
SetCRT 13h ; Aktifkan mode grafik 13h
GambarObyek
readkey
SetCRT 03h ; Kembali pada mode Dos
INT 20h
END Proses
MODUL ASSEMBLY LANJUT
28
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
XI. GRAFIK LANJUT
12. 1 MENGGAMBAR OBYEK BEBAS, PROGRAM #28 MENGGUNAKAN INTERRUPT
10H /SERVICE 13H
Readkey MACRO ; Untuk menunggu masukan dari
MOV AH,00 ; Keyboard
INT 16h
ENDM
SetCRT MACRO Mode ; Untuk merubah mode layar
MOV AH,00 ;
MOV AL,Mode ;
INT 10h
ENDM
Pixel MACRO X,Y,Warna ; Untuk menggambar pixel
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,12 ; Servis menggambar pixel
MOV CX,X ; Posisi kolom atau X
MOV DX,Y ; Posisi baris atau Y
MOV AL,Warna ; Atribut Pixel
INT 10h ; Gambar pixel tersebut !
POP DX
POP CX
POP BX
POP AX
ENDM
;/====================================================;
; Program : ANIMATE1.ASM ;
; Author : S’to ;
; Fungsi : Menggambar helikopter ;
;====================================================/;
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Gambar DW 0000000000000000b,0000000000000000b
DW 0000000000011111b,1111100000000000b
MODUL ASSEMBLY LANJUT
29
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
DW 0000000000100000b,0000010000000000b
DW 0000000001000110b,0110010000000000b
DW 0011000000101110b,0111010000001100b
DW 0011100000100110b,0110001000011100b
DW 0011110001000000b,0000001000111100b
DW 0011111100000000b,0000000011111100b
DW 0011111000000000b,0000000000001100b
DW 0011010000000000b,0000000000101100b
DW 0011001000000000b,0000000001001100b
DW 0011000100000000b,0000000010001100b
DW 0011000001111111b,1111111000001100b
DW 0000000000000000b,0000000000000000b
DW 0000000000000000b,0000000000000000b
DW 0000000000000000b,0000000000000000b
DW 0000000000011111b,1111100000000000b
DW 0000000000100000b,0000010000000000b
DW 0000000001000110b,0110010000000000b
DW 0011000000101110b,0111010000001100b
DW 0011100000100110b,0110001000011100b
DW 0011110001000000b,0000001000111100b
DW 0011111100000000b,0000000011111100b
DW 0011111000000000b,0000000000001100b
DW 0011010000000000b,0000000000101100b
DW 0011001000000000b,0000000001001100b
DW 0011000100000000b,0000000010001100b
DW 0011000001111111b,1111111000001100b
DW 0000000000000000b,0000000000000000b
DW 0000000000000000b,0000000000000000b
DW 0000000000000000b,0000000000000000b
DW 0000000000011111b,1111100000000000b
DW 0000000000100000b,0000010000000000b
DW 0000000001000110b,0110010000000000b
DW 0011000000101110b,0111010000001100b
DW 0011100000100110b,0110001000011100b
DW 0011110001000000b,0000001000111100b
DW 0011111100000000b,0000000011111100b
DW 0011111000000000b,0000000000001100b
DW 0011010000000000b,0000000000101100b
DW 0011001000000000b,0000000001001100b
DW 0011000100000000b,0000000010001100b
DW 0011000001111111b,1111111000001100b
DW 0000000000000000b,0000000000000000b
DW 0000000000000000b,0000000000000000b
PosX DW 100 ; Posisi awal X
PosY DW 30 ; Posisi awal Y
Proses:
SetCRT 13h ; Aktifkan mode grafik
SUB BX,BX ;
MOV CX,45 ; CX=banyaknya baris
MODUL ASSEMBLY LANJUT
30
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
Ulang1:
PUSH CX
MOV CX,2 ; CX=banyaknya Word dalam 1 baris
Ulang2:
PUSH CX
MOV CX,16 ; CX=Banyaknya bit dalam 1 word
MOV AX,1000000000000000b
Ulang3:
PUSH AX
AND AX,Gambar[BX] ; Test bit Gambar yang ke AX
JZ Nol ; Jika nol, lompat
Pixel PosX,PosY,83 ; Jika tidak, gambar pixel
Nol:
POP AX ;
SHR AX,1 ;
INC PosX ; Tambah posisi X
LOOP Ulang3 ; Test bit Gambar berikutnya
ADD BX,2 ; Akses word berikutnya
POP CX
LOOP Ulang2 ; Test word berikutnya
INC PosY ;
SUB PosX,32 ; Kembalikan posisi X mula-mula
POP CX
LOOP Ulang1 ; Test word pada baris berikutnya
Exit:
Readkey
SetCRT 03h ; Aktifkan Mode default Dos
MODUL ASSEMBLY LANJUT
31
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
12. 2 MENGGAMBAR ANIMASI OBYEK BEBAS, PROGRAM #29 MENGGUNAKAN
INTERRUPT 10H /SERVICE 13H DENGAN KONTROL KEYBOARD
SetCRT MACRO Mode ; Untuk merubah mode layar
MOV AH,00 ;
MOV AL,Mode ;
INT 10h
ENDM
Pixel MACRO X,Y,Warna ; Untuk menggambar pixel
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,12 ; Servis menggambar pixel
MOV CX,X ; Posisi kolom atau X
MOV DX,Y ; Posisi baris atau Y
MOV AL,Warna ; Atribut Pixel
INT 10h ; Gambar pixel tersebut !
POP DX
POP CX
POP BX
POP AX
ENDM
Katak MACRO Gambar,Warna
LOCAL Ulang1,Ulang2,Ulang3,Nol,Ulang0,Ulang
PUSH AX ;
PUSH BX ; Simpan semua register yang
PUSH CX ; digunakan
PUSH DX ;
SUB BX,BX ;
MOV CX,15 ; CX=banyaknya baris
Ulang1:
PUSH CX
MOV CX,2 ; CX=banyaknya Word dalam 1 baris
Ulang2:
PUSH CX
MOV CX,16 ; CX=Banyaknya bit dalam 1 word
MOV AX,1000000000000000b
Ulang3:
PUSH AX
AND AX,Gambar[BX] ; Test bit Gambar yang ke AX
JZ Nol ; Jika nol, lompat
Pixel PosX,PosY,83 ; Jika tidak, gambar pixel
MODUL ASSEMBLY LANJUT
32
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
Nol:
POP AX ;
SHR AX,1 ;
INC PosX ; Tambah posisi X
LOOP Ulang3 ; Test bit Gambar berikutnya
ADD BX,2 ; Akses word berikutnya
POP CX
LOOP Ulang2 ; Test word berikutnya
INC PosY ;
SUB PosX,32 ; Kembalikan posisi X mula-mula
POP CX
LOOP Ulang1 ; Test word pada baris berikutnya
ENDM
BacaKey MACRO data
MOV AH,00d ; Keyboard
INT 16h
Local Kiri, Kanan
CMP AL,64h
JE Kanan
CMP AL,61h
JE Kiri
Kiri:
Katak data,00d
SUB PosX, 20
Katak data,16d
Kanan:
Katak data,00d
ADD PosX, 20
Katak data,48d
ENDM
;/====================================================;
; Program : ANIMATE1.ASM ;
; Author : Indra ;
; Fungsi : Menggambar Katak ;
;====================================================/;
.MODEL HUGE
.CODE
ORG 100h
TData: JMP Proses
Data DW 0000000000000000b,0000000000000000b
DW 0000000000011111b,1111100000000000b
DW 0000000000100000b,0000010000000000b
MODUL ASSEMBLY LANJUT
33
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
DW 0000000001000110b,0110010000000000b
DW 0011000000101110b,0111010000001100b
DW 0011100000100110b,0110001000011100b
DW 0011110001000000b,0000001000111100b
DW 0011111100000000b,0000000011111100b
DW 0011111000000100b,0010000000001100b
DW 0011010000001100b,0011000000101100b
DW 0011001001110010b,0100111001001100b
DW 0011000111100000b,0000011110001100b
DW 0011000001111111b,1111111000001100b
DW 0000000000000000b,0000000000000000b
DW 0000000000000000b,0000000000000000b
PosX DW 100 ; Posisi awal X
PosY DW 30 ; Posisi awal Y
Proses:
SetCRT 13h ; Aktifkan mode grafik
Katak Data,37d
BacaKey Data
Exit:
; Readkey
SetCRT 03h ; Aktifkan Mode default Dos
INT 20H
End Data
MODUL ASSEMBLY LANJUT
34
DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI
STT IBNU SINA BATAM
XII. REFERENSI
Gunawan, I. (2019). PEMROGRAMAN BAHASA ASSEMBLY MIKROPROSESOR 8086 (1 ed.).
Guepedia.
SELESAI

More Related Content

Similar to MODUL ASSEMBLY LANJUT

Pemograman debug Assemblay
Pemograman debug AssemblayPemograman debug Assemblay
Pemograman debug AssemblayFahrul Fuad
 
Trafic light program bascom avr
Trafic light program bascom avrTrafic light program bascom avr
Trafic light program bascom avrArisKurniawan49
 
Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9 Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9 Farichah Riha
 
Pascal - Pendahuluan2.txt - Notepad.pdf
Pascal - Pendahuluan2.txt - Notepad.pdfPascal - Pendahuluan2.txt - Notepad.pdf
Pascal - Pendahuluan2.txt - Notepad.pdfJurnal IT
 
Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 ahmad haidaroh
 
Operasi aritmatika register mikroprosesor
Operasi aritmatika register mikroprosesor Operasi aritmatika register mikroprosesor
Operasi aritmatika register mikroprosesor syahrunfacrezy
 
Laporan tugas2 interface_kelompok2
Laporan tugas2 interface_kelompok2Laporan tugas2 interface_kelompok2
Laporan tugas2 interface_kelompok2Leuly Dzulfiqar
 
Modul Praktikum Algoritma dan Pemrograman Visual Basic net
Modul Praktikum Algoritma dan Pemrograman Visual Basic netModul Praktikum Algoritma dan Pemrograman Visual Basic net
Modul Praktikum Algoritma dan Pemrograman Visual Basic netIgun
 
Membuat Sistem Operasi dengan Fasilitas Keyboard
Membuat Sistem Operasi dengan Fasilitas KeyboardMembuat Sistem Operasi dengan Fasilitas Keyboard
Membuat Sistem Operasi dengan Fasilitas KeyboardCynthia Caroline
 

Similar to MODUL ASSEMBLY LANJUT (16)

Pemograman debug Assemblay
Pemograman debug AssemblayPemograman debug Assemblay
Pemograman debug Assemblay
 
Tugas alogaritma
Tugas alogaritmaTugas alogaritma
Tugas alogaritma
 
Modul praktikum Bahasa assembly
Modul praktikum Bahasa assemblyModul praktikum Bahasa assembly
Modul praktikum Bahasa assembly
 
Trafic light program bascom avr
Trafic light program bascom avrTrafic light program bascom avr
Trafic light program bascom avr
 
Algoritma Pemrograman - Perintah Input/Output
Algoritma Pemrograman - Perintah Input/OutputAlgoritma Pemrograman - Perintah Input/Output
Algoritma Pemrograman - Perintah Input/Output
 
Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9 Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9
 
Trafic light[1]
Trafic light[1]Trafic light[1]
Trafic light[1]
 
Pascal - Pendahuluan2.txt - Notepad.pdf
Pascal - Pendahuluan2.txt - Notepad.pdfPascal - Pendahuluan2.txt - Notepad.pdf
Pascal - Pendahuluan2.txt - Notepad.pdf
 
Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7
 
Operasi aritmatika register mikroprosesor
Operasi aritmatika register mikroprosesor Operasi aritmatika register mikroprosesor
Operasi aritmatika register mikroprosesor
 
Open cut coal
Open cut coalOpen cut coal
Open cut coal
 
Laporan tugas2 interface_kelompok2
Laporan tugas2 interface_kelompok2Laporan tugas2 interface_kelompok2
Laporan tugas2 interface_kelompok2
 
Modul Praktikum Algoritma dan Pemrograman Visual Basic net
Modul Praktikum Algoritma dan Pemrograman Visual Basic netModul Praktikum Algoritma dan Pemrograman Visual Basic net
Modul Praktikum Algoritma dan Pemrograman Visual Basic net
 
Membuat Sistem Operasi dengan Fasilitas Keyboard
Membuat Sistem Operasi dengan Fasilitas KeyboardMembuat Sistem Operasi dengan Fasilitas Keyboard
Membuat Sistem Operasi dengan Fasilitas Keyboard
 
Alwin pascal-02
Alwin pascal-02Alwin pascal-02
Alwin pascal-02
 
Alwin pascal-02
Alwin pascal-02Alwin pascal-02
Alwin pascal-02
 

More from Igun

Developing Systems Application Based on Android as Tool for Determinant Stunt...
Developing Systems Application Based on Android as Tool for Determinant Stunt...Developing Systems Application Based on Android as Tool for Determinant Stunt...
Developing Systems Application Based on Android as Tool for Determinant Stunt...Igun
 
Bahan Ajar Basis Data
Bahan Ajar Basis DataBahan Ajar Basis Data
Bahan Ajar Basis DataIgun
 
Bahan Ajar Praktikum Basisdata
Bahan Ajar Praktikum BasisdataBahan Ajar Praktikum Basisdata
Bahan Ajar Praktikum BasisdataIgun
 
Praktikum Jaringan Komputer zeroshell
Praktikum Jaringan Komputer zeroshellPraktikum Jaringan Komputer zeroshell
Praktikum Jaringan Komputer zeroshellIgun
 
Bahan Ajar Sistem Game
Bahan Ajar Sistem GameBahan Ajar Sistem Game
Bahan Ajar Sistem GameIgun
 
Bahan Ajar Sistem Game
Bahan Ajar Sistem GameBahan Ajar Sistem Game
Bahan Ajar Sistem GameIgun
 
Modul praktikum Pemrograman web Backend dengan Codeigniter dan LTE
Modul praktikum Pemrograman web Backend dengan Codeigniter dan LTEModul praktikum Pemrograman web Backend dengan Codeigniter dan LTE
Modul praktikum Pemrograman web Backend dengan Codeigniter dan LTEIgun
 
Modul praktikum Pemrograman Frontend dengan Code Igniter dan Bootstrap
Modul praktikum Pemrograman Frontend dengan Code Igniter dan BootstrapModul praktikum Pemrograman Frontend dengan Code Igniter dan Bootstrap
Modul praktikum Pemrograman Frontend dengan Code Igniter dan BootstrapIgun
 
Modul praktikum Basisdata
Modul praktikum BasisdataModul praktikum Basisdata
Modul praktikum BasisdataIgun
 
Bahan Ajar Keamanan Komputer dan Jaringan
Bahan Ajar Keamanan Komputer dan JaringanBahan Ajar Keamanan Komputer dan Jaringan
Bahan Ajar Keamanan Komputer dan JaringanIgun
 
Modul Perkuliahan Bahasa Assembly
Modul Perkuliahan Bahasa AssemblyModul Perkuliahan Bahasa Assembly
Modul Perkuliahan Bahasa AssemblyIgun
 
Modul Praktikum Jaringan Komputer
Modul Praktikum Jaringan KomputerModul Praktikum Jaringan Komputer
Modul Praktikum Jaringan KomputerIgun
 
Bahan Ajar Sistem Game menggunakan Scratch
Bahan Ajar Sistem Game menggunakan ScratchBahan Ajar Sistem Game menggunakan Scratch
Bahan Ajar Sistem Game menggunakan ScratchIgun
 
Bahan Ajar Keamanan Informasi dan Jaringan
Bahan Ajar Keamanan Informasi dan JaringanBahan Ajar Keamanan Informasi dan Jaringan
Bahan Ajar Keamanan Informasi dan JaringanIgun
 
Decision Support System for Determination of Scholarship Using Scratch Progra...
Decision Support System for Determination of Scholarship Using Scratch Progra...Decision Support System for Determination of Scholarship Using Scratch Progra...
Decision Support System for Determination of Scholarship Using Scratch Progra...Igun
 
Developing systems application based on android as tool for determinant stunt...
Developing systems application based on android as tool for determinant stunt...Developing systems application based on android as tool for determinant stunt...
Developing systems application based on android as tool for determinant stunt...Igun
 
Buku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAW
Buku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAWBuku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAW
Buku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAWIgun
 
Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic
Analisis Malware Botnet Proteus  Pendekatan Static dan Dinamic Analisis Malware Botnet Proteus  Pendekatan Static dan Dinamic
Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic Igun
 
RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN SER...
RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN  SER...RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN  SER...
RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN SER...Igun
 
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAM
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN  TERBAIK PADA LAMOIST LAYERS BATAMSISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN  TERBAIK PADA LAMOIST LAYERS BATAM
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAMIgun
 

More from Igun (20)

Developing Systems Application Based on Android as Tool for Determinant Stunt...
Developing Systems Application Based on Android as Tool for Determinant Stunt...Developing Systems Application Based on Android as Tool for Determinant Stunt...
Developing Systems Application Based on Android as Tool for Determinant Stunt...
 
Bahan Ajar Basis Data
Bahan Ajar Basis DataBahan Ajar Basis Data
Bahan Ajar Basis Data
 
Bahan Ajar Praktikum Basisdata
Bahan Ajar Praktikum BasisdataBahan Ajar Praktikum Basisdata
Bahan Ajar Praktikum Basisdata
 
Praktikum Jaringan Komputer zeroshell
Praktikum Jaringan Komputer zeroshellPraktikum Jaringan Komputer zeroshell
Praktikum Jaringan Komputer zeroshell
 
Bahan Ajar Sistem Game
Bahan Ajar Sistem GameBahan Ajar Sistem Game
Bahan Ajar Sistem Game
 
Bahan Ajar Sistem Game
Bahan Ajar Sistem GameBahan Ajar Sistem Game
Bahan Ajar Sistem Game
 
Modul praktikum Pemrograman web Backend dengan Codeigniter dan LTE
Modul praktikum Pemrograman web Backend dengan Codeigniter dan LTEModul praktikum Pemrograman web Backend dengan Codeigniter dan LTE
Modul praktikum Pemrograman web Backend dengan Codeigniter dan LTE
 
Modul praktikum Pemrograman Frontend dengan Code Igniter dan Bootstrap
Modul praktikum Pemrograman Frontend dengan Code Igniter dan BootstrapModul praktikum Pemrograman Frontend dengan Code Igniter dan Bootstrap
Modul praktikum Pemrograman Frontend dengan Code Igniter dan Bootstrap
 
Modul praktikum Basisdata
Modul praktikum BasisdataModul praktikum Basisdata
Modul praktikum Basisdata
 
Bahan Ajar Keamanan Komputer dan Jaringan
Bahan Ajar Keamanan Komputer dan JaringanBahan Ajar Keamanan Komputer dan Jaringan
Bahan Ajar Keamanan Komputer dan Jaringan
 
Modul Perkuliahan Bahasa Assembly
Modul Perkuliahan Bahasa AssemblyModul Perkuliahan Bahasa Assembly
Modul Perkuliahan Bahasa Assembly
 
Modul Praktikum Jaringan Komputer
Modul Praktikum Jaringan KomputerModul Praktikum Jaringan Komputer
Modul Praktikum Jaringan Komputer
 
Bahan Ajar Sistem Game menggunakan Scratch
Bahan Ajar Sistem Game menggunakan ScratchBahan Ajar Sistem Game menggunakan Scratch
Bahan Ajar Sistem Game menggunakan Scratch
 
Bahan Ajar Keamanan Informasi dan Jaringan
Bahan Ajar Keamanan Informasi dan JaringanBahan Ajar Keamanan Informasi dan Jaringan
Bahan Ajar Keamanan Informasi dan Jaringan
 
Decision Support System for Determination of Scholarship Using Scratch Progra...
Decision Support System for Determination of Scholarship Using Scratch Progra...Decision Support System for Determination of Scholarship Using Scratch Progra...
Decision Support System for Determination of Scholarship Using Scratch Progra...
 
Developing systems application based on android as tool for determinant stunt...
Developing systems application based on android as tool for determinant stunt...Developing systems application based on android as tool for determinant stunt...
Developing systems application based on android as tool for determinant stunt...
 
Buku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAW
Buku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAWBuku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAW
Buku Infografis Sirah Nabawiyah Sejarah Nabi Muhammad SAW
 
Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic
Analisis Malware Botnet Proteus  Pendekatan Static dan Dinamic Analisis Malware Botnet Proteus  Pendekatan Static dan Dinamic
Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic
 
RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN SER...
RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN  SER...RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN  SER...
RANCANG BANGUN E-COMMERCE UNTUK MEMPERLUAS PASAR PRODUK PERLENGKAPAN DAN SER...
 
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAM
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN  TERBAIK PADA LAMOIST LAYERS BATAMSISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN  TERBAIK PADA LAMOIST LAYERS BATAM
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAM
 

MODUL ASSEMBLY LANJUT

  • 1. Dosen : Indra Gunawan, ST., M.Kom., CEH., CHFI MODUL ASSEMBLY LANJUT SEKOLAH TINGGI TEKNIK IBNU SINA BATAM 2018
  • 2. MODUL ASSEMBLY LANJUT 1 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM PRAKATA Untuk mendapatkan buku yang membahas Bahasa pemrograman Assembly secara mudah dengan disertai diagram alir, maka dapat membaca buku saya secara gratis di internet, silakan dilihat pada halaman referensi (Gunawan, 2019). I. INPUT KEYBOARD 1.1 PROGRAM #1, INTERUPT 21 SERVICE 1H .model small .code org 100h proses: mov ah,1h ; read input with echo mov dl, al int 21h loop proses int 20h end proses 1.2 PROGRAM #2, INTERUPT 21 SERVICE 0H .model small .code org 100h proses: mov ah,0h ;get keystroke without buffer, al : ascii int 16h cmp al,00 je extended jne biasa extended: mov ah,02h mov dl,al int 21h loop proses
  • 3. MODUL ASSEMBLY LANJUT 2 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM biasa: mov ah,02h mov dl,al int 21h loop proses end proses 1.3 PROGRAM #3, INTERUPT 21 SERVICE 0H .model small .code org 100h datadeh :jmp mulai var db 9,?,9 DUP(?) mulai: mov ah, 0ah ; only running in dosbox lea dx, var int 21h lea bx, var+2 print: mov ah,02h mov dl,[bx] int 21h int 20h end datadeh 1.4 PROGRAM #4, TUGAS Modifikasi Program #3, untuk mencetak nama masing-masing dipisah enter
  • 4. MODUL ASSEMBLY LANJUT 3 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM II. INPUT KEYBOARD LANJUT 2.1 PROGRAM #5, INTERUPT 21 SERVICE 0H .model small .code org 100h data :jmp proses var db 23,?,23 DUP(?) proses: mov ah, 0ah ; only running in dosbox lea dx, var int 21h xor bx,bx lea cx, var + 1 mov ah,02h cetak : mov dl,var + 2 int 21h inc bx loop cetak int 20h end data 2.2 PROGRAM #6, TUGAS Modifikasi program #5, buat 3 variabel berisi 2 jurusan, jika diinput xxx muncul jurusan pertama, jika diinput yyy muncul jurusan kedua.
  • 5. MODUL ASSEMBLY LANJUT 4 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM III. PROCEDURE 3.1 PROGRAM #7, MENCETAK HURUF MENGGUNAKAN PROCEDURE .model small .code org 100h ;################## PROCEDURE cetak proc near mov ah,02h mov dl, 'z' int 21h ret cetak endp ;################## PROCEDURE proses : call cetak int 20h end proses 3.2 Program #8, Mencetak huruf menggunakan procedure .model small .code org 100h
  • 6. MODUL ASSEMBLY LANJUT 5 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM ;################## PROCEDURE cetak1 proc near mov ah,02h mov dl, var[0] int 21h cetak1 endp cetak2 proc near mov ah,02h mov dl, var[1] int 21h cetak2 endp cetak3 proc near mov ah,02h mov dl, var[2] int 21h cetak3 endp cetak4 proc near mov ah,02h mov dl, var[3] int 21h ret cetak4 endp ;################## PROCEDURE data: jmp proses var db 'satu' proses: call cetak1 call cetak2 call cetak3 call cetak4 int 20h end data 3.3 PROGRAM #9, TUGAS MODIFIKASI PROGRAM #7 ATAU #8, BUAT PROGRAM ASSEMBLY UNTUK MENCETAK KALIMAT MENGGUNAKAN PROCEDURE.
  • 7. MODUL ASSEMBLY LANJUT 6 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM IV. MACRO 4.1 PROGRAM #10, PENGGUNAAN MACRO UNTUK MENCETAK HURUF ;########### MACRO ############ cetak macro x mov ah,02h mov dl,x int 21h endm ;########### MACRO ############ .model small .code org 100h proses : cetak 'a' cetak 'k' cetak 'u' int 20h end proses 4.2 PROGRAM #11, PENGGUNAAN MACRO UNTUK OPERASI ARITMATIKA
  • 8. MODUL ASSEMBLY LANJUT 7 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM ;################## MACRO hitung macro x, y, z mov ax, x mov bx, y add ax, bx add bx, z mul bx endm ;################## MACRO .model small .code org 100h proses: hitung 123h, 234h, 345h int 20h end proses 4.3 PROGRAM #12, PENGGUNAAN MACRO UNTUK MENCETAK HURUF ;################## MACRO cetak macro x mov ah,02h mov dl, x int 21h endm ;################## MACRO .model small .code org 100h proses : cetak 'z' int 20h end proses 4.4 PROGRAM #13, PENGGUNAAN MACRO MULTI VARIABLE
  • 9. MODUL ASSEMBLY LANJUT 8 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM ;################## MACRO cetak macro x, y, z, a mov dl, x int 21h mov dl, y int 21h mov dl, z int 21h mov dl, a int 21h endm ;################## MACRO .model small .code org 100h data:jmp proses var db 'satu' proses : mov ah,02h cetak var[0], var[1], var[2], var[3] int 20h end data 4.4 TUGAS Buatlah program assembly menggunakan macro untuk mencetak 3 kalimat dipisah enter Contoh : Yayasan Yapista STT Ibnu Sina Batam Teknik Informatika
  • 10. MODUL ASSEMBLY LANJUT 9 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM V. OPERASI LAYAR 5.1 PROGRAM #14, MENCETAK 1 HURUF MENGGUNAKAN MEMORY LAYAR cetak macro x,y,kal,atr MOV AX,0B800h MOV ES,AX ; ES Menunjuk pada segment layar MOV AH,Y MOV AL,160 MUL AH ; Hitung offset baris MOV BX,AX ; Simpan hasilnya pada BX MOV AH,X MOV AL,2 MUL AH ; Hitung offset kolom ADD BX,AX ; Tambahkan hasilnya pada BX MOV AL,Kal ; AL=karakter yang akan ditampilkan MOV AH,Atr ; AH=Atribut yang akan ditampilkan MOV ES:BX, AL ; Tampilkan Karakter dan atributnya MOV ES:BX+1,AH ; pada posisi kolom X dan baris Y ENDM ;############### MACRO ########### .MODEL SMALL .CODE ORG 100h
  • 11. MODUL ASSEMBLY LANJUT 10 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM Proses : cetak 40 23 'A' 95 INT 20h ; END Proses 5.2 PROGRAM #15, MENCETAK BANYAK HURUF MENGGUNAKAN MEMORY LAYAR cetak macro x,y,kal,atr MOV AX,0B800h MOV ES,AX ; ES Menunjuk pada segment layar MOV AH,Y MOV AL,160 MUL AH ; Hitung offset baris MOV BX,AX ; Simpan hasilnya pada BX MOV AH,X MOV AL,2 MUL AH ; Hitung offset kolom ADD BX,AX ; Tambahkan hasilnya pada BX MOV AL,Kal ; AL=karakter yang akan ditampilkan MOV AH,Atr ; AH=Atribut yang akan ditampilkan MOV ES:BX, AL ; Tampilkan Karakter dan atributnya MOV ES:BX+1, AH ; pada posisi kolom X dan baris Y ENDM ;############### MACRO ########### .MODEL SMALL .CODE ORG 100h Proses : cetak 40 15 'S' 95
  • 12. MODUL ASSEMBLY LANJUT 11 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM cetak 41 15 'T' 97 cetak 42 15 'T' 65 cetak 40 17 'I' 23 cetak 41 17 'B' 35 cetak 42 17 'N' 63 cetak 43 17 'U' 58 cetak 40 19 'S' 14 cetak 41 19 'I' 37 cetak 42 19 'N' 33 cetak 43 19 'A' 48 END Proses INT 20h 5.3 PROGRAM #16, MENCETAK ANIMASI MENGGUNAKAN MEMORY LAYAR Delay MACRO x LOCAL Ulang mov dx, x Ulang: dec dx cmp dx,0 jne ulang ENDM cetak macro x,y,kal,atr MOV AX,0B800h MOV ES,AX ; ES Menunjuk pada segment layar MOV AH,Y MOV AL,160 MUL AH ; Hitung offset baris MOV BX,AX ; Simpan hasilnya pada BX MOV AH,X MOV AL,2 MUL AH ; Hitung offset kolom ADD BX,AX ; Tambahkan hasilnya pada BX MOV AL,Kal ; AL=karakter yang akan ditampilkan MOV AH,Atr ; AH=Atribut yang akan ditampilkan MOV ES:BX, AL ; Tampilkan Karakter dan atributnya MOV ES:BX+1, AH ; pada posisi kolom X dan baris Y ENDM ;############### MACRO ########### .MODEL HUGE .CODE ORG 100h
  • 13. MODUL ASSEMBLY LANJUT 12 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM Proses : cetak 40 15 'S' 95 cetak 41 15 'T' 97 cetak 42 15 'T' 65 cetak 43 15 ' ' 58 ;delay 1111h cetak 40 15 'I' 23 cetak 41 15 'B' 35 cetak 42 15 'N' 63 cetak 43 15 'U' 58 ;delay 1111h cetak 40 15 'S' 14 cetak 41 15 'I' 37 cetak 42 15 'N' 33 cetak 43 15 'A' 48 ;delay 1111h jmp proses INT 20h end Proses 5.4 PROGRAM #17, TUGAS 5.5 MODIFIKASI PROGRAM #16, UBAH AGAR PROGRAM TERSEBUT DAPAT MENGHITUNG BILANGAN PERTAMBAHAN, PENGURANGAN, DAN PERKALIAN BANYAK BILANGAN SECARA SEKUENSIAL.
  • 14. MODUL ASSEMBLY LANJUT 13 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM VI. OPERASI LAYAR LANJUT 6.1 PROGRAM #18, MENCETAK ANIMASI KALIMAT MENGGUNAKAN MEMORY LAYAR Delay MACRO x LOCAL Ulang mov dx,0h Ulang: inc dx cmp dx,x je ulang ENDM cetak macro x,y,kal,atr MOV AX,0B800h MOV ES,AX ; ES Menunjuk pada segment layar MOV AH,Y MOV AL,160 MUL AH ; Hitung offset baris MOV BX,AX ; Simpan hasilnya pada BX MOV AH,X MOV AL,2 MUL AH ; Hitung offset kolom ADD BX,AX ; Tambahkan hasilnya pada BX MOV AL,kal ; AL=karakter yang akan ditampilkan MOV AH,atr ; AH=Atribut yang akan ditampilkan
  • 15. MODUL ASSEMBLY LANJUT 14 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM MOV ES:BX,AL ; Tampilkan Karakter dan atributnya MOV ES:BX+1,AH ; pada posisi kolom X dan baris Y ENDM ;############### MACRO ########### .MODEL SMALL .CODE ORG 100h data: jmp proses var db 'Yayasan Ibnu Sina Batam' warna db 0fh kolom db 017h baris db 0fh proses: ; Setiap selesai cetak kalimat, nol kan bx, set ulang kolom ke 40d xor bx,bx mov ah,017h mov kolom,ah proses3: push bx ; menyimpan nilai bx untuk dipakai lg mov dl,var[bx] cetak kolom baris dl warna pop bx ; isi bx dari stack ; naikkan nilai warna xor ah,ah mov ah,warna add ah,0Ah mov warna,ah ; naikkan nilai kolom xor ah,ah mov ah,kolom add ah,01h mov kolom,ah ; sleep program dgn loop sebanyak 1111x agar animasi terlihat delay 0fffh ;naikkan nilai bx inc bx cmp bx,017H push bx
  • 16. MODUL ASSEMBLY LANJUT 15 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM je proses loop proses3 loop proses INT 20h end data VII. MANIPULASI STRING 7.1 PROGRAM #19, PENGULANGAN PADA STRING .MODEL SMALL .CODE ORG 100h TData: JMP Proses Kalimat DB 'Donald Duck$' ; 12 karakter Buffer DB 12 DUP(?) Proses: LEA SI,Kalimat ; SI = sumber LEA DI,Buffer ; DI = tujuan CLD ; Arah proses menaik MOV CX,18 ; Banyaknya pengulangan REP MOVSB ; ES:Buffer,Kalimat ; Pindahkan data ; 'kalimat' ke 'Buffer' MOV AH,09 ; LEA DX,Buffer ; INT 21h ; Cetak Data pada Buffer INT 20h END TData 7.2 PROGRAM #20, PERBANDINGAN PADA STRING Cetak_Klm MACRO Kal MOV AH,09 LEA DX,Kal ; Macro untuk mencetak kalimat INT 21h ENDM .MODEL SMALL .CODE ORG 100h TData: JMP Proses
  • 17. MODUL ASSEMBLY LANJUT 16 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM Kal1 DB 'akjsdfhakjvhdf' Kal2 DB 'akjsdfhakPvhdf' Pesan1 DB 'Kedua kalimat yang dibandingkan sama ! $' Pesan2 DB 'Kedua kalimat yang dibandingkan tidak sama !$' Proses: LEA SI,Kal1 LEA DI,Kal2 CLD ; Arah proses menaik MOV CX,14 ; Banyaknya perbandingan dilakukan Ulang: REP CMPSB ; Bandingkan selama sama JNE TdkSama ; Jika tidak sama, lompat ke TdkSama Cetak_Klm Pesan1 ; Cetak pesan tidak sama JMP EXIT ; Selesai TdkSama: Cetak_Klm Pesan2 ; Cetak pesan sama EXIT: INT 20h END TData 7.3 PROGRAM #21, OPERASI SCAN PADA STRING Cetak_Klm MACRO Kal MOV AH,09 ; LEA DX,Kal ; INT 21h ; Macro untuk mencetak kalimat ENDM .MODEL SMALL .CODE ORG 100h TData: JMP Proses Cari DB 'akddtiuerndfalDfhdadfbn' ; 24 buah karakter Ketemu DB ' Karakter ''s''yang dicari ketemu ! $' Tidak DB ' Karakter ''s'' yang dicari tidak ketemu ! $' Proses: LEA DI,Cari ; Lokasi dari string yang diScan MOV AL,'s' ; Karakter yang dicari MOV CX,24 ; Banyaknya proses Scan REPNE SCASB ; Scan sebanyak CX atau sampai ZF=1 JNZ Tdk_Ada ; Jika tidak ketemu, maka lompat! Cetak_Klm Ketemu ; Cetak ketemu JMP Exit ; Habis Tdk_Ada: Cetak_Klm Tidak ; Cetak tidak ketemu EXIT: INT 20h ; Selesai END TData
  • 18. MODUL ASSEMBLY LANJUT 17 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM VIII. OPERASI BILANGAN 8.1 PROGRAM #20, MENCETAK ANGKA DESIMAL .MODEL SMALL .CODE ORG 100h TData: JMP Proses Test_Angka DW 65535 ; Angka yang akan dicetak Proses: MOV AX,Test_Angka ; AX = angka yang akan dicetak MOV BX,10 ; BX = penyebut XOR CX,CX ; CX = 0 Ulang: XOR DX,DX ; Cegah sisa bagi menjadi pembilang ! DIV BX ; Bagi angka yang akan dicetak dengan 10 PUSH DX ; Simpan sisa bagi dalam stack INC CX ; CX ditambah 1 CMP AX,0 ; Apakah hasil bagi sudah habis ? JNE Ulang ; Jika belum, ulangi lagi ! Cetak: POP DX ; Ambil 1 angka yang disimpan ADD DL,'0' ; Ubah angka tersebut dalam kode ASCII MOV AH,02 ; INT 21h ; Cetak angka tersebut LOOP Cetak ; ulangi INT 20h END Tdata
  • 19. MODUL ASSEMBLY LANJUT 18 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM 8.2 PROGRAM #21, MENCETAK ANGKA HEXADESIMAL Cetak MACRO MOV DL,Tabel_Hex[BX] ; MACRO untuk MOV AH,02 ; mencetak INT 21h ; huruf ke BX pada tabel_Hex ENDM .MODEL SMALL .CODE ORG 100h TData: JMP Proses Tabel_Hex DB '0123456789ABCDEF' Test_Angka DB 255 ; Angka yang akan dicetak 255=FFh Proses: SUB BH,BH ; Jadikan BH=0 MOV BL,Test_Angka ; BL = angka yang akan dicetak PUSH BX ; Simpan angka tersebut MOV CL,4 ; Ambil 4 bit tinggi dari + SHR BL,CL ; BL untuk dicetak Cetak ; Cetak 1 angka hexa tingginya POP BX ; Ambil angka yang disimpan AND BL,0Fh ; Ambil 4 bit rendah dari + Cetak ; BL untuk dicetak INT 20h END Tdata
  • 20. MODUL ASSEMBLY LANJUT 19 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM IX. AKSES FILE 9.1 PROGRAM #22, MACRO UNTUK MEMBACA FILE Read MACRO Handle,Number,Buffer PUSH BX PUSH CX PUSH DX MOV AH,3Fh MOV BX,Handle MOV CX,Number LEA DX,Buffer INT 21h POP DX POP CX POP BX ENDM 9.2 PROGRAM #23, MACRO UNTUK MEMBUAT FILE Create MACRO NamaFile, Attribut, Handle PUSH CX PUSH DX MOV AH,3Ch MOV CX,Attribut LEA DX,NamaFile INT 21h MOV Handle,AX POP DX POP CX ENDM
  • 21. MODUL ASSEMBLY LANJUT 20 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM 9.3 PROGRAM #24, MENGHAPUS FILE Delete MACRO Nama MOV AH,41h ; Servis untuk menghapus file LEA DX,Nama ; DS:DX menunjuk pada nama file INT 21h ENDM .MODEL SMALL .CODE ORG 100h TData: JMP Proses Error DB ' Sorry, File anda tidak bisa dihapus !',13,10 DB ' Anda harus menggunakan parameter ',13,10 DB ' seperti: DB ' C:> Hapus FILE_X ',13,10,10 DB ' untuk menghapus file FILE_X $' Proses: MOV DI,80h ; Alamat awal parameter MOV AL,0Dh ; Karakter Enter REPNE SCASB ; Cari karakter Enter DEC DI ; DI menunjuk karakter Enter MOV AL,0 ; Jadikan ASCIIZ STOSB ; Letakkan byte 0 pada DS:[DI] MOV DI,82h ; Awal String Delete [DI] ; Hapus file parameter JNC Exit ; Jika tidak ada kesalahan, Habis MOV AH,09 ; Jika ada kesalahan LEA DX,Error ; Tampilkan peringatan ! INT 21h Exit: INT 20h END TData 9.4 PROGRAM #25, MENULIS PADA FILE Write MACRO Handle,Number,Buffer PUSH BX PUSH CX PUSH DX MOV AH,40h MOV BX,Handle MOV CX,Number LEA DX,Buffer INT 21h POP DX POP CX POP BX ENDM
  • 22. MODUL ASSEMBLY LANJUT 21 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM 9.5 PROGRAM #26, MENUTUP FILE Close MACRO Handle PUSH BX MOV AH,3Eh MOV BX,Handle INT 21h POP BX ENDM
  • 23. MODUL ASSEMBLY LANJUT 22 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM X. GRAFIK 11.1 PROGRAM 26# , MEMBUAT GARIS HORIZONTAL DAN VERTIKAL MENGGUNAKAN INTERUPT 10H SERVICE 013H Readkey MACRO MOV AH,00h INT 16h ENDM SetCRT MACRO Mode MOV AH,00h MOV AL,Mode INT 10h ENDM PutPixel MACRO X,Y,Warna PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0Ch ; Servis menggambar pixel MOV CX,X ; Posisi kolom atau X MOV DX,Y ; Posisi baris atau Y MOV AL,Warna ; Atribut Pixel INT 10h ; Gambar pixel tersebut ! POP DX POP CX POP BX POP AX ENDM
  • 24. MODUL ASSEMBLY LANJUT 23 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM GarisV MACRO X1,Y1,Panjang,Warna LOCAL Ulang PUSH DX PUSH CX push ax mov ax,X1 MOV DX,Y1 MOV CX,Panjang Ulang: PutPixel AX,DX,Warna INC DX LOOP Ulang pop ax POP CX POP DX ENDM GarisH MACRO X1,Y1,Panjang,Warna LOCAL Ulang PUSH DX PUSH CX push ax mov ax,X1 MOV DX,Y1 MOV CX,Panjang Ulang: PutPixel ax,DX,Warna INC ax LOOP Ulang pop ax POP CX POP DX ENDM ;/===============================================; ; Program : GRAPH0.ASM ; ; Author : S’to ; ; Fungsi : Menggambar garis vertical ; ; dan horisontal ; ;===============================================/; .MODEL small .CODE ORG 100h
  • 25. MODUL ASSEMBLY LANJUT 24 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM Proses: SetCRT 013h ; Aktifkan mode grafik 13h GarisH 250,50,50,12 ; Gambar garis Horisontal GarisV 250,50,50,12 ; Gambar garis Vertikal SetCRT 03h ; Kembali pada mode Dos INT 20h END Proses
  • 26. MODUL ASSEMBLY LANJUT 25 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM 11.2 PROGRAM 27# , MEMBUAT OBYEK TULISAN DENGAN GARIS Readkey MACRO MOV AH,00h INT 16h ENDM SetCRT MACRO Mode MOV AH,00h MOV AL,Mode INT 10h ENDM PutPixel MACRO X,Y,Warna PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0Ch ; Servis menggambar pixel MOV CX,X ; Posisi kolom atau X MOV DX,Y ; Posisi baris atau Y MOV AL,Warna ; Atribut Pixel INT 10h ; Gambar pixel tersebut ! POP DX POP CX POP BX POP AX ENDM GarisV MACRO X1,Y1,Panjang,Warna LOCAL Ulang PUSH DX PUSH CX
  • 27. MODUL ASSEMBLY LANJUT 26 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM push ax mov ax,X1 MOV DX,Y1 MOV CX,Panjang Ulang: PutPixel AX,DX,Warna INC DX LOOP Ulang pop ax POP CX POP DX ENDM GarisH MACRO X1,Y1,Panjang,Warna LOCAL Ulang PUSH DX PUSH CX push ax mov ax,X1 MOV DX,Y1 MOV CX,Panjang Ulang: PutPixel ax,DX,Warna INC ax LOOP Ulang pop ax POP CX POP DX ENDM GambarObyek MACRO ; buat object 3 kubus ; S GarisH 150,50,50,12 GarisV 150,50,50,15 GarisH 150,100,50,13 GarisV 200,100,50,15 GarisH 150,150,50,12 ; T GarisH 460,50,50,14 GarisV 485,50,100,13 ; T GarisH 540,50,50,12 GarisV 560,50,100,12
  • 28. MODUL ASSEMBLY LANJUT 27 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM ENDM ;/===============================================; ; Author : Indra ; ; Fungsi : Menggambar object dengan garis ; ;===============================================/; .MODEL SMALL .CODE ORG 100h Proses: SetCRT 13h ; Aktifkan mode grafik 13h GambarObyek readkey SetCRT 03h ; Kembali pada mode Dos INT 20h END Proses
  • 29. MODUL ASSEMBLY LANJUT 28 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM XI. GRAFIK LANJUT 12. 1 MENGGAMBAR OBYEK BEBAS, PROGRAM #28 MENGGUNAKAN INTERRUPT 10H /SERVICE 13H Readkey MACRO ; Untuk menunggu masukan dari MOV AH,00 ; Keyboard INT 16h ENDM SetCRT MACRO Mode ; Untuk merubah mode layar MOV AH,00 ; MOV AL,Mode ; INT 10h ENDM Pixel MACRO X,Y,Warna ; Untuk menggambar pixel PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,12 ; Servis menggambar pixel MOV CX,X ; Posisi kolom atau X MOV DX,Y ; Posisi baris atau Y MOV AL,Warna ; Atribut Pixel INT 10h ; Gambar pixel tersebut ! POP DX POP CX POP BX POP AX ENDM ;/====================================================; ; Program : ANIMATE1.ASM ; ; Author : S’to ; ; Fungsi : Menggambar helikopter ; ;====================================================/; .MODEL SMALL .CODE ORG 100h TData : JMP Proses Gambar DW 0000000000000000b,0000000000000000b DW 0000000000011111b,1111100000000000b
  • 30. MODUL ASSEMBLY LANJUT 29 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM DW 0000000000100000b,0000010000000000b DW 0000000001000110b,0110010000000000b DW 0011000000101110b,0111010000001100b DW 0011100000100110b,0110001000011100b DW 0011110001000000b,0000001000111100b DW 0011111100000000b,0000000011111100b DW 0011111000000000b,0000000000001100b DW 0011010000000000b,0000000000101100b DW 0011001000000000b,0000000001001100b DW 0011000100000000b,0000000010001100b DW 0011000001111111b,1111111000001100b DW 0000000000000000b,0000000000000000b DW 0000000000000000b,0000000000000000b DW 0000000000000000b,0000000000000000b DW 0000000000011111b,1111100000000000b DW 0000000000100000b,0000010000000000b DW 0000000001000110b,0110010000000000b DW 0011000000101110b,0111010000001100b DW 0011100000100110b,0110001000011100b DW 0011110001000000b,0000001000111100b DW 0011111100000000b,0000000011111100b DW 0011111000000000b,0000000000001100b DW 0011010000000000b,0000000000101100b DW 0011001000000000b,0000000001001100b DW 0011000100000000b,0000000010001100b DW 0011000001111111b,1111111000001100b DW 0000000000000000b,0000000000000000b DW 0000000000000000b,0000000000000000b DW 0000000000000000b,0000000000000000b DW 0000000000011111b,1111100000000000b DW 0000000000100000b,0000010000000000b DW 0000000001000110b,0110010000000000b DW 0011000000101110b,0111010000001100b DW 0011100000100110b,0110001000011100b DW 0011110001000000b,0000001000111100b DW 0011111100000000b,0000000011111100b DW 0011111000000000b,0000000000001100b DW 0011010000000000b,0000000000101100b DW 0011001000000000b,0000000001001100b DW 0011000100000000b,0000000010001100b DW 0011000001111111b,1111111000001100b DW 0000000000000000b,0000000000000000b DW 0000000000000000b,0000000000000000b PosX DW 100 ; Posisi awal X PosY DW 30 ; Posisi awal Y Proses: SetCRT 13h ; Aktifkan mode grafik SUB BX,BX ; MOV CX,45 ; CX=banyaknya baris
  • 31. MODUL ASSEMBLY LANJUT 30 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM Ulang1: PUSH CX MOV CX,2 ; CX=banyaknya Word dalam 1 baris Ulang2: PUSH CX MOV CX,16 ; CX=Banyaknya bit dalam 1 word MOV AX,1000000000000000b Ulang3: PUSH AX AND AX,Gambar[BX] ; Test bit Gambar yang ke AX JZ Nol ; Jika nol, lompat Pixel PosX,PosY,83 ; Jika tidak, gambar pixel Nol: POP AX ; SHR AX,1 ; INC PosX ; Tambah posisi X LOOP Ulang3 ; Test bit Gambar berikutnya ADD BX,2 ; Akses word berikutnya POP CX LOOP Ulang2 ; Test word berikutnya INC PosY ; SUB PosX,32 ; Kembalikan posisi X mula-mula POP CX LOOP Ulang1 ; Test word pada baris berikutnya Exit: Readkey SetCRT 03h ; Aktifkan Mode default Dos
  • 32. MODUL ASSEMBLY LANJUT 31 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM 12. 2 MENGGAMBAR ANIMASI OBYEK BEBAS, PROGRAM #29 MENGGUNAKAN INTERRUPT 10H /SERVICE 13H DENGAN KONTROL KEYBOARD SetCRT MACRO Mode ; Untuk merubah mode layar MOV AH,00 ; MOV AL,Mode ; INT 10h ENDM Pixel MACRO X,Y,Warna ; Untuk menggambar pixel PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,12 ; Servis menggambar pixel MOV CX,X ; Posisi kolom atau X MOV DX,Y ; Posisi baris atau Y MOV AL,Warna ; Atribut Pixel INT 10h ; Gambar pixel tersebut ! POP DX POP CX POP BX POP AX ENDM Katak MACRO Gambar,Warna LOCAL Ulang1,Ulang2,Ulang3,Nol,Ulang0,Ulang PUSH AX ; PUSH BX ; Simpan semua register yang PUSH CX ; digunakan PUSH DX ; SUB BX,BX ; MOV CX,15 ; CX=banyaknya baris Ulang1: PUSH CX MOV CX,2 ; CX=banyaknya Word dalam 1 baris Ulang2: PUSH CX MOV CX,16 ; CX=Banyaknya bit dalam 1 word MOV AX,1000000000000000b Ulang3: PUSH AX AND AX,Gambar[BX] ; Test bit Gambar yang ke AX JZ Nol ; Jika nol, lompat Pixel PosX,PosY,83 ; Jika tidak, gambar pixel
  • 33. MODUL ASSEMBLY LANJUT 32 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM Nol: POP AX ; SHR AX,1 ; INC PosX ; Tambah posisi X LOOP Ulang3 ; Test bit Gambar berikutnya ADD BX,2 ; Akses word berikutnya POP CX LOOP Ulang2 ; Test word berikutnya INC PosY ; SUB PosX,32 ; Kembalikan posisi X mula-mula POP CX LOOP Ulang1 ; Test word pada baris berikutnya ENDM BacaKey MACRO data MOV AH,00d ; Keyboard INT 16h Local Kiri, Kanan CMP AL,64h JE Kanan CMP AL,61h JE Kiri Kiri: Katak data,00d SUB PosX, 20 Katak data,16d Kanan: Katak data,00d ADD PosX, 20 Katak data,48d ENDM ;/====================================================; ; Program : ANIMATE1.ASM ; ; Author : Indra ; ; Fungsi : Menggambar Katak ; ;====================================================/; .MODEL HUGE .CODE ORG 100h TData: JMP Proses Data DW 0000000000000000b,0000000000000000b DW 0000000000011111b,1111100000000000b DW 0000000000100000b,0000010000000000b
  • 34. MODUL ASSEMBLY LANJUT 33 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM DW 0000000001000110b,0110010000000000b DW 0011000000101110b,0111010000001100b DW 0011100000100110b,0110001000011100b DW 0011110001000000b,0000001000111100b DW 0011111100000000b,0000000011111100b DW 0011111000000100b,0010000000001100b DW 0011010000001100b,0011000000101100b DW 0011001001110010b,0100111001001100b DW 0011000111100000b,0000011110001100b DW 0011000001111111b,1111111000001100b DW 0000000000000000b,0000000000000000b DW 0000000000000000b,0000000000000000b PosX DW 100 ; Posisi awal X PosY DW 30 ; Posisi awal Y Proses: SetCRT 13h ; Aktifkan mode grafik Katak Data,37d BacaKey Data Exit: ; Readkey SetCRT 03h ; Aktifkan Mode default Dos INT 20H End Data
  • 35. MODUL ASSEMBLY LANJUT 34 DOSEN PENGAMPU : INDRA GUNAWAN, ST., M.KOM., CEH., CHFI STT IBNU SINA BATAM XII. REFERENSI Gunawan, I. (2019). PEMROGRAMAN BAHASA ASSEMBLY MIKROPROSESOR 8086 (1 ed.). Guepedia. SELESAI