如何在NASM中清除控制台窗口?

时间:2013-05-13 15:37:25

标签: assembly screen nasm

是否有任何中断可以让我清除NASM中的控制台窗口?或者我是否必须使用一些技巧来获得这样的效果?

1 个答案:

答案 0 :(得分:0)

这是一种方法:

; ------------------------------------------------------------------
; os_clear_screen -- Clears the screen to background
; IN/OUT: Nothing (registers preserved)

os_clear_screen:
    pusha

    mov dx, 0           ; Position cursor at top-left
    call os_move_cursor

    mov ah, 6           ; Scroll full-screen
    mov al, 0           ; Normal white on black
    mov bh, 7           ;
    mov cx, 0           ; Top-left
    mov dh, 24          ; Bottom-right
    mov dl, 79
    int 10h

    popa
    ret


; ------------------------------------------------------------------
; os_move_cursor -- Moves cursor in text mode
; IN: DH, DL = row, column; OUT: Nothing (registers preserved)

os_move_cursor:
    pusha

    mov bh, 0
    mov ah, 2
    int 10h             ; BIOS interrupt to move cursor

    popa
    ret

这段代码不是我的,它来自MikeOS,一个用汇编编写的简单操作系统。