;求一個程式,微機原理,8086組合語言,實現一個簡單實用功能,如時鐘顯示
;
;在右上角顯示時鐘,按任一鍵結束
;用MASM5.0編譯透過.
data segment
HH DB 0,0,":"
MM DB 0,0,":"
SS1 DB 0,0
data ends
code segment
main proc far
assume cs:code
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
AGAIN:
mov ah,2ch ;讀取系統時間 CH:CL--時:分 DH:DL--秒:百分秒
int 21h
MOV BX ,OFFSET HH
MOV AL,CH
CALL C16_10 ;轉換AL中16進製為10進位制,並填入相應位置
MOV BX ,OFFSET MM
MOV AL,CL ;分
CALL C16_10
MOV BX ,OFFSET SS1
MOV AL,DH ;秒
MOV AH,2 ;游標定位
MOV DH,0 ;首行
MOV DL,70 ;70列
MOV BH,0
INT 10H
MOV CX,8
MOV SI,OFFSET HH
NN1:
MOV AH,0EH ;電傳方式寫字元(一次1個)
MOV AL,[SI]
MOV BL,0
INC SI
LOOP NN1
MOV AH,1
INT 16H
JNZ DOWN ;按任一鍵結束
JMP AGAIN
DOWN:
RET
main endp
;============
C16_10 PROC NEAR
PUSH CX ;將AL中的16進位制轉為10進位制
MOV AH,0
MOV CX,10D
DIV CL
ADD AX,3030H
MOV [BX],AL
INC BX
MOV [BX],AH
POP CX
C16_10 ENDP
;=============
code ends
end start
;求一個程式,微機原理,8086組合語言,實現一個簡單實用功能,如時鐘顯示
;
;在右上角顯示時鐘,按任一鍵結束
;用MASM5.0編譯透過.
data segment
HH DB 0,0,":"
MM DB 0,0,":"
SS1 DB 0,0
data ends
code segment
main proc far
assume cs:code
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
AGAIN:
mov ah,2ch ;讀取系統時間 CH:CL--時:分 DH:DL--秒:百分秒
int 21h
MOV BX ,OFFSET HH
MOV AL,CH
CALL C16_10 ;轉換AL中16進製為10進位制,並填入相應位置
MOV BX ,OFFSET MM
MOV AL,CL ;分
CALL C16_10
MOV BX ,OFFSET SS1
MOV AL,DH ;秒
CALL C16_10
MOV AH,2 ;游標定位
MOV DH,0 ;首行
MOV DL,70 ;70列
MOV BH,0
INT 10H
MOV CX,8
MOV SI,OFFSET HH
NN1:
MOV AH,0EH ;電傳方式寫字元(一次1個)
MOV AL,[SI]
MOV BL,0
INT 10H
INC SI
LOOP NN1
MOV AH,1
INT 16H
JNZ DOWN ;按任一鍵結束
JMP AGAIN
DOWN:
RET
main endp
;============
C16_10 PROC NEAR
PUSH CX ;將AL中的16進位制轉為10進位制
MOV AH,0
MOV CX,10D
DIV CL
ADD AX,3030H
MOV [BX],AL
INC BX
MOV [BX],AH
POP CX
RET
C16_10 ENDP
;=============
code ends
end start