Академический Документы
Профессиональный Документы
Культура Документы
MODUL 8
MACRO
INPUT :
AH = 0Ch
AL = Atribut dari pixel.
CX = Posisi kolom (X) tempat pixel akan digambar.
DX = Posisi baris (Y) tempat pixel akan digambar.
BH = Nomor halaman, jika modus video yang digunakan
memiliki halaman tampilan
melebihi satu. Jika modus yang digunakan hanya memakai 1
halaman tampilan, maka
isi BH akan diabaikan.
Lakukan perintah interrupt 10h.
Contoh :
1. MEMORY LAYAR
Pada layar disediakan suatu buffer atau memory yang
mencatat tentang apa
yang akan ditampilkan dilayar. Komputer akan membaca data
pada memory layar
untuk memperbaharui tampilan pada layar yang dilakukan
kurang lebih 70 kali
setiap detiknya. Cepatnya penulisan kembali gambar pada layar
ini dinamakan
sebagai "refresh rate".
Pada layar monitor monokrom(tidak berwarna), alamat
memory yang
digunakan sebagai buffer digunakan lokasi memory dimulai
pada alamat
B000h:0000. Pada monitor berwarna digunakan lokasi memory
mulai alamat
B800h:0000. Untuk pembahasaan kita selanjutnya akan selalu
digunakan alamat
buffer layar berwarna(B800h).
18.2. TAMPILAN TEKS PADA LAYAR
Pada modus teks, setiap saat komputer akan selalu melihat
pada alamat
B800h:0000 sebanyak satu byte untuk menampilkan karakter
ASCII pada posisi
kolom 0 dan baris 0. Kemudian alamat B800h:0001 digunakan
sebagai atribut dari
posisi kolom 0 dan baris 0. Alamat B800h:0002 digunakan
sebagai data untuk
menampilkan karakter ASCII pada posisi kolom 1 dan baris 0.
Dan alamat
B800h:0003 digunakan sebagai data untuk menampilkan atribut
dari posisi kolom
1 baris 0. Demikian seterusnya memory layar digunakan(Lihat
gambar 18.1).
<<< Gbr181.PIX >>>
Gambar 18.1. Penggunaan Memory Layar Untuk
Menampilkan Teks Dan Atributnya
Dari sini sudah dapat kita ketahui bahwa sebuah karakter pada
saat
ditampilkan dimonitor menggunakan 2 byte, dimana byte
pertama digunakan untuk
kode ASCII-nya dan byte berikutnya digunakan untuk atribut dari
karakter
tersebut.
Karena pada mode default, layar teks dibagi menjadi 80
kolom dan 25
baris(80*25), maka memory yang dibutuhkan untuk satu layar
adalah:
80 * 25 * 2 = 4000 Byte
Dengan alamat memory yang digunakan secara berurutan ini,
dimana te
akan menempati offset genap dan atribut menempati offset
ganjil, alamat da
posisi karakter maupun atribut bisa dihitung dengan
menggunakan rumus:
Offset Karakter = (Baris * 160) + (Kolom * 2)
Offset Atribut = (Baris * 160) + (Kolom * 2)+1
Dengan demikian bila kita ingin menampilkan karakter 'S' pada
posi
kolom 40 dan baris 12 maka alamat yang digunakan adalah:
(12*160)+(40*2)=200
atau tepatnya B800h:2000. Untuk menampilkan atribut pada
posisi kolom 40 d
baris 12 maka alamat yang digunakan adalah:
(12*160)+(40*2)+1=2001, at
tepatnya B800h:2001. Sebagai contohnya bisa anda lihat pada
program 18.1. ya
akan menampilkan karakter "S" pada posisi kolom 40 dan baris
12 deng
atributnya 95.
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
.MODEL SMALL
.CODE
ORG 100h
Proses :
Tulis_Kar 40 12 'S' 95 ; Tulis karakter 'S' dengan
; no atribut 95 pada posisi
INT 20h ; kolom 40 dan baris 12
END Proses
III. PEMBAHASAN
MACRO
Garis.mcr
readkey macro
mov ah,00
int 16h
endm
miring_kanan macro
x1,y1,panjang,warna
local ulang
push bx
push cx
push dx
mov dx,x1
mov bx,y1
mov cx,panjang
ulang :
putpixel dx,bx,warna
inc dx
inc bx
loop ulang
pop dx
pop cx
pop bx
endm
miring_kiri macro
x1,y1,panjang,warna
local ulang
push bx
push cx
push dx
mov dx,x1
mov bx,y1
mov cx,panjang
ulang :
putpixel dx,bx,warna
dec dx
inc bx
loop ulang
pop dx
pop cx
pop bx
endm
Garis VNH.asm
include garis.mcr
.model small
.code
org 100h
proses:
setcrt 13h
garisv 100,50,50,1
readkey
garisv 200,75,50,2
readkey
garish 125,100,50,3
readkey
garish 150,150,50,4
readkey
setcrt 03h
int 20h
end proses
Hasil Program
IV. PENJELASAN
Penjelasan :
include garis.mcr
.model small
.code
org 100h
proses:
setcrt 13h
Miring_Kanan 150,50,50,5
readkey
Miring_Kiri 200,100,50,6
readkey
Miring_Kanan 100,100,50,7
readkey
Miring_Kiri 150,50,50,8
readkey
setcrt 03h
int 20h
end proses
HASIL PROGRAM
Penjelasan Program :
Miring_Kanan 150,50,50,5
Miring_Kiri 200,100,50,6
Miring_Kanan 100,100,50,7
Miring_Kiri 150,50,50,8
KOTAK.asm
include garis.mcr
.model small
.code
org 100h
proses:
setcrt 13h
kotak 120,30,180,100,12
readkey
setcrt 03h
int 20h
end proses
HASIL PROGRAM
Penjelasan Porgram :
IV.KESIMPULAN