急---日历的程序,求加注释!!!本人初学者
时间:2010-12-21
来源:互联网
mes1 db 'input month:','$'
month db 2 dup(?)
mes2 db 'input week:','$'
week db ?
week1 db ?
week2 db ?
mes3 db 'input day:','$'
days db 2 dup(?)
xingqi db ' SUN MON TUE WED THU FRI SAT ','$'
data ends
stack segment
stack ends
code segment
assume ds:data,cs:code,ss:stack
main: mov ax,data
mov ds,ax
output macro x
lea dx,x
mov ah,9
int 21h
endm
hhhc macro ;换行回车
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
endm
kongge macro x ;空格
local t1
mov cx,x
t1:mov dl,20h
mov ah,2
int 21h
loop t1
endm
output mes1
mov ah,1
int 21h
mov month,al
mov ah,1
int 21h
mov [month+1],al
hhhc
output mes2
mov ah,1
int 21h
and al,0fh ;高位清零
mov week1,al
mov al,7
sub al,week1
mov week2,al
hhhc
output mes3
mov ah,1
int 21h
mov [days],al
mov ah,1
int 21h
mov [days+1],al
hhhc
and days,0fh ;天数计数
mov al,days
mov bl,10
mul bl
mov days,al
mov al,[days+1]
and al,0fh
add days,al
kongge 16
mov dl,month ;显示月份
mov ah,2
int 21h
mov dl,month+1
mov ah,2
int 21h
hhhc
mov cx,35 ;边框
t2:mov dl,'='
mov ah,2
int 21h
loop t2
hhhc
output xingqi ;星期
hhhc
cmp week1,7
kongge 2
je m1
c1:kongge 5
dec week1
jnz c1
go:
mov bl,0
c2:mov al,bl
inc al
daa ;十进制调整(+6)
mov bl,al
mov cl,4
shr al,cl
or al,20h
add al,0ah ;调整十位
mov dl,al
mov ah,2
int 21h
mov al,bl
and al,0fh
or al,30h
mov dl,al
mov ah,2
int 21h
kongge 3
dec days
jz next1 ;132
cmp week2,0
je c3
dec week2
jz c4
jmp c2
c3:
mov week2,6
jmp c2
next1:jmp jieshu
c4:hhhc
kongge 2
mov week2,7
jmp c2
m1:mov bl,0 ;第一天周日
m2:mov al,bl
inc al
daa ;十进制调整(+6)
mov bl,al
mov cl,4
shr al,cl
or al,30h ;调整十位
mov dl,al
mov ah,2
int 21h
mov al,bl
and al,0fh
or al,30h
mov dl,al
mov ah,2
int 21h
kongge 3
dec days
jz jieshu
cmp week2,0
je m3
dec week2
jz m4
jmp m2
m3:mov week2,6
jmp m2
m4:hhhc
kongge 2
mov week2,7
jmp m2
jieshu:
hhhc
mov cx,35 ;边框
t3:mov dl,'='
mov ah,2
int 21h
loop t3
hhhc
mov ah,4ch
int 21h
code ends
end main ;195
作者: senhehe 发布时间: 2010-12-21
数学差劲
操作能解释出来
目的却说不出个所以然
作者: znxllyuan 发布时间: 2010-12-21
作者: senhehe 发布时间: 2010-12-21
作者: flowerjack 发布时间: 2010-12-21
mov ds,ax
output macro x ;这是一个显示字符串的宏 哑元X为字符串首地址
lea dx,x
mov ah,9
int 21h
endm
hhhc macro ;换行回车的宏 无参
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
endm
kongge macro x ;空格宏 哑元X为重复次数
local t1
mov cx,x
t1:mov dl,20h
mov ah,2
int 21h
loop t1
endm
output mes1 ;显示字符串input month:
mov ah,1 ;带回显的键盘输入
int 21h
mov month,al ;输入的字符存入month缓冲区
mov ah,1
int 21h
mov [month+1],al ;月份存入month字单元
hhhc ;换行回车
output mes2 ;显示字符串input week:
mov ah,1
int 21h ;等待输入
and al,0fh ;高位清零
mov week1,al ;低位送WEEK1单元
mov al,7
sub al,week1 ;这步没看懂 脑袋混浆浆的 计算一周剩余天数干什么?
mov week2,al
hhhc ;换行回车
output mes3 ;显示input day:
mov ah,1
int 21h ;等待输入
mov [days],al
mov ah,1
int 21h
mov [days+1],al ;天\存入DAYS字单元
hhhc ;换行回车
and days,0fh ;天数计数
mov al,days
mov bl,10
mul bl ;这个是要转换为十进制形式吧
mov days,al
mov al,[days+1]
and al,0fh
add days,al
kongge 16 ;16个空格
mov dl,month
mov ah,2
int 21h
mov dl,month+1
mov ah,2
int 21h ;显示月份
hhhc ;换行回车
mov cx,35
t2:mov dl,'='
mov ah,2
int 21h
loop t2 ;设置边框
hhhc
output xingqi ;显示星期
hhhc ;换行回车
cmp week1,7 ;是周日么
kongge 2 ;2个空格
je m1 ;是转ML(好邪恶的标号~)
作者: znxllyuan 发布时间: 2010-12-21
作者: senhehe 发布时间: 2010-12-21
太及时太感谢了啊
我晕 我才写了一半就写不下去了 还感谢。。
我最打怵的就是数学 后面的操作懂 目的一时半会看不懂
作者: znxllyuan 发布时间: 2010-12-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28