Ari Usman Chaniago
Berbagi itu Indah
; Program : JMPL.ASM ;
; Fungsi : Mencetak kalimat secara perkarakter ;
;================================================/;
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Kal DB ‘ Lucky Luck menembak ‘,13,10
DB ‘Lebih cepat dari bayangannya !! ‘,7,7,’‘ Proses: XOR BX,BX ; BX=0 MOV AH,02h ; Servis Untuk Cetak Karakter Ulang: CMP Kal[BX],’‘ ; Bandingkan dengan ‘*’
JE Exit ; Jika Sama Lompat ke Exit
MOV DL,Kal[BX] ; Masukkan karakter ke BX menuju DL
INT 21h ; Cetak karakter
INC BX ; Tambah 1 pada BX
JMP Ulang ; Lompat Ke Ulang
Exit: INT 20h ; Selesai ! kembali ke DOS
END TData
;Program Cetak Karakter
.model small
.code
org 100h
Tdata: JMP Proses
T_ASCII DB 13,10,’ini adalah tombol ASCII:$’
T_extended DB 13,10, ‘ini adalah tombol extended:$’
proses: mov ah,0h ;servis input satu karakter
int 16h ;laksanakan
push ax ;simpan hasil pembacaan pada stack
cmp al,00h; apakah ini karakter extended?
JE Extended ;ya!, lompat ke extended
ASCII: LEA Dx,T_ASCII ;ambil alamat efektif T_ASCII
mov ah,09h ;servis cetak kalimat
int 21h ;cetak kalimat
pop ax ;ambil code ascii yang ditekan
mov ah,02h ;servis cetak karakter
int 21h ;cetak karakter
cmp al,’Q’ ;apakah yang ditekan ‘Q’?
jE exit ;ya!, lompat ke exit
cmp AL,’q’ ;apakah yang ditekan ‘q’?
JE exit ;ya!,lompat ke exit
JMP Proses ;lompat ke proses
extended :
LEA dx,T_Extended ;ambil alamat T_extended
MOV AH,09h
int 21h
JMP Proses
exit: int 20h; kembali ke dos
end Tdata