我想在汇编中打印出字符串,我设法打印出一个字符串,但是我不知道如何在屏幕上的特定位置打印它
这是我正在使用的代码:
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
图形模式是因为这是我正在做的一个较大项目的一部分,但据我了解,这应该不是问题。
该程序确实打印出消息,只是将其打印在屏幕的右上角。 我非常想知道如何在特定位置打印消息,并在可能的情况下确定其大小。
答案 0 :(得分:0)
您只需要将光标置于需要显示字符串的位置即可。
屏幕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
$ 是当前行(代码)的开始位置。
在这里 size 将获得13个字节。
然后像这样使用它:
mov cx, size