汇编程序设计星座查询系统
;用MASM 5.0编译
;文件输出格式如下:
;Zzzzzzzz 2.22双鱼座双鱼座
;DDDDDDDD 3.13双鱼座双鱼座
;1.22水瓶座
;vvvvvvv 5.23双子座双子座
;汇编程序设计星座查询系统
;奖励分数:50-15天9小时前问题结束。
;功能描述:
;通过输入姓名、月份和日期,输出相应的星座。如果输入:04-19,输入;出局:白羊座。
;输入q退出。同时,将查询结果保存在quary.txt文档中。
;文档中的格式是:
;姓名和生日星座
;星座日期信息如下:
;星座日期的英文名(公历)
;摩羯座(12/22-1/19)摩羯座29
;水瓶:水瓶29
;双鱼座30-31
;白羊座:白羊座31
;金牛座:金牛座30岁
;双子座32岁
;巨蟹座31
;;狮子座:狮子座31
;处女座(8/23-9/22)处女座31
;天秤座30岁
;天蝎座(10/23-11/21)天蝎座30
;射手(11/22-12/21)射手30
;这可不行。过年放假前谁能教教我怎么做?急用,救命!
;如果能跑,一定要加一些感谢。
;补充质询:电邮651325419@qq.com。
;;;
;1.20 2.19 3/4/5.21 6/11/12.22 7/8/9/10.23
;;
数据段
点DB ' . ';“月。日”
孔DB 5 DUP(’);5个空格
xz _龙EQU 12+7;单个xz在整个XZ中的长度。
;文件数据库' czr.txt ',0
文件数据库' quary.txt ',0
处理dw?
ERR1 db 0dh,0ah,'创建文件错误!$'
Xz db '水瓶座$双鱼座$白羊座$金牛座$双子座$巨蟹座$狮子座$处女座$天秤座$天蝎座$射手座$摩羯座$ '
buff1 db 10,11 dup(0);输入名称
buff2 db 3,4 dup(0);输入月份
buff3 db 3,4 dup(0);输入日
m 1 db 0;月
d 1 db 0;天
CRLF DB 0dh,0ah,' $ '
file_ptr dw?;从字符串xz写入位置
s1 db 0dh,0ah,0dh,0ah,'名称:$ '
s2 db 0dh,0ah,'月:$ '
s3 db 0dh,0ah,'日:$ '
W_F_BUFF DB 0DH,0AH
数据结束
代码段
假设cs:代码,ds:数据
主进程远
开始:
推送ds
异或ax,ax
推斧
移动轴,数据
移动ds,ax
;FFFFFFFFFFF
mov dx,偏移文件
mov al,2;读/写模式
mov ah,3dh开文件
int 21h
jc误差;打开文件错误
mov手柄,斧头;保存句柄
jmp w _文件
错误:
mov dx,偏移文件
mov cx,0;文件属性
mov ah,3ch创建文件
int 21h
jc错误_1
mov手柄,斧头;保存句柄
jmp w _文件
错误_1:
mov ah,09
lea dx,err 1;显示创建文件错误!$'
int 21h
jmp结束_D
w _文件:
mov ah,42h移位文件w/r ptr
mov bx,手柄
mov al,2;将w/r ptr设置为文件eof
mov cx,0
mov dx,0
int 21h
;FFFFFFFFFFFFFFFFFFFFFFFF
;-
START_1:
mov ah,09
mov dx,偏移量s 1;输入名称
int 21h
啊,0ah
mov dx,偏移缓冲器1
int 21h
MOV BX,offset buff 1+1;判断是否输入‘q’退出。
MOV·阿尔[BX]
CMP AL,1
JNE不退出
BX公司
MOV·阿尔[BX]
CMP AL,' Q '
JNE不退出
JMP结束_D
否_退出:
mov ah,09
mov dx,偏移量S2;输入月份
int 21h
啊,0ah
mov dx,失调缓冲器2
int 21h
mov bx,偏移缓冲器2+1
移动铝,[bx]
cmp al,2;是2魏?
jl是1
mov ah,10
公司bx
公司bx
移动铝,[bx]
sub al,30h
加啊,阿尔
mov m1,啊;保存月份(2wei)
jmp m _结束
is1:
公司bx
移动铝,[bx]
sub al,30h
mov m1,al;保存月份(1微)
m_end:
mov ah,09
mov dx,偏移量S3;输入日
int 21h
啊,0ah
mov dx,失调缓冲器3
int 21h
mov bx,偏移缓冲器3+1
移动铝,[bx]
cmp al,2;是2魏?
jl是1_1
公司bx
移动铝,[bx]
sub al,30h
mov dl,10
mul dl
公司bx
mov ah,[bx]
sub ah,30h
加亚尔,啊
mov d1,al;保存一天(2wei)
jmp数据结束
is1_1:
公司bx
移动铝,[bx]
sub al,30h
mov D1,al;保存一天(1wei)
d_end:
MOV啊,09
MOV DX,抵消CRLF
INT 21H
mov dx,偏移量xz
移动轴,0
mov al,m1
十二月
呼叫PD;根据日,判断AL是减少1还是增加12(如果是1月)。
mov bl,xz _ longxz的每一个新卓昌
MUL BL
添加dx,ax
mov file_ptr,dx;保存位置从字符串xz写入文件
moV ah,09
int 21h
;& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt& lt
;-
mov cx,2
mov dx,offset crlfCRLF写入文件
mov ah,40h写文件
mov bx,手柄
INT 21H
mov dx,offset buff 1;名称写入文件
调用文件_w
mov ah,40h写5个空格
mov Dx,偏移孔
莫夫·CX,5
mov bx,手柄
INT 21H
mov dx,offset buff2写入文件的月份
调用文件_w
mov ah,40h写“.”
mov Dx,偏移点
mov CX,1
mov bx,手柄
INT 21H
mov dx,offset buff3写入文件的日期
调用文件_w
mov ah,40h写5个空格
mov Dx,偏移孔
莫夫·CX,5
mov bx,手柄
INT 21H
MOV CH,0
mov CL,xz_long-1
mov dx,file_ptr
mov ah,40hXZ写入文件
mov bx,手柄
INT 21H
JMP START_1
结束_D:
mov ah,3eh关闭文件
mov bx,手柄
INT 21H
浸水使柔软
主端
;-
file_w proc附近
mov ah,40h写文件
mov bx,dx
公司bx
移动通道,0
mov cl,[bx]
添加dx,2
mov bx,手柄
INT 21H
浸水使柔软
文件_结束
;-
;==============================
PD继续接近;根据输入的"月、日"做出判断子程序。
;1.20 2.19 3/4/5.21 6/11/12.22 7/8/9/10.23
MOV啊,M1
CMP AH,1
粤_1
CMP AH,2
JE粤_2
CMP AH,3
粤_345
CMP AH,4
粤_345
CMP AH,5
粤_345
CMP AH,6
粤_61112
CMP AH,11
粤_61112
CMP AH,12
粤_61112
CMP AH,7
粤_78910
CMP AH,8
粤_78910
CMP AH,9
粤_78910
CMP AH,10
粤_78910
;1.20 2.19 3/4/5.21 6/11/12.22 7/8/9/10.23
岳_1:
MOV啊,D1
CMP AH,20
JL地址11
JMP监狱
ADD11:
添加AL,11
JMP监狱
岳_2:
MOV啊,D1
CMP AH,19
JL 1
JMP监狱
岳_345:
MOV啊,D1
CMP AH,21
JL 1
JMP监狱
岳_61112:
MOV啊,D1
CMP AH,22
JL 1
JMP监狱
岳_78910:
MOV啊,D1
CMP AH,23
JL 1
JMP监狱
AL_DEC1:
十二月
RET_PD:
浸水使柔软
ENDP警察局
;==============================
代码结束
结束开始