求这个汇编的逐行解释
来源:百度知道 编辑:UC知道 时间:2024/06/15 21:13:00
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
求这个汇编的逐行解释
悬赏分:40 - 离问题结束还有 14 天 16 小时
FUNCTION:函数的功能是通过键盘输入一个年份,判断是否闰年,并在屏幕上输
出提示信息
首先要知道闰年满足的条件:这里有一个闰年的算法
if (year能被4整除 and 不能被100整除) or year能被400整除
下面就是楼主的要求了,程序的注释:
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 ? ;buf db 8是定义一个8字节的区域,?是实际输入的长度
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] ;cl为实际的字符串长度
lea di,buf+2 ;将字符串的第一个字