彙編高手幫幫忙!急正確的追加50分

時間 2021-06-07 14:39:28

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樓:頹廢_小胖

我的思路是用死迴圈在埠讀寫時間並顯示,一輸入完數字除了用埠改寫時間之外,再立即修改鍵盤中斷。等按下去退出就恢復原鍵盤中斷入口。

彙編高手幫幫忙,彙編高手幫幫忙

如果是學組合語言專門的就是 ibm pc組合語言程式設計 清華 沈美明的那本 至於16為還是32位這個好象都是要學的,不過現在一般都是16位的吧。至於那個tasm5.0,我只聽說過masm5.0 不好意思,不過現在彙編應該用的比較多的是masm5.0下面有使用方法 1.開始 執行 輸入 cmd 沒有...

高分彙編程式設計,高手來幫幫忙

有彙編和c轉化的軟體 for i 0 i 9 i for j i 1 j 10 j if a i a j 這個c是對的不過你還少了點東西.下面的彙編我倒是看的很對但是有點還是沒有看明白.你的意思是每次si和di都因該加2是在儲存資料時佔用的2個位元組. data segment assume ds ...