我想知道如何在8086程序集中显示消息。
正如您在下面的代码中所看到的,我希望通过编写" CONVERT"来完成我的代码。程序。我如何填写此代码?
我应该在视频模式中的每个8像素中显示我的消息,这是一个字符的一个块。
CURSOR MACRO ROW,COLUMN ;key cursor
MOV AH,02H
MOV BH,00
MOV DH,ROW
MOV DL,COLUMN
INT 10H
ENDM
DISPLAY MACRO STRING
MOV AH,09H
MOV DX,OFFSET STRING ;load string address
INT 21H
ENDM
.MODEL SMALL
.STACK
.DATA
MESSAGE_1 DB 'PRESS ANY KEY TO GET OUT','$'
MESSAGE_2 DB 'THE MOUSE CURSOR IS LOCATED AT','$'
POS_HO DB ?,?, 'AND $'
POS_VE DB ?,?, '$'
OLDVIDEO DB ?
NEWVIDEO DB 0EH
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,0FH ;current video mode
INT 10H
MOV OLDVIDEO,AL ;move current mode
MOV AX,0600H ;clear screen
MOV BH,07
MOV CX,0
MOV DX,184FH
INT 10H
MOV AH,00H ;set new mode
MOV AL,NEWVIDEO
INT 10H
MOV AX,0 ;mouse initioalize
INT 33H
MOV AX,01 ;show cursor
INT 33H
CURSOR 20,20 ;text cursor
DISPLAY MESSAGE_1
AGAIN: MOV AX,03H ;get mouse location
INT 33H ;clear screen
MOV AX,CX ;x-position
CALL CONVERT
MOV POS_HO,AL
MOV POS_HO+1,AH
MOV AX,DX ;y-position
CALL CONVERT
MOV POS_VE,AL
MOV POS_VE+1,AH
CURSOR 5,20
DISPLAY MESSAGE_2
DISPLAY POS_HO
DISPLAY POS_VE
MOV AH,01 ;check key press
INT 16H
JZ AGAIN
MOV AH,02 ;hide mouse cursor
INT 33H MOV AH,0 ;restore video mode
MOV AL,OLDVIDEO
INT 10H
MOV AH,4CH ;back to DOS
INT 21H
MAIN ENDP
END