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 '     ', '$'