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

📄 colorful graph.asm

📁 汇编的图像程序 一般的大学汇编实验都要用得到
💻 ASM
字号:
;彩色图形设计
;****************宏*********************
CLS           MACRO     
              MOV       AX,0600H
              MOV       BH,0DH
              MOV       CH,0
              MOV       CL,0
              MOV       DH,29
              MOV       DL,79
              INT       10H
              ENDM
;
DRAW_LIE      MACRO
              LOCAL     LOP1
LOP1: 
              MOV       DX,DI
              MOV       CX,BP
              ADD       DI,21
              ADD       BP,21
              DRAW2     FACE
              CALL      DELAY
              MOV       DX,DI
              MOV       CX,BP
              ADD       DI,21
              ADD       BP,21
              DRAW2     EREASE_FACE
;MOVS     FACE
              SUB       DI,21
              JNS       LOP1
              ENDM 
              ;                     
DRAW_HENG     MACRO
              LOCAL     LP1   
LP1:      
              MOV       DX,DI
              MOV       CX,BP
              ADD       DI,21
              ADD       BP,21
              DRAW2     FACE
              CALL      DELAY
              MOV       DX,DI
              MOV       CX,BP
              ADD       DI,21
              ADD       BP,21
              DRAW2     EREASE_FACE
;MOVS     FACE
              SUB       BP,26
              JNS       LP1
              ;
              ENDM
;
DRAW2         MACRO     xx
              LOCAL     LP2
              MOV       SI,OFFSET xx
LP2:
              MOV       AL,[SI]
              INC       SI
              MOV       AH,0ch
              MOV       BH,0            ;bh****
              INT       10h             ;dx=hang,cx=lie   
              INC       CX
              CMP       CX,BP
              JNZ       LP2
              SUB       BP,21
              MOV       CX,BP
              ADD       BP,21
              INC       DX
              CMP       DX,DI
              JNZ       LP2
              SUB       DI,21
              SUB       BP,21
              ENDM
              ;    
DISPLAY_FACE  MACRO     XX1,YY1
              MOV       DI,XX1
              MOV       BP,YY1
              MOV       CX,BP
              MOV       DX,DI
              ADD       DI,21
              ADD       BP,21
              DRAW2     FACE
              CALL      DELAY  
              ENDM      
;***************************************   
DSEG          SEGMENT
FACE           DB        8  DUP(BASE_COLOR),5  DUP(04H),8  DUP(BASE_COLOR);1
              DB        6  DUP(BASE_COLOR),04H,04H,5  DUP(BASE_COLOR),04H,04H,6  DUP(BASE_COLOR);2
              DB        4  DUP(BASE_COLOR),04H,04H,9 DUP(BASE_COLOR),04H,04H,4  DUP(BASE_COLOR);3
              DB        3  DUP(BASE_COLOR),04H,13 DUP(BASE_COLOR),04H,3  DUP(BASE_COLOR);4
              DB        2  DUP(BASE_COLOR),04H,15 DUP(BASE_COLOR),04H,2  DUP(BASE_COLOR);5
              DB        2  DUP(BASE_COLOR),04H,15 DUP(BASE_COLOR),04H,2  DUP(BASE_COLOR);6
              DB        BASE_COLOR,04H,4 DUP(BASE_COLOR),0H,7 DUP(BASE_COLOR),0H,4 DUP(BASE_COLOR),04H,BASE_COLOR;7
              DB        BASE_COLOR,04H,3 DUP(BASE_COLOR),0H,BASE_COLOR,0H,5 DUP(BASE_COLOR),0H,BASE_COLOR,0H,3 DUP(BASE_COLOR),04H,BASE_COLOR;8
              DB        04H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),04H;9
              DB        04H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),0H,3 DUP(BASE_COLOR),04H;10
              DB        04H,19 DUP(BASE_COLOR),04H                                      ;11
              DB        04H,19 DUP(BASE_COLOR),04H                                      ;12
              DB        04H,19 DUP(BASE_COLOR),04H                                      ;13
              DB        BASE_COLOR,04H,17 DUP(BASE_COLOR),04H,BASE_COLOR;14
              DB        BASE_COLOR,04H,17 DUP(BASE_COLOR),04H,BASE_COLOR;15
              DB        2  DUP(BASE_COLOR),04H,5 DUP(BASE_COLOR),5 DUP(0H),5 DUP(BASE_COLOR),04H,2  DUP(BASE_COLOR);16
              DB        2  DUP(BASE_COLOR),04H,15 DUP(BASE_COLOR),04H,2  DUP(BASE_COLOR);17
              DB        3  DUP(BASE_COLOR),04H,13 DUP(BASE_COLOR),04H,3  DUP(BASE_COLOR);18
              DB        4  DUP(BASE_COLOR),04H,04H,9 DUP(BASE_COLOR),04H,04H,4  DUP(BASE_COLOR);19
              DB        6  DUP(BASE_COLOR),04H,04H,5 DUP(BASE_COLOR),04H,04H,6  DUP(BASE_COLOR);20
              DB        8  DUP(BASE_COLOR),5  DUP(04H),8  DUP(BASE_COLOR);21
EREASE_FACE   DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
              DB        21 DUP(BASE_COLOR)
BASE_COLOR    =         7DH
X1            =         290
Y1            =         178
End1          DB        'End successfully!',0DH,0AH,'$'
QUIT          DB        'Press any key to quit!',0DH,0AH,'$'
TEXT          DB        '*~_~*   COLORFUL  GRAPH  PROGAM!   *~_~*'
LEN_TEXT      =         $-TEXT
DSEG          ENDS

STACKS        SEGMENT
              ;
STACKS        ENDS
              ;
CSEG         SEGMENT
              ASSUME CS:CSEG,DS:DSEG,SS:STACKS
START:
              MOV       AH,0
              MOV       AL,0DH
              INT       10H
              CLS
              ; 
              MOV       AH,09
              MOV       AL,'*'          
              MOV       BH,0
              MOV       BL,0DH
              MOV       CX,80
              INT       10H
              ;
              MOV       CX,6
DELAY_LP:
              
              CALL      DELAY
              LOOP      DELAY_LP
              ;
              MOV       AX,DSEG
              MOV       DS,AX
              ;例9.17 p364
              MOV       BP,SEG TEXT
              MOV       ES,BP
              MOV       BP,OFFSET TEXT
              MOV       CX,LEN_TEXT
              MOV       DX,0
              MOV       BL,7DH
              MOV       AL,0
              MOV       AH,13H
              INT       10H
              ;
              DISPLAY_FACE 70,20
              DISPLAY_FACE 105,100
              DISPLAY_FACE 41,100
WINDOW:
              MOV       AH,7
              MOV       AL,0
              MOV       BH,01H
              MOV       CH,8
              MOV       CL,8
              MOV       DH,12
              MOV       DL,32
              INT       10H
              ;
              MOV       DI,Y1
              MOV       BP,X1
              DRAW_HENG
              ;
              MOV       DI,Y1
              MOV       BP,X1
              DRAW_LIE
              MOV       DI,Y1
              MOV       BP,X1
              DRAW_HENG
              ;
              MOV       DI,Y1
              MOV       BP,X1
              DRAW_LIE
              ;
LOCAT1:
              MOV       AH,2
              MOV       DH,10
              MOV       DL,10
              MOV       BH,0
              INT       10H
SHOW1:
              LEA       DX,End1
              MOV       AH,9
              INT       21H
              ;
LOCAT2:
              MOV       AH,2
              MOV       DH,11
              MOV       DL,10
              MOV       BH,0
              INT       10H
SHOW2:
              LEA       DX,QUIT
              MOV       AH,9
              INT       21H
              ;
              MOV       AH,0
              INT       16H
              ;
              MOV       AH,0
              MOV       AL,3
              INT       10H
              ;
EXIT:         
              MOV       AH,4CH
              INT       21H
              ;
DELAY         PROC      NEAR
              PUSH      CX
              PUSH      DX
              MOV       CX,50000
D11:          
              MOV       DX,6000
D12:          
              DEC       DX
              JNZ       D12
              LOOP      D11
              POP       DX
              POP       CX
              RET
DELAY         ENDP
CSEG          ENDS
              END       START

⌨️ 快捷键说明

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