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

📄 mycode_bubblesort.asm

📁 Guangxi M achinery No.2
💻 ASM
字号:
NAME    MYCODE_BUBBLESORT

GETCHAR MACRO
        MOV AH,1
        INT 21H
        ENDM

DISPLAY MACRO   CHAR
        MOV DL,CHAR
        MOV AH,2
        INT 21H
        ENDM

DISPLAY_STRING MACRO   STRING
        MOV DX,OFFSET STRING
        MOV AH,9
        INT 21H
        ENDM 

CRT_CR  MACRO
        MOV DL,0AH
        MOV AH,2
        INT 21H
        MOV DL,0DH
        MOV AH,2
        INT 21H 
ENDM

DATA1   SEGMENT
     
SCOREBUFFER  DB  100 DUP(0)
SCOREBLOCK   DB  10  DUP(0)
TEMPSCORE    DW  0 

DECIL       DB  100,10,1
WARNING      DB  "THE SCORE YOU ENTERED IS NOT VALID. ENTER AN INTEGER BETWEEN 0 AND 100",0DH,0Ah,"$"
MSG1         DB  "ENTER STUDENT No.  'S SCORE",0DH,0Ah,"$"

DATA1   ENDS
STACK   SEGMENT PARA    STACK'STACK'
        DB  100 DUP(?)
STACK   ENDS
CODE    SEGMENT
        ASSUME  CS:CODE,DS:DATA1,SS:STACK
START   PROC    FAR
BEGIN:  
        PUSH    DS
        MOV     AX,0
        PUSH    AX
        MOV     AX,DATA1
        MOV     DS,AX
        
        MOV     CX,0
        MOV     SI,0
        MOV     DI,0
        
        MOV     CX,10


INPUT:  CRT_CR 
 CRT_CR 
        MOV  MSG1[17],DI
        ADD  MSG1[17],30h
        DISPLAY_STRING MSG1
        
        MOV  DH, SCOREBLOCK[DI-1] 
        GETCHAR
        
        MOV  SI,0
        MOV  TEMPSCORE,0 
        MOV  BL,0
ONEINPUT:
        
        GETCHAR 
        CMP     AL,0DH
        JE      ONEINPUTEND
        MOV     AL,SCOREBUFFER[SI]
        SUB     SCOREBUFFER[SI],30H
        CMP     AL,0Dh
        JE      ONEINPUTEND     
        CMP     AL,0DH
        JE      ENTER
        CMP     AL,30h
        JL      NOTNUM
        CMP     AL,39h
        JG      NOTNUM
        JMP     ISNUM
NOTNUM: MOV     BL,1 
ISNUM:  SUB     AL,30H
        MUL     DECIL[SI]
        ADD     TEMPSCORE,AX          
        INC     SI
        JMP     ONEINPUT
ONEINPUTEND:  
        MOV     AX,TEMPSCORE
        MOV     SCOREBLOCK[DI],AL
        CRT_CR 
        CMP     SI,0
        JE      INVALID
        CMP     SI,1
        JNE     SINOT1
        MOV     AL,SCOREBUFFER[0]
        MOV     SCOREBLOCK[DI],AL
SINOT1: CMP     SI,2
        JNE     SINOT2
        MOV     AL,SCOREBUFFER[1]
        MOV     SCOREBLOCK[DI],AL
        MOV     AL,SCOREBUFFER[0]
        MUL     DECIL[1]
        ADD     SCOREBLOCK[DI],AL
SINOT2: CMP     SI,3
        JG      INVALID
        CMP     BL,1
        JE      INVALID
        MOV     AL,SCOREBLOCK[DI]
        CMP     AL,100
        JG      INVALID
        INC     DI
        JMP     VALID
INVALID:
        INC     CX
        DISPLAY_STRING  WARNING
       
VALID:  LOOP    INPUT        



                
              
        
        
ENTER:
START   ENDP
CODE    ENDS
        END     BEGIN

⌨️ 快捷键说明

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