1樓:
;太長了
code segment
assume cs:code,ds:codeorg 100h
start:
push cs
pop ds
mov ax,3
int 10h
mov ax,0b800h
mov es,ax
cldq0:lea dx,tips ;提示輸入時間mov ah,9
int 21h
;輸入當前時、分、秒值
call input_bcd
mov hh,al
mov ax,0e3ah ;':'
int 10h
call input_bcd
mov mm,al
mov ax,0e3ah ;':'
int 10h
call input_bcd
mov dh,al
mov ch,hh
cmp ch,23h
ja q1
mov cl,mm
cmp cl,59h
ja q1
cmp dh,59h
jbe q2
q1:lea dx,err
mov ah,9
int 21h
jmp q0
q2:mov ah,3
int 1ah
call xssj
mov ah,4ch
int 21h
input_bcd:
mov cl,4
call key
shl al,cl
mov dl,al
call key
add al,dl
retkey:
mov ah,0
int 16h
cmp al,'0'
jb key
cmp al,'9'
ja key
mov ah,0eh
int 10h
sub al,'0'
retxssj:
mov di,(80*10+30)*2
t1:mov ah,04 ;cx=2009 dx=0222int 1ah;讀取日期
;出口引數:cx=年,dx=月/日
mov al,ch;顯示年
call disp
mov al,cl
call disp
mov al,'-'
stosb
mov al,0ah;綠色
stosb
mov al,dh;顯示月
call disp
mov al,'-'
stosb
mov al,0ah;綠色
stosb
mov al,dl;顯示日
call disp
mov al,20h
stosb
mov al,0ah;綠色
stosb
mov ah,02 ;cx=1252 dx=0300int 1ah;讀取當前時間
;出口引數:cx=時/分;dh=秒
mov al,ch;顯示時
call disp
mov al,':'
stosb
mov al,0ah;綠色
stosb
mov al,cl;顯示分
call disp
mov al,':'
stosb
mov al,0ah;綠色
stosb
mov al,dh;顯示秒
call disp
mov ah,01
int 16h;讀鍵盤
jz xssj ;無字元輸入,繼續顯示時間mov ah,0
int 16h
cmp al,1bh
jnz xssj
retdisp:
push cx
mov ah,al
mov cx,4
shr al,cl
and al,0fh
or al,30h
stosb
mov al,0ah;綠色
stosb
mov al,ah
and al,0fh
or al,30h
stosb
mov al,0ah;綠色
stosb
pop cx
rettips db ' input current time'
db 0dh,0ah,' hh:mm:ss $'
err db 0dh,0ah,'input error!',0dh,0ah,'$'
hh db 0
mm db 0
code ends
end start
2樓:頹廢_小胖
我的思路是用死迴圈在埠讀寫時間並顯示,一輸入完數字除了用埠改寫時間之外,再立即修改鍵盤中斷。等按下去退出就恢復原鍵盤中斷入口。
彙編高手進來幫幫忙,彙編高手進來幫幫忙!!!!!!!
燭秋 不是高手路過,練練手 data segment grade dw 87,89,52,63,47,95,100,52,96,88 rank dw 10 dup output db ranking 0dh,0ah,data ends code segment assume cs code,ds d...
急 是高手的大哥大姐幫幫忙懸賞50分
博誠 如果你的機子使用都很正常 那應該沒關係 可能是因為驅動問題 可以選擇重新安裝驅動 或者不理會 你是不是板載的有個網絡卡,又在pci插了個網絡卡?所以你停用了一個照樣可以上網 不會是你的網絡卡以前有人新的時候說壞的,讓你買了塊新的插上去?解決辦法如果正常上網就繼續停用 沒必要2個網絡卡開著白白佔...