kuis assembly dono
; ------
; kuis2.asm
; 0104920292 - 4pct
; #01.940623.940623.13.$01
; ------
PAGE 59,132
kuis2 segment
assume cs:kuis2,ds:kuis2
org 100h
command:
jmp start
author db 13,10,'*** Demo String Putar-putar - '
db '(w)0104920292 ***',10
db 13,10,'Input String : $'
crlf db 13,10,'$'
outstr db 13, 'Output String : $'
quitstr db 13,10,10,'*** Done ***',13,10,'$'
inp_rec db 26 ; input max 25 char
len_inp db ? ; var penampung panjang input
inpstr db 27 dup ('$') ; var penampung string putar-putar
start:
push cs
pop es ; seg.es = seg.cs
mov ax,3
int 10h ; cls
lea dx,author ; cetak nama
call printstr
mov ah,0ah ; read string ke inpstr
lea dx,inp_rec
int 21h
mov cx,2020h ; kursor hilang
call chg_curs
lea dx,crlf ; writeln
call printstr
main_loop:
lea si,inpstr
call rollstr ; putar string dengan
; dari awal inpstr sampai '$'
lea dx,outstr
call printstr
lea dx,inpstr ; cetak string terputar
call printstr
call keypress
cmp al,0 ; if keypressed then quit
jne short quit
jmp main_loop
quit:
lea dx,quitstr
call printstr
mov cx,09h ; kursor muncul
call chg_curs
mov ax,4c00h ; back to dos
int 21h
;--- procs
rollstr proc near
xor cx,cx
mov cl,len_inp
or cl,cl ; quit if cl=0
jz @psquit
dec cl
add si,cx
mov al,byte ptr [si]
mov tmp_ch,al ; tampung huruf paling kanan
@llop:
mov bl,byte ptr [si-1]
mov byte ptr [si],bl ; move string ke kanan
dec si ; sebanyak satu langkah
call delayer
loop @llop
mov al,tmp_ch
mov byte ptr [si],al
@psquit:
ret
tmp_ch db ? ; variabel penampung
rollstr endp ; huruf paling kanan
printstr proc near
push ax
mov ah,9
int 21h
pop ax
ret
printstr endp
chg_curs proc near
push ax
mov ah,1
int 10h
pop ax
ret
chg_curs endp
keypress proc near ; function keypressed
mov ah,6 ; keypressed := al <> 0
mov dl,0ffh
xor al,al
int 21h
ret
keypress endp
delayer proc near
push cx
mov cx,0ffffh
@looop:
loop @looop
pop cx
ret
delayer endp
kuis2 ends
end command
; --- eof---
and nowadays instead of using the code above, we are talking about writing codes for running on top of virtual machine on the server...
useless education? ;P
0 Comments:
Post a Comment
<< Home