|
上次写的那个是自己手动输入一个数,然后进行判断,不是很好.
今天无聊在网上看了下DOS功能调用 INT21中有个读出系统时间(2CH)功能.
用启动时间的秒来制作系统自动把这个数藏起来.所以就以秒来藏这个数,
CH:小时(0-23), CL:分(0-59) DH:秒(0-59) DL:百分秒(0-99),在这我用的是DH,秒进行藏数。
代码有点乱(我自己写完看了边都吃劲),调试方面太慢,现在才知道高级语言比较简单。
写了我2个小时的小程序,无聊发出来,希望能给写汇编的有点帮助吧。
这是成品样子。如果拿高级语言写的话,有几行代码就写出来了。
下面是我写的代码!
hh macro n
rept n
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
endm
endm
dss1 segment
xs1 db 'shuru:10-99,deshu',13,10,36
cw1 db 'dale!',13,10,36
cw2 db 'xiaole!',13,10,36
zq1 db 'zhengque!',13,10,36
cf1 db 0,0
cf2 db 0,0
dss1 ends
css1 segment
assume cs:css1,ds:dss1
ks1:
mov ax,dss1
mov ds,ax
mov ah,2ch
int 21h
xor bx,bx
xor ax,ax
mov al,dh
daa
mov dh,al
mov bh,al
and dh,0fH
add dh,30h
mov cf1,dh
mov cl,4
shr bh,cl
add bh,30h
mov [cf1+1],bh
call sc1
hh 1
mov dx,offset zq1
mov ah,9
int 21h
mov ah,1
int 21h
mov ah,4ch
int 21h
sc1 proc
bjks:
mov dx,offset xs1
mov ah,9
int 21h
mov ah,1
int 21h
mov cf2,al
mov ah,1
int 21h
mov [cf2+1],al
hh 1
xor bx,bx
mov bl,cf1
cmp bl,cf2
ja bdy
jb bdy1
mov bl,[cf1+1]
cmp bl,[cf2+1]
ja bdy
jb bdy1
jz js1
hh 1
bdy:
mov dx,offset cw2
mov ah,9
int 21h
jmp bjks
bdy1:
mov dx,offset cw1
mov ah,9
int 21h
jmp bjks
js1:
ret
sc1 endp
css1 ends
end ks1
==================================================代码结束线 |
评分
-
查看全部评分
|