PROGRAM PENGURANGAN DENGAN 1 (DEC)
.model small
.code
org 100h
mulai:
mov ah,02h
mov dl,'D'
mov cx,4
ulang:
int 21h
DEC dl
loop ulang
int 20h
end mulai
penjelasan :
Program tersebut akan menghasilkan sebuah output yaitu DCBA
Mov cx,4 (program akan melakukan perulangan sebanyak 4x dengan nilai dari D terus berkurang satu)
dec dl (perintah untuk melakukan pengurangan terhadap nilai D)
Perintah DEC (Decrement) digunakan khusus untuk pengurangan dengan 1.
PROGRAM MENCELAK A,C,E,G...Y
.model small
.code
org 100h
mulai:
mov ah,02h
mov dl,'A'
mov cx, 13
ulang:
int 21h
inc dl
inc dl
loop ulang
int 20h
end mulai
output :
penjelasan :
Program tersebut akan menghasilkan sebuah output yaitu A,C,E,G...Y
Mov cx, 13 (Jumlah semua huruf abjad adalah 26, output yang kita inginkan adalah A,C..Y. nilai dari A ke C adalah selisih 2. Maka 26/2 hasilnya adalah 13 artinya kita hanya memerlukan perulangan sebanyak 13x)
PROGRAM UNTUK MENCETAK A-Z DAN Z-A
.model small
.code
org 100h
mulai:
mov ah,02h
mov dl,'A'
mov cx, 26
ulang:
int 21h
inc dl
loop ulang
mov dl,'Z'
mov cx, 26
ulang1:
int 21h
dec dl
loop ulang1
int 20h
end mulai
output :
penjelasan :
Mov dl, ‘A’ (program akan menjalan dimulai dari huruf A)
Mov cx, 26 (karena jumlah seluruh huruf 26, maka komputer akan melakukan perulangna sebanyak 26x)
Mov dl, ‘Z’ (program akan menjalankan dimulai dari huruf Z)
Mov cx, 26 (karena jumlah seluruh huruf 26, maka komputer akan melakukan perulangna sebanyak 26x)
Jika pada label pertama sudah menggunakan label ulang, maka pada label selanjutnya harus menggunakan nama label yang lain.
PROGRAM MEMBAT BACKGROUND HURUF BERWARNA (attribut karakter)
.model small
.code
org 100h
mulai:
mov ah, 09h
mov al,'Z'
mov bh,00h
mov bl,11001101b
mov cx,26
ulang:
int 10h
dec al
loop ulang
int 20h
end mulai
output :
Penjelasan :
Atribute :
Contoh Atribute :
Background : Hijau
Foreground : Biru
Intensitas : Rendah
BL = 00100001b
PROGRAM MENAMPILKAN KALIMAT (STRING)
.model small
.code
org 100h
mulai:
jmp proses
vcal db 'nama :ichi$'
vcal1 db 10,'alamat :bukateja$'
vcal2 db 10,'email : ichikucing@gmail.com$'
vcal3 db 10,'hobi : tidur$'
proses:
mov ah,09h
lea dx,vcal
int 21h
lea dx,vcal1
int 21h
lea dx, vcal2
int 21h
lea dx, vcal3
int 21h
int 20h
end mulai
output :
Penjelasan :
Vcal adalah nama dari variabel
Masing-masing variable harus berbeda nama dengan var yang lainnya dan
10 adalah kode supaya program melakukan enter
09, digunakan untuk TAB
LEA adalah perintah untuk mendapatkan alamat dari sebuah variable.
Syntaknya adalah : LEA variable
Contoh : lea dx, vcal
Int 21h berpasangan dengan int 20h berfungsi untuk menampilkan output ke layar.
PROGRAM INPUTAN MEMBUAT PASSWORD (inputan)
.model small
.code
org 100h
mulai:
jmp proses
vcal db 10, 'MASUKAN PASSWORD : $'
vcal1 db 'INCORRECT$'
vcal2 db 10,'WELLCOME GUYS.... :-) $'
proses:
mov ah, 09h
lea dx,vcal
int 21h
mov ah,07h
int 21h
cmp al,'Y'
je ya1
jne tidak1
ya1:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah,07h
int 21h
cmp al,'O'
je ya2
jne tidak2
tidak1:
mov ah,09h
lea dx,vcal1
int 21h
jmp proses
ya2:
mov ah,02h
mov dl, 2AH
int 21h
mov ah,07h
int 21h
cmp al,'U'
je ya3
jne tidak3
tidak2:
mov ah,09h
lea dx,vcal
int 21h
jmp proses
ya3:
mov ah,02h
mov dl,2Ah
int 21h
mov ah,07h
int 21h
cmp al,'R'
je ya4
jne tidak4
tidak3:
mov ah,09h
lea dx,vcal
int 21h
jmp proses
ya4:
mov ah,02h
mov dl,2Ah
int 21h
mov ah, 09h
lea dx, vcal2
int 21h
int 20h
tidak4:
mov ah, 09h
lea dx, vcal1
int 21h
jmp proses
end mulai
output :
Penjelasan :
Untuk melakukan penginputan bisa menggunakan service antara lain :
Mov ah,01 dengan int 21h
Mov ah,07 dengan int 21h
Mov ah,08 dengan int 21h
Program tersebut bekerja dengan cara membandingkan inputan dengan constanta yang yang disimpan didalam register AL.
Perintah JMP(Jump), sudah pernah kita gunakan, dimana perintah ini digunakan
untuk melompati daerah data program.
Perintah CMP(Compare) digunakan untuk membandingkan 2 buah operand.
JE
Lompat, jika Operand1 = Operand2 JNE
Lompat, jika Operand1 tidak sama
dengan Operand2
0 komentar:
Posting Komentar