Fasm:如何在 x 和 y 方向上移动字符串
Fasm: How to move a string in x and y direction
我想输出一个字符串,例如 "hello",我想通过将它移动到 x 或 y 方向来使该字符串运动。如何使用 fasm 做到这一点?谢谢。
要创建字符串移动的错觉,请将字符串写在选定的位置,然后在屏幕上用等量的 space 个字符填充相同的位置后不久。
完成后,您就可以 re-write 将字符串置于略微偏左或偏右或高于或低于当前位置的位置。
在这里您可以找到关于 the BIOS SetCursor function 的信息。
示例从 80x25 文本屏幕的中间开始:
mov dx, 0C28h ;Row in DH is 12, Column in DL is 40
call ShowString
mov dx, 0D29h ;Row in DH is 13, Column in DL is 41
call ShowString
mov dx, 0E2Ah ;Row in DH is 14, Column in DL is 42
call ShowString
mov dx, 0F2Bh ;Row in DH is 15, Column in DL is 43
call ShowString
---
ShowString:
mov bh, 0 ;Display page 0
mov ah, 02h ;Set Cursor
int 10h
push dx
mov dx, String
mov ah, 09h
int 21h
!!! Here you wait a bit !!!
pop dx
mov ah, 02h ;Set Cursor
int 10h
mov dx, White
mov ah, 09h
int 21h
ret
String db 'Title', '$'
White db ' ', '$'
我想输出一个字符串,例如 "hello",我想通过将它移动到 x 或 y 方向来使该字符串运动。如何使用 fasm 做到这一点?谢谢。
要创建字符串移动的错觉,请将字符串写在选定的位置,然后在屏幕上用等量的 space 个字符填充相同的位置后不久。
完成后,您就可以 re-write 将字符串置于略微偏左或偏右或高于或低于当前位置的位置。
在这里您可以找到关于 the BIOS SetCursor function 的信息。
示例从 80x25 文本屏幕的中间开始:
mov dx, 0C28h ;Row in DH is 12, Column in DL is 40
call ShowString
mov dx, 0D29h ;Row in DH is 13, Column in DL is 41
call ShowString
mov dx, 0E2Ah ;Row in DH is 14, Column in DL is 42
call ShowString
mov dx, 0F2Bh ;Row in DH is 15, Column in DL is 43
call ShowString
---
ShowString:
mov bh, 0 ;Display page 0
mov ah, 02h ;Set Cursor
int 10h
push dx
mov dx, String
mov ah, 09h
int 21h
!!! Here you wait a bit !!!
pop dx
mov ah, 02h ;Set Cursor
int 10h
mov dx, White
mov ah, 09h
int 21h
ret
String db 'Title', '$'
White db ' ', '$'