cabin0120 发表于 2007-11-18 15:12

输出年月日的问题

<P>要求输入年月日,并输出.若输入错误则提示错误信息<BR>下面是我编的程序,但是调试不出来,望高手帮我看看,谢谢了<BR>DATAS SEGMENT<BR>DATA1 DB 'INPUTERORR','$';此处输入数据段代码 <BR>DATA2 DB 'YOU INPUT THE DATE IS ',13,10<BR>DATA3 DB 4 DUP(?),'-'<BR>DATA4 DB 2 DUP(?),'-'<BR>DATA5 DB 2 DUP(?),'$'<BR>A1    DB 'please input the year:',13,10,'$'<BR>B1    db 'please input the month:',13,10,'$'<BR>C1    db 'please input the data:',13,10,'$'<BR>DATAS ENDS</P>
<P>STACKS SEGMENT<BR>    ;此处输入堆栈段代码<BR>STACKS ENDS</P>
<P>CODES SEGMENT<BR>    ASSUME CS:CODES,DS:DATAS,SS:STACKS<BR>START:<BR>    MOV AX,DATAS<BR>    MOV DS,AX<BR>    MOV CX,0FFFH<BR> XL:MOV DL,7<BR>    MOV AH,2<BR>    INT 21H<BR>    LOOP XL<BR>    <BR>    LEA SI,DATA3<BR>    LEA DX,A1<BR>    MOV AH,9<BR>    INT 21H<BR> Y: MOV CX,4<BR>    MOV AH,1 <BR>    INT 21H<BR>    MOV [SI],AL<BR>    INC SI<BR>    LOOP Y<BR>    <BR>    LEA DX,B1<BR>    MOV AH,9<BR>    INT 21H<BR>    LEA SI,DATA4<BR>    MOV CX,2<BR> M: MOV AH,1<BR>    INT 21H<BR>    MOV [SI],AL<BR>    INC SI<BR>    LOOP M<BR>    LEA SI,DATA4<BR>    MOV AL,[SI]<BR>    CMP AL,'0'<BR>    JZ  M1<BR>    CMP AL,'1'<BR>    JZ M2<BR>    JMP MISS<BR> M1:INC SI<BR>    MOV AL,[SI]<BR>    CMP AL,'1'<BR>    JZ  D1<BR>    CMP AL,'2'<BR>    JZ  D3<BR>    CMP AL,'3'<BR>    JZ  D1<BR>    CMP AL,'4'<BR>    JZ  D2<BR>    CMP AL,'5'<BR>    JZ  D1<BR>    CMP AL,'6'<BR>    JZ  D2<BR>    CMP AL,'7'<BR>    JZ  D1<BR>    CMP AL,'8'<BR>    JZ  D1<BR>    CMP AL,'9'<BR>    JZ  D2<BR>    JMP MISS<BR> M2:INC SI<BR>    MOV AL,[SI]<BR>    CMP AL,'0'<BR>    JZ  D1<BR>    CMP AL,'1'<BR>    JZ  D2<BR>    CMP AL,'2'<BR>    JZ  D1<BR>    JMP MISS<BR>    <BR>D1: LEA DX,C1<BR>    MOV AH,9<BR>    INT 21H<BR>    LEA SI,DATA5<BR>    MOV CX,2<BR> DN:MOV AL,1<BR>    INT 21H<BR>    MOV [SI],AL<BR>    INC SI<BR>    LOOP DN<BR>    LEA SI,DATA5<BR>    MOV AL,[SI]<BR>    CMP AL,'0'<BR>    JZ Q1<BR>    CMP AL,'1'<BR>    JZ Q2<BR>    CMP AL,'2'<BR>    JZ Q2<BR>    CMP AL,'3'<BR>    JZ Q3<BR>    JMP MISS<BR>    <BR> D2:LEA DX,C1<BR>    MOV AH,9<BR>    INT 21H<BR>    LEA SI,DATA5<BR>    MOV CX,2<BR> DN1:MOV AL,1<BR>    INT 21H<BR>    MOV [SI],AL<BR>    INC SI<BR>    LOOP DN1<BR>    LEA SI,DATA5<BR>    MOV AL,[SI]<BR>    CMP AL,'0'<BR>    JZ Q1<BR>    CMP AL,'1'<BR>    JZ Q2<BR>    CMP AL,'2'<BR>    JZ Q2<BR>    CMP AL,'3'<BR>    JZ Q4<BR>    JMP MISS<BR>  <BR> D3:LEA DX,C1<BR>    MOV AH,9<BR>    INT 21H<BR>    LEA SI,DATA5<BR>    MOV CX,2<BR>DN2:MOV AL,1<BR>    INT 21H<BR>    MOV [SI],AL<BR>    INC SI<BR>    LOOP DN2<BR>    LEA SI,DATA5<BR>    MOV AL,[SI]<BR>    CMP AL,'0'<BR>    JZ  Q1<BR>    CMP AL,'1'<BR>    JZ Q2<BR>    CMP AL,'2'<BR>    JZ Q5<BR>    JMP MISS<BR>    <BR>    <BR>    <BR> Q1:INC SI<BR>    MOV AL,[SI]<BR>    CMP AL,'1'<BR>    JB MISS<BR>    CMP AL,'9'<BR>    JA MISS<BR>    JMP WANC<BR>  Q2:INC SI<BR>     MOV AL,[SI]<BR>     CMP AL,'0'<BR>     JB MISS<BR>     CMP AL,'9'<BR>     JA MISS<BR>     JMP WANC<BR>   Q3:INC SI<BR>      MOV AL,[SI]<BR>      CMP AL,'0'<BR>      JB MISS<BR>      CMP AL,'1'<BR>      JA MISS<BR>      JMP WANC<BR>  Q4:INC SI<BR>     MOV AL,[SI]<BR>     CMP AL,'0'<BR>     JNZ MISS<BR>     JMP WANC<BR>  Q5:INC SI<BR>     MOV AL,[SI] <BR>     CMP AL,'0'<BR>     JB MISS<BR>     CMP AL,'8'<BR>     JA MISS<BR>     JMP WANC   <BR>    <BR>    <BR>    <BR>    <BR>  WANC:LEA DX,DATA2<BR>     MOV AH,9<BR>     INT 21H<BR>     JMP JSH  <BR>    <BR>MISS:LEA DX,DATA1<BR>     MOV AH,9<BR>     INT 21H<BR>     JMP XL   <BR>    <BR> JSH:MOV AH,4CH<BR>     INT 21H<BR>CODES ENDS<BR>    END START</P>

永夜的极光 发表于 2007-11-18 19:14

<FONT color=#ff0000>Y: MOV CX,4</FONT><BR>    MOV AH,1 <BR>    INT 21H<BR>    MOV [SI],AL<BR>    INC SI<BR>    LOOP Y<BR><BR>标号位置错了,你这样死循环定了.<BR><BR>后面的还没看,如果还是不行你再说,还有我建议你写点注释吧,不然看起来比较累

wubizao 发表于 2007-11-26 08:56

我看的眼好花啊
还是比较喜欢看注释加小写地[em12]

页: [1]

编程论坛