|
一个极简单的数字时间显示,见笑啦!
- getHight macro x
- mov cl,4
- mov al,x
- shr al,cl
- add al,30h
- endm
- getLow macro x
- mov al,x
- and al,0fh
- add al,30h
- endm
- data segment
- count db 0ffh
- sec db ?
- min db ?
- hour db ?
- time db '00:00:00','$'
- data ends
- code segment
- assume cs:code,ds:data
- start:
- push ds
- sub ax,ax
- push ax
- mov ax,data
- mov ds,ax
- getTime:
- mov ah,02h
- int 1ah
- cmp dh,count
- jz getTime
- mov count,dh
- mov hour,ch
- mov min,cl
- mov sec,dh
- getHight hour
- mov time[0],al
- getLow hour
- mov time[1],al
- getHight min
- mov time[3],al
- getLow min
- mov time[4],al
- getHight sec
- mov time[6],al
- getLow sec
- mov time[7],al
- call show
- jmp getTime
- ;*********************************
- show proc
- mov dh,5
- mov dl,4
- mov bl,07h ;color
- mov bh,0
- mov cx,1
- lea di,time
- goon:
- mov ah,02h ;设置光标位置的中断
- int 10h
- mov al,[di]
- cmp al,'$'
- jz exit
- mov ah,09h
- int 10h
- inc di
- inc dl
- jmp goon
- exit: ret
- show endp
- code ends
- end start
复制代码 |
|