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

📄 10[1].11.asm

📁 学生信息管理的改进
💻 ASM
字号:

student STRUC

        sid DB 10 DUP(?)
        One DB ?
        Two DB ?
        Three DB ?
        Four DB ?
        Five DB ?
student ENDS
DATA SEGMENT
    Len   DB ?
    fname DB "D:\ALLSCORE.DAT",0

    msg2 DB "Id:$"
    msg3 DB "One:$"
    msg4 DB "Two:$"
    msg5 DB "Three:$"
    msg6 DB "Four:$"
    msg7 DB "Five:$"
    msg8 DB "continue? $"
    msg9 DB "Fail to create file?$"
    CRLF DB 0AH,0DH,"$"
    buff DB ?,?,50 DUP(?)
    peason STUDENT  < >    
DATA ENDS

CODE SEGMENT

START: ASSUME DS:DATA,CS:CODE
       MOV AX,DATA
       MOV DS,AX
    ; MOV AX,DS
     MOV ES,AX
     LEA DX,fname
     MOV CX,20H
     MOV AH,3CH
     INT 21H

     JnC  next
ERROR:MOV DX,OFFSET msg9
      CALL DISMSG
      JMP OVER
next:    MOV BX,AX
AGAIN:
      MOV DX,OFFSET CRLF
      CALL DISMSG

      mov dx,offset msg2
      mov Len,11
      call GetInfo
      MOV CX,10
      MOV AL,' '
      LEA DI,peason.sid
repts:mov byte ptr [di],al
      inc di
      loop repts
      MOV CL,buff+1
      MOV SI,OFFSET buff+2
      LEA DI,peason.sid
 reptm:MOV ax,[SI]
       mov [di],ax
       INC DI
       INC SI
       LOOP reptm
      mov Len,3
      mov dx,offset msg3
      call GetInfo
      mov Len,2
      mov dx,offset buff+4
      call GetData
      MOV peason.One,AL
      
      mov Len,3
      mov dx,offset msg4
      call GetInfo
      mov Len,2
      mov dx,offset buff+6
      call GetData
      MOV peason.Two,AL
JUMP1: JMP GOON
JUMP:  JMP AGAIN
      
GOON: mov Len,3
      mov dx,offset msg5
      call GetInfo
      mov Len,2
      mov dx,offset buff+8
      call GetData
      MOV peason.Three,AL
      
      mov Len,3
      mov dx,offset msg6
      call GetInfo
      mov Len,2
     mov dx,offset buff+10
      call GetData
      MOV peason.Four,AL
      
      mov Len,3
      mov dx,offset msg7
      call GetInfo
     mov Len,2
      mov dx,offset buff+12
      call GetData
      MOV peason.Five,AL
      
      MOV CX,SIZE peason
      LEA DX,peason
      MOV ah,40h
      INT 21H

      mov dx,offset msg8
      call DISMSG
      MOV AH,1
      INT 21H
      AND AL,0DFH
      CMP AL,'Y'
      JZ JUMP
      MOV AH,3EH
      INT 21H
OVER:
    MOV AH,4CH
    INT 21H

    ;显示信息
;入口参数 DX=信息地址
DISMSG PROC
       PUSH DX
       PUSH AX
       MOV AH,9H
       INT 21H
       POP AX
       POP DX
       RET
DISMSG ENDP

;入口参数:
GetData PROC
        PUSH BX
        PUSH DX
        PUSH SI
        XOR CX,CX
        MOV CL,Len
        MOV SI,Data
        XOR AX,AX
        XOR BX,BX
  REP:
         MOV BL,[SI]
         SUB BL,'0'
         CMP BL,9
         JA EN
         CMP BL,0
         JB EN
         XOR DX,DX
         MOV DX,10
         IMUL DX
         ADD AX,BX
         INC SI
         LOOP REP
     EN: POP SI
         POP DX
         POP BX
         RET
GetData ENDP

;入口:DX=MSG地址,len
;出口:buff=字符串
GetInfo PROC
        PUSH AX
        CALL DISMSG
        MOV AL,Len
        MOV buff,AL
        MOV AH,0AH
        LEA DX,buff
        INT 21H
        MOV DX,OFFSET CRLF
        CALL DISMSG
        POP AX
        RET
GetInfo ENDP
CODE ENDS
     END START

⌨️ 快捷键说明

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