汇编程序设计星座查询系统

;哥们,你的项目太麻烦了...但是,还是做了!!!

;用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警察局

;==============================

代码结束

结束开始