我想在汇编中打印出字符串,我已经设法打印出一个字符串,但我无法弄清楚如何在屏幕上的特定位置打印它
这是我正在使用的代码:
IDEAL
MODEL small
STACK 100h
DATASEG
message db 'Hello World',10,13,'$'
CODESEG
start:
mov ax, @data
mov ds, ax
;graphic mode:;
mov ax, 13h
int 10h
pop ds
mov dx, offset message
mov ah, 9h
int 21h
exit:
mov ax, 4c00h
int 21h
END start
图形模式是因为这是我正在从事的一个更大项目的一部分,但据我所知,这应该不是问题。
该程序确实打印出消息,它只是将其打印在我的屏幕右上角。我非常想知道如何在特定位置打印消息,并在可能的情况下确定其大小。
您只需要将光标放置在需要显示字符串的位置即可。
屏幕 13h 有 40 列和 25 行。
使用 BIOS 功能 02h:
mov dl, 20 ;Center column
mov dh, 12 ;Center row
mov bh, 0 ;Display page 0
mov ah, 02h ;SetCursor
int 10h
mov dx, offset message
mov ah, 09h ;DispayString
int 21h
pop ds
这在你的代码中做了什么?
。如果可能,还要确定其大小。
编写以下内容:
message db 'Hello World',10,13,'$'
size equ ($-1)-message
$ 是当前行(代码(开始的位置。
这里大小将得到 13 个字节。
然后像这样使用它:
mov cx, size