Assembly 如何在8086汇编中转换数字并以视频图形模式显示?

Assembly 如何在8086汇编中转换数字并以视频图形模式显示?,assembly,emu8086,Assembly,Emu8086,我想知道如何在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

我想知道如何在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

要将数字转换为其文本表示,请看一看,因为鼠标在所选图形屏幕上的位置可能超过99,所以仅使用“
POS____-HO DB?”、?、”和“$”
”是不够的!您至少需要3个字符位置。