Assembly 如何使用8086汇编在图形模式下在特定位置打印字符?

Assembly 如何使用8086汇编在图形模式下在特定位置打印字符?,assembly,x86-16,dosbox,Assembly,X86 16,Dosbox,我在Windows上的DOSBox上使用8086程序集。 我想在图形模式下打印字符,我知道它是这样的: mov ah, 0eh ;0eh = 14 mov al, 'x' xor bx, bx ;Page number zero mov bl, 0ch ;Color is red int 10h 上面的代码在屏幕顶部左侧打印字母“x”。 我不知道如何在屏幕的特定位置打印“x”字符。要在特定位置打印“x”,我应该做什么 要在特定位置打

我在Windows上的DOSBox上使用8086程序集。
我想在图形模式下打印字符,我知道它是这样的:

mov ah, 0eh           ;0eh = 14
mov al, 'x'
xor bx, bx            ;Page number zero
mov bl, 0ch           ;Color is red
int 10h
上面的代码在屏幕顶部左侧打印字母“x”。
我不知道如何在屏幕的特定位置打印“x”字符。要在特定位置打印“x”,我应该做什么

要在特定位置打印“x”,我应该做什么

首先要知道,在图形屏幕上,BIOS将无法在您想要的任何(X,Y)位置打印您的角色。只能在可以定位光标的每个(列、行)点上获取字符

因此,要在320x200 256色图形屏幕(模式19)的中心显示“x”字符,可以编写以下代码:

mov  dl, 20   ;Column
mov  dh, 12   ;Row
mov  bh, 0    ;Display page
mov  ah, 02h  ;SetCursorPosition
int  10h

mov  al, 'x'
mov  bl, 0Ch  ;Color is red
mov  bh, 0    ;Display page
mov  ah, 0Eh  ;Teletype
int  10h
参见a.k.a.设置光标位置。