📄 8.11.asm
字号:
DSEG SEGMENT
OldAddr DD ?
MSG LABEL BYTE
XMSG DB 'X='
XASC DW ?
DB ''
YMSG DB 'Y='
YASC DW ?
Count EQU $-MSG
Data DW ?
DSEG ENDS
STACK1 SEGMENT STACK
DW 128 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME DS:DSEG,CS:CODE
ClsScr PROC
MOV AX,0600H
MOV BH,30H
MOV CX,0
MOV DX,184FH
INT 10H
RET
ClsScr ENDP
BTOAsc PROC
MOV AX,Data
MOV DI,BX
MOV word ptr[DI],2020H
MOV CL,10
DIV CL
OR AL,30H
MOV [DI],AL
INC DI
OR AH,30H
MOV [DI],AH
RET
BTOAsc ENDP
DispPos PROC FAR
SHR CX,3
SHR DX,3
MOV BX,OFFSET XASC
MOV Data,CX
CALL BTOAsc
MOV BX,OFFSET YASC
MOV Data,DX
CALL BTOAsc
MOV AH,02H
MOV BH,0
MOV DX,046H
INT 10H
MOV AH,40H
MOV BX,01H
MOV CX,COUNT
LEA DX,MSG
INT 21H
RET
DispPos ENDP
START:
MOV AX,Data
MOV DS,AX
CALL ClsScr
MOV AX,00
INT 33H
CMP AX,00
JE OVER
MOV AX,01H
INT 33H
MOV AX,CS
MOV ES,AX
LEA DX,DispPos
MOV AX,14H
MOV CX,1
INT 33H
MOV word ptr OldAddr,DX
MOV word ptr OldAddr+2,ES
REPEAT:MOV AX,03H
INT 33H
CMP BX,1
JE Continue
LOOP REPEAT
Continue:MOV AX,02H
INT 33H
OVER: MOV DX,word ptr OldAddr
MOV ES,word ptr OldAddr+2
MOV AX,0CH
INT 33H
CALL ClsScr
MOV AH,4CH
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -