⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sum.asm

📁 成绩数据库管理系统. 1.能够实现菜单显示、菜单选择、编辑(录入、插入、修改、删除等)、查找、显示、求总成绩、按总成绩排序(高→低)并显示、装入数据文件、数据文件存盘、退出、为数据动态分配存储空间[
💻 ASM
字号:
INCLUDE filefuc.mac
PUBLIC QIUHE
STSG SEGMENT STACK 'S'
	DW 32 DUP(?)
STSG ENDS
DATA SEGMENT

GILF DB '0'
REPMM DW ?
REPS DW ?
NGF DW ?
GIFL DB ?
SHUZU DW 30 DUP(?)
      DB '$'
FILENAME DB 'F:\first.txt',0
CT  EQU $-BUFFER
FILEHANDLE DW 2
SAS DB 7 
    DB ?
    DB 7 DUP(?) 
BUF DB 10
     DB ?
               DB 10 DUP(?) 
BUFS DB 1020 DUP(' ')         
DATA ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
QIUHE PROC FAR
    ASSUME CS:CODES,DS:DATA,SS:STACKS

     PUSHREG
     push DS
     LOADDS DATA
     OPENFILE FILENAME,FILEHANDLE;打开文件
     READFILE 1020,BUFS,FILEHANDLE;读取文件数据
     MOV BX,-18
 KKSS:
    ADD BX,45
    CMP BX,1020;判断是否所有记录成绩求和
    JA PPSSMM
    MOV CL,1
    MOV DX,0;初始化成绩总合为零
    XOR AH,AH 
    MOV AL,BUFS[BX];第一门成绩由ASCII转换为二进制
    SUB AL,48
    CMP AL,0
    JL KK
    CMP AL,9
    JA KK
    MUL CL
   ADD DX,AX;将第一门成绩个位加入DX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KK: XOR AH,AH
    DEC BX
    MOV AL,BUFS[BX]
   SUB AL,48
   CMP AL,0
   JL KKS
   CMP AL,9
   JA KKS
   MUL CL
   ADD DX,AX;将第一门成绩十位加入DX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKS:
  XOR AH,AH
  DEC BX
  MOV AL,BUFS[BX]
  SUB AL,48
  CMP AL,0
  JL PPSS
  CMP AL,9
  JA PPSS
  MUL CL
  ADD DX,AX;将第一门成绩百位加入DX
PPSS:;第二门成绩由ASCII转换为二进制
    MOV CL,1
     XOR AH,AH 
     DEC BX
    MOV AL,BUFS[BX]
    SUB AL,48
    CMP AL,0
    JL KKM
    CMP AL,9
    JA KKM
    MUL CL
   ADD DX,AX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKM: XOR AH,AH
    DEC BX
    MOV AL,BUFS[BX]
   SUB AL,48
   CMP AL,0
   JL KKSM
   CMP AL,9
   JA KKSM
   MUL CL
   ADD DX,AX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKSM:
  XOR AH,AH
  DEC BX
  MOV AL,BUFS[BX]
  SUB AL,48
  CMP AL,0
  JL PPSSM
  CMP AL,9
  JA PPSSM
  MUL CL
  ADD DX,AX
PPSSM:
    MOV CL,1
   XOR AH,AH 
     DEC BX
    MOV AL,BUFS[BX]
    SUB AL,48
    CMP AL,0
    JL KKMM
    CMP AL,9
    JA KKMM
    MUL CL
   ADD DX,AX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKMM: XOR AH,AH
    DEC BX
    MOV AL,BUFS[BX]
   SUB AL,48
   CMP AL,0
   JL KKSMM
   CMP AL,9
   JA KKSMM
   MUL CL
   ADD DX,AX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKSMM:
  XOR AH,AH
  DEC BX
  MOV AL,BUFS[BX]
  SUB AL,48
  CMP AL,0
  JL KSD
  CMP AL,9
  JA KSD
  MUL CL
  ADD DX,AX
KSD:
   MOV CL,1
   XOR AH,AH 
     DEC BX
    MOV AL,BUFS[BX]
    SUB AL,48
    CMP AL,0
    JL KKMMS
    CMP AL,9
    JA KKMMS
    MUL CL
   ADD DX,AX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKMMS: XOR AH,AH
    DEC BX
    MOV AL,BUFS[BX]
   SUB AL,48
   CMP AL,0
   JL KKSMMS
   CMP AL,9
   JA KKSMMS
   MUL CL
   ADD DX,AX
   MOV AL,CL
   PUSH BX
   MOV BL,10
   MUL BL
   POP BX
   MOV CL,AL
KKSMMS:
  XOR AH,AH
  DEC BX
  MOV AL,BUFS[BX]
  SUB AL,48
  CMP AL,0
  JL HJ
  CMP AL,9
  JA HJ
  MUL CL
  ADD DX,AX
 
HJ:;将各科成绩总和的二进制表示转换为ASCII码
 MOV AX,DX  
  MOV CL,100
  DIV CL;求取总分百位部分的数字
  ADD AL,48;将百位数字转换为ASCII
  MOV BUFS[BX+12],AL;将ASCII存入原记录
  MOV AL,AH
 XOR AH,AH
  MOV CL,10
  DIV CL;求取总分十位部分的数字
  ADD AL,48;将十位数字转换为ASCII
  MOV BUFS[BX+13],AL;将ASCII存入原记录
  MOV AL,AH
  MOV AL,AH
 XOR AH,AH
  MOV CL,1
  DIV CL;求取总分个位部分的数字
  ADD AL,48;将个位数字转换为ASCII
  MOV BUFS[BX+14],AL;将ASCII存入原记录
  MOV AL,AH
 
  JMP KKSS
PPSSMM: 
MOV AH,42H
MOV BX,FILEHANDLE
MOV CX,0
MOV DX,0
MOV AL,0
INT 21H
  WRITEFILE 1020,BUFS,FILEHANDLE
CLOSEFILE FILEHANDLE
   pop ds
        POPREG
        RET
QIUHE ENDP
        CODES ENDS
    END QIUHE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -