exp98.asm

来自「汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂」· 汇编 代码 · 共 98 行

ASM
98
字号
STACK   SEGMENT PARA STACK
        DW      100h DUP(?)
STACK   ENDS

DATA    SEGMENT PARA
CURSOR1 DB      4,5
CURSOR2 DB      4,45
CURSOR3 DB      15,5
CURSOR4 DB      15,45   ;window 4,5--15,45
STRING  DB      'Display a string in the window!'
STRING_LEN      EQU     $-STRING
DATA    ENDS

SET_CURSOR      MACRO LINE,COL
                MOV     AH,2
                MOV     DH,LINE
                MOV     DL,COL
                MOV     BH,0
                INT     10H
                ENDM

DISP_CHAR       MACRO   CHAR,ATTR
                MOV     AH,9
                MOV     BH,0
                MOV     CX,1
                MOV     AL,CHAR
                MOV     BL,ATTR
                INT     10H
                ENDM

CODE    SEGMENT PARA
        ASSUME  CS:CODE,DS:DATA,SS:STACK
MAIN    PROC    FAR
        MOV     AX,DATA
        MOV     DS,AX

        CALL    CLEAR_SCREEN

        SET_CURSOR CURSOR1,CURSOR1+1
        DISP_CHAR  'A',71H
        SET_CURSOR CURSOR2,CURSOR2+1
        DISP_CHAR  'B',72H
        SET_CURSOR CURSOR3,CURSOR3+1
        DISP_CHAR  'C',73H
        SET_CURSOR CURSOR4,CURSOR4+1
        DISP_CHAR  'D',74H

        CALL    PAUSE

        MOV     CH,CURSOR1
        MOV     CL,CURSOR1+1
        MOV     DH,CURSOR4
        MOV     DL,CURSOR4+1
        MOV     BH,70H
        MOV     AL,2
        MOV     AH,6
        INT     10H

        CALL    PAUSE

        PUSH    DS
        POP     ES

        MOV     BP,OFFSET STRING
        MOV     CX,STRING_LEN
        MOV     BH,0
        MOV     AL,1
        MOV     DH,CURSOR1
        MOV     DL,CURSOR1+1
        MOV     AH,13H
        INT     10H

        MOV     AX,4C00H
        INT     21H
MAIN    ENDP

CLEAR_SCREEN    PROC
        MOV     CX,0
        MOV     DH,24
        MOV     DL,79
        MOV     BH,0FH
        MOV     AL,0
        MOV     AH,6
        INT     10H
        RET
CLEAR_SCREEN    ENDP

PAUSE   PROC
        MOV     AH,0
        INT     16H
        RET
PAUSE   ENDP

CODE    ENDS
        END     MAIN
        

⌨️ 快捷键说明

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