先谢谢了!

解决方案 »

  1.   

    时间输入格式:16:23:58.27(时:分:秒.1/100秒)      (在纯dos下)  DATA SEGMENT
    message2 db ' Please enter the time:','$'
    BUF2 DB 12,?;定义一缓冲区,存放输入的时间
    time1 db ?
    time2 db ?
    time3 db ?
    time4 db ?
    time5 db ?
    time6 db ?
    time7 db ?
    time8 db ?
    time9 db ?
    time10 db ?
    time11 db ?
    ORG 10H
    DATA ENDSCODE SEGMENT
      ASSUME  CS:CODE,DS:DATA
    START:
        MOV AX,DATA
        MOV DS,AX
     
      lea dx,message2;调用9号中断,显示提示语句
      mov ah,9
      int 21h    MOV DX,OFFSET BUF2;调用0A中断,输入时间到缓冲区
      MOV AH,0AH
      INT 21H  mov bl,10;BL置如10,用作乘数
      mov cx,0;将CX置零    
      MOV al,time1;将输入时间的小时位的十位数移入AL
      sub al,30h;转换为ASCII码
      mul bl;乘以10
      add ch,al;与CH相加  MOV al,time2;将输入时间的小时位的个位数移入AL
      sub al,30h;转换为ASCII码
      add ch,al;于CH相加,得到小时位,存在CH  ;以下为计算分钟位,存在CL
      MOV al,time4
      sub al,30h
      mul bl
      add cl,al  MOV al,time5
      sub al,30h
      add cl,al  ;以下为计算秒位,存在DH
      mov dx,0
      mov al,time7
      sub al,30h
      mul bl
      add dh,al  MOV al,time8
      sub al,30h
      add dh,al  ;以下为计算1/100秒位,存在DL
      mov al,time10
      sub al,30h
      mul bl
      add dl,al  MOV al,time11
      sub al,30h
      add dl,al  mov ah,2dh;调用2D号中断,设置时间  
      int 21h   MOV AH,4CH
      INT 21H
    CODE ENDS
    END START 日期输入格式:2007-03-21DATA SEGMENT
    message1 db 'Please enter the date:','$'
    BUF1 DB 11,?
    date1 db ?
    date2 db ?
    date3 db ?
    date4 db ?
    date5 db ?
    date6 db ?
    date7 db ?
    date8 db ?
    date9 db ?
    date10 db ?
    DATA ENDS
    CODE SEGMENT
      ASSUME  CS:CODE,DS:DATA
    START:
        MOV AX,DATA
        MOV DS,AX
      lea dx,message1
      mov ah,9
      int 21h    
        MOV DX,OFFSET BUF1
        MOV AH,0AH
        INT 21H
      mov cx,0    
      MOV Al,date1
      sub al,30h
      mov bx,1000
      mov ah,0
      mul bx
      add cx,ax
      mov al,date2
      sub al,30h
      mov bl,100
      mul bl
      add cx,ax
      mov al,date3
      sub al,30h
      mov bl,10
      mul bl
      add cx,ax
      mov al,date4
      sub al,30h
      mov ah,0
      add cx,ax
      mov dx,0
      mov al,date6
      sub al,30h
      mul bl
      add dh,al
      mov al,date7
      sub al,30h
      add dh,al
      mov al,date9
      sub al,30h
      mul bl
      add dl,al
      mov al,date10
      sub al,30h
      add dl,al
      mov ah,2bh 
      int 21h  
      MOV AH,4CH
      INT 21H
    CODE ENDS
    END START