废话不多说,直接上代码
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
LEA SI,BUF+2
MOV BX,0
X3:
MOV AL ,[SI]
SUB AL ,30H
MOV AH,0
XCHG AX,BX
MOV DX,10D
MUL DX
XCHG AX,BX
ADD BX,AX
INC SI
LOOP X3
MOV W,BX
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
打开 运行 输入 cmd 打开.asm 文件 例如 f: -----> cd a------>masm abc.asm ---->开始编译 编译完成 再打 masm abc
link masm 然后就可以执行 输入 abc 就可以执行
还有一个例子:
DATA SEGMENT
RABBITNUM DW 650
MONTHNUM DB ?
DATA ENDS
STACK1 SEGMENT PARASTACN
DW 20 DUP (?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DAT
START : MOV AX,DATA
MOV DS,AX
XOR CX,CX
MOV AX,0
MOV BX,1
NEXT : XCHG AX,BX
ADD AX,BX
INC CL
CMP AX,RABBITNUM
JAE RESULT
JMP NEXT
RESULT: MOV MONTHUNM,CL
MOV AH,4CH
INT 21H
CODE ENDS
END START
这篇博客介绍了如何用汇编语言编写一个简单的程序,用于判断输入的年份是否为闰年。通过编译和链接步骤,最终能够运行并执行这个程序。

8258

被折叠的 条评论
为什么被折叠?



