Fasm:如何在x和y方向上移动字符串

时间:2018-03-12 14:32:53

标签: screensaver fasm

我想输出一个字符串,例如“hello”,我想通过将它移动到x或y方向来使该字符串运动。如何使用fasm做到这一点?谢谢。

1 个答案:

答案 0 :(得分:0)

要创建字符串移动的错觉,您可以在选定的位置上写下字符串,并在屏幕上填充相同空格字符后的同一位置。 完成后,您就可以将字符串重新写入稍微向左或向右或在当前位置上方或下方的位置。

您可以在此处找到有关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 '     ', '$'