DATA SEGMENT ;定义数据段
INFON DB 0DH,0AH,'PLEASE INPUT A YEAR: $'
Y DB 0DH,0AH,'THIS IS A LEAP YEAR! $'
N DB 0DH,0AH,'THIS IS NOT A LEAP YEAR! $'
W DW 0
BUF DB 8
DB ?
DB 8 DUP(?)
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT ;
ASSUME DS:DATA,SS:STACK,CS:CODE;
START:MOV AX,DATA ;
MOV DS,AX ;
LEA DX,INFON ;在屏幕上显示提示信息
MOV AH,9
INT 21H
LEA DX,BUF ;从键盘输入年份字符串
MOV AH,10
INT 21H
MOV CL, [BUF+1]
LEA DI,BUF+2
CALL DATACATE
CALL IFYEARS
JC A1
LEA DX,N
MOV AH,9
INT 21H
JMP EXIT
A1: LEA DX,Y
MOV AH,9
INT 21H
EXIT: MOV AH,4CH
INT 21H
DATACATE PROC NEAR
PUSH CX
DEC CX
LEA SI,BUF+2
TT1: INC SI
LOOP TT1
;LEA SI,CX[DI]
POP CX
MOV DH,30H
MOV BL,10
MOV AX,1
L1: PUSH AX
SUB BYTE PTR [SI],DH
MUL BYTE PTR [SI]
ADD W,AX
POP AX
MUL BL
DEC SI
LOOP L1
RET
DATACATE ENDP
IFYEARS PROC NEAR
PUSH BX
PUSH CX
PUSH DX
MOV AX,W
MOV CX,AX
MOV DX,0
MOV BX,4
DIV BX
CMP DX,0
JNZ LAB1
MOV AX,CX
MOV BX,100
DIV BX
CMP DX,0
JNZ LAB2
MOV AX,CX
MOV BX,400
DIV BX
CMP DX,0
JZ LAB2
LAB1: CLC
JMP LAB3
LAB2: STC
LAB3: POP DX
POP CX
POP BX
RET
IFYEARS ENDP
CODE ENDS
END START
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。
首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、安装包资源发送或安装、软件使用指导等服务。
我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。