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 + -
显示快捷键?