Assalamua'laikum wr.wb
baiklah
kali ini saya akan menshare program menu sorot pada assembly , menu sorot disini yaitu sebuah menu pada program ini setelah dieksekusi akan memilih program yang kita enter . baiklah langsung saja ikuti
langkah-langkah nya berikut ini :
LANGKAI_LANGKAH Kerjanya sebagai berikut:
1. Jalankan DOSBox 0.74 dengan mengklik menu start dibawah dekstop / dengan klik tombol windows pada keyboard + R
setelah dklik maka akan muncul seperti pada gambar berikut
setelah itu ketik Mount E C:\TASM .
Setelah itu ketik E: , kemudian ketik edit dan enter
setelah itu akan muncul lembar kerja edit bewarna biru seperti dibawah ini :
2. Kemudian ketikan perintah seperti perintah dibawah ini pada lembar kerja tersebut tersebut
DELAY MACRO
PUSH CX
XOR CX,CX
LOOP1:
LOOP LOOP1
POP CX
ENDM
GESER MACRO PosY
PUSH AX
PUSH BX
PUSH CX
XOR CX,CX
MOV AL,26
SUB AL,PosY
MOV CL,AL
LOOP2:
MOV AL,BYTE PTR ES:[BX]
MOV BYTE PTR ES: [BX+160], AL
HILANG:
MOV BYTE PTR ES:[BX],’ ‘
DELAY
ADD BX,160
LOOP LOOP2
POP CX
POP BX
POP AX
ENDM
Cls MACRO ; Macro untuk menghapus layar
MOV AX,0600h
XOR CX,CX
MOV DX,184Fh
MOV BH,10 ; Atribut Hijau diatas hitam
INT 10h
ENDM
GotoXY MACRO X,Y ; Macro untuk memindahkan kursor
MOV AH,02
XOR BX,BX
MOV DH,Y
MOV DL,X
INT 10h
ENDM
SimpanL MACRO ; Macro untuk menyimpan seluruh
LOCAL Ulang ; isi layar monitor
MOV AX,0B800h
MOV ES,AX
MOV CX,4000
XOR BX,BX
Ulang:
MOV AL,ES:[BX]
MOV Layar[BX],AL
INC BX
LOOP Ulang
ENDM
BalikL MACRO ; Macro untuk mengembalikan semua
LOCAL Ulang ; isi layar yang telah disimpan
MOV CX,4000
XOR BX,BX
Ulang:
MOV AL,Layar[BX]
MOV ES:[BX],AL
INC BX
LOOP Ulang
ENDM
Sorot MACRO X,Y ; Macro untuk membuat sorotan
LOCAL Ulang ; pada menu
MOV BL,Y
MOV AL,160
MUL BL
MOV BX,AX
MOV AL,X
MOV AH,2
MUL AH
ADD BX,AX
INC BX ; Alamat warna pada posisi X,Y
MOV CX,15 ; Panjangnya sorotan
Ulang:
MOV BYTE PTR ES:[BX],4Fh ; Atribut sorotan
; putih diatas merah
ADD BX,2
LOOP Ulang
ENDM
Readkey MACRO ; Macro untuk membaca masukan dari
MOV AH,00 ; keyboard.
INT 16h ; hasilnya AH=Extended, AL=ASCII
ENDM
MenuL MACRO String ; Macro untuk mencetak menu
MOV AH,09
LEA DX,String
INT 21h
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData: JMP Proses
Layar DB 4000 DUP (?)
Menu DB 9,9,’+=============================+’,13,10
DB 9,9,’| >>> MENU SOROT <<< |’,13,10
DB 9,9,’+================================+’,13,10
DB 9,9,’| |’,13,10
DB 9,9,’| 1. Huruf Warna |’,13,10
DB 9,9,’| 2. Huruf tidak berwarna |’,13,10
DB 9,9,’| 3. Rontok |’,13,10
DB 9,9,’| 4. selesai |’,13,10
DB 9,9,’+=================================+$’
PosX DB 22 ; Posisi kolom mula-mula
PosY DB 12 ; Posisi baris mula-mula
Panah_Atas EQU 72 ; Kode tombol panah atas
Panah_Bawah EQU 80 ; Kode tombolpanah bawah
TEnter EQU 0Dh ; Kode tombol Enter
Proses :
Cls ; Hapus layar
GotoXY 0 8 ; kursor = 0,8
MenuL Menu ; Gambar menu
SimpanL ; Simpan isi layar
Ulang :
BalikL ; Tampilkan isi layar yang
; disimpan
Sorot PosX,PosY ; Sorot posisi X,Y
Masukan:
Readkey ; Baca masukan dari keyboard
CMP AH,Panah_Bawah ; Panah bawah yang ditekan ?
JE Bawah ; Ya! lompat bawah
CMP AH,Panah_Atas ; Panah atas yang ditekan ?
JE CekY ; Ya, lompat CekY
CMP AL,TEnter ; Tombol enter yang ditekan ?
je pilihan
JNE Masukan ; Bukan, lompat ke ulangi
CekY :
CMP PosY,12 ; Apakah sorotan paling atas ?
JE MaxY ; Ya! lompat ke MaxY
DEC PosY ; Sorotkan ke atas
JMP Ulang ; Lompat ke ulang
MaxY :
MOV PosY,15 ; PosY=Sorotan paling bawah
JMP Ulang ; lompat ke ulang
Bawah :
CMP PosY,15 ; apakah sorotan paling bawah ?
JE NolY ; Ya! lompat ke NolY
INC PosY ; Sorotkan ke bawah
JMP Ulang ; Lompat ke ulang
NolY :
MOV PosY,12 ; Sorotan paling atas
JMP Ulang ; Lompat ke ulang
pilihan:cmp posy,12
je warna
cmp posy,13
je huruf
cmp posy,14
je rontok
cmp posy,15
jmp selesai2
huruf: cls
gotoxy 25 10
mov ah,02h
mov dl,’A’
mov cx,26
huruf2:
int 21h
add dl,1
loop huruf2
jmp Masukan
Warna: cls
gotoxy 25 10
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna:
int 10h
add bl,1
loop repwarna
mov ah,02h
mov dl,’A’
mov cx,26
repwarna2:
int 21h
add dl,1
loop repwarna2
jmp Masukan
rontok: JMP Prontok
Prontok:
gotoxy 25 10
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna4:
int 10h
add bl,1
loop repwarna4
gotoxy 5 10
mov ah,02h
mov dl,’A’
mov cx,26
repwarna5:
int 21h
add dl,1
loop repwarna5
mov ah,02h
mov dl,’A’
mov cx,26
repwarna3:
int 21h
add dl,1
loop repwarna3
MOV AX,0B800H
MOV ES,AX
MOV BX,3998
MOV CX,25
ULANGY:
MOV PosY,CL
PUSH CX
MOV CX,80
ULANGX:
CMP BYTE PTR ES:[BX],33
JB TdK
GESER PosY
TdK:
SUB BX,2
LOOP ULANGX
POP CX
LOOP ULANGY
jmp masukan
selesai2 : jmp selesai
Selesai:cls
INT 20h
END TData
setelah selesai simpan file (file > save as) sorot.asm seperti gambar dibawah ini:
Setelah itu pilih File-exit
3. Kemudian jalankan program dengan cara seperti berikut:
maka akan tampil menu seperti:
Dan ketika kita menyorot no.1 maka akan tampil seperti:
Ketika kita menyorot pada no.2
Maka akan tampil seperti berikut:
Ketika kita menyorot pada no.3
Maka akan tampil seperti berikut:
Ketika kita menyorot pada no.4
Maka program akan keluar seperti berikut:
Artikel ini dapat didownload
Disini
semoga bermanfaat :)
Sekian
dulu penjelasan postingan kali ini :)
Tunggu
terus ya postingan selanjutnya :) Semoga bermanfaat :)
jangan lupa untuk memberikan + pada materi ini dan blognya :)
Jazzakumullah
khoiron katsiron , nun walqolami wama yasturun , Wassalamua’laikum wr.wb :)
Belum ada tanggapan untuk "Membuat Menu Sorot Pada Assembly"
Post a Comment