装配更快地清除屏幕

时间:2017-06-04 19:29:11

标签: assembly screen masm irvine32

清除屏幕时出现问题。

我正在使用调用Clrscr ,但速度很慢。它不够快,所以我有屏幕,黑色,没有数字,因为等待功能Clrscr完成。

    call Clrscr

  ; Write a string to the console:
    INVOKE WriteConsole,
        consoleHandle,              ;console output handle
        ADDR HANGMAN_GOODGAME_00,               ; string pointer
        messageSizeGoodGame,                ; string length
        ADDR bytesWritten,          ; returns num bytes written
        0                           ; not used

    mov eax, drowDelay
    call Delay
    call Clrscr

  ; Write a string to the console:
    INVOKE WriteConsole,
        consoleHandle,              ;console output handle
        ADDR HANGMAN_GOODGAME_01,               ; string pointer
        messageSizeGoodGame,                ; string length
        ADDR bytesWritten,          ; returns num bytes written
        0                           ; not used

    mov eax, drowDelay
    call Delay
    call Clrscr

  ........

这是照片。它的外观如何没有翘曲。我正在尝试制作动画.. :)

enter image description here

1 个答案:

答案 0 :(得分:2)

您只需设置光标位置即可。
只需使用winapi中的setcursorpos:

push 0
push 0
call [SetCursorPos]

它位于user32.dll

编辑:它的方式很简单,你将光标位置设置在左上角,让人感觉运动