如何使用8086程序集在图形模式下在特定位置打印字符?

时间:2017-04-28 13:15:49

标签: 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”,我该怎么办?

1 个答案:

答案 0 :(得分:3)

  

我应该怎么做才能在特定位置打印'x'?

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

因此,要在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