masm汇编,接上一篇 在屏幕中央画一个逐渐膨胀的实心圆

来源:互联网 发布:淘宝直通车最低充值 编辑:程序博客网 时间:2024/06/05 21:00

要求:在屏幕中央画一个逐渐膨胀的实心圆。

已经改好的,留给未来的童鞋们参考哈


SCREEN  MACRO
        MOV AX,12H
        INT 10H
        MOV AX,0BH
        MOV BX,0
        INT 10H
ENDM
;------------------------------------------
COMPUTE MACRO
        MOV AX,[SI]
        MUL RR
        DIV KK
        MOV Y_COORD,AX
        MOV AX,[DI]
        MUL RR
        DIV KK
        MOV X_COORD,AX
ENDM
;------------------------------------------
L    MACRO
        MOV AX,X_COORD
        MOV CX,Y_COORD
        MOV X_COORD1,AX
        MOV Y_COORD1,CX
    ADD Y_COORD1,OY
        ADD X_COORD1,OX
        MOV AH,0CH
        MOV AL,COLOR
        MOV BH,0
        MOV CX,X_COORD1
        MOV DX,Y_COORD1
        INT 10H
ENDM
WRITE   MACRO
    L
        NEG X_COORD
    L
        NEG Y_COORD
    L
        NEG X_COORD
    L
ENDM
;--------------------------------------------
DATA    SEGMENT
SINE    DW   00,02,03,05,07,09,11,12,14,16
        DW   17,19,21,23,24,26,28,29,31,33
        DW   34,36,37,39,41,42,44,45,47,49
        DW   50,52,53,54,56,57,59,60,62,63
        DW   64,66,67,68,69,71,72,73,74,75
        DW   77,78,79,80,81,82,83,84,85,86
        DW   87,87,88,89,90,91,91,92,93,93
        DW   94,95,95,96,96,97,97,97,98,98
        DW   99,99,99,99,99,100,100,100,100
        DW   100,100
Y_COORD    DW   ?
X_COORD    DW   ?
Y_COORD1 DW  ?
X_COORD1 DW  ?
OY    EQU  240
OX    EQU  320
RR      DW   0
COLOR   DB   100
KK    DW   100
COUNT   DB   90
DATA    ENDS
CODE    SEGMENT
    ASSUME CS:CODE,DS:DATA
BEG:
    MOV AX,DATA
    MOV DS,AX
        SCREEN
AGA1:    MOV DI,OFFSET SINE+90*2
    MOV SI,OFFSET SINE
    INC RR
        MOV COUNT,90
AGA:
    COMPUTE
    WRITE
    ADD SI,2
    SUB DI,2
    DEC COUNT
        JZ L8
        JMP AGA
L8:     CMP RR,199
        JA WAIT_IN
        JMP AGA1
WAIT_IN:
    MOV AH,1
    INT 21H
        MOV AX,2
    INT 10H
    MOV AH,4CH
    INT 21H
CODE    ENDS
    END BEG


原创粉丝点击