小小汇编 请高手出招
执行完 YEAR的值仍然为0 帮帮忙啊STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT ;数据段
YEAR DW 0 ;输入的年份
CLEW1 DB 'Please input year(1949-2049):','$' ;输入提示信息1
CLEW4 DB 0DH,0AH,'ERROR! Please input a number',0DH,0AH,'$' ;错误提示信息1
CLEW5 DB 0DH,0AH,'ERROR! Please input 1949-2049',0DH,0AH,'$' ;错误提示信息2
DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始化
MOV DS,AX
L: MOV DX,OFFSET CLEW1 ;提示输入年份
MOV AH,9
INT 21H
MOV BX,0 ;初始化BX,用来存放四位数的年份
MOV CX,4 ;循环次数
L1: MOV AH,1 ;输入年份每一位,循环四次
INT 21H
SUB AL,30H
CMP AL,0 ;判断输入的每一位
JL L2 ;小于0则跳转到L2报错
CMP AL,9 ;判断输入的每一位
JG L2 ;大于9则跳转到L2报错
CBW
XCHG AX,BX ;使输入的都存放到BX
MOV DX,10
MUL DX
XCHG AX,BX
ADD BX,AX
LOOP L1 ;循环输入
CMP BX,1949
JB L3 ;对输入年份判断,不属于1949-2049的输入跳转到L3进行报错
CMP BX,2049
JA L3
MOV YEAR,BX ;输入正确,将年份存入存储器YEAR位置
JMP M ;无条件跳转到M
执行完 YEAR的值仍然为0 帮帮忙啊