В программировании на языке ассемблера 8086 очистка экрана является обычной операцией при работе с текстовыми пользовательскими интерфейсами или разработке простых игр. В этой статье блога мы рассмотрим различные способы очистки экрана на примерах кода. Независимо от того, являетесь ли вы новичком или опытным программистом на ассемблере, это руководство предоставит вам ряд возможностей для очистки экрана в ассемблере 8086.
Метод 1: использование INT 10H/AH=00H
Один из самых простых и распространенных методов очистки экрана — использование прерывания BIOS 10H с функцией AH=00H. Эта функция очищает весь экран текстового режима, прокручивая его вверх. Вот пример использования этого метода:
MOV AH, 00H ; Function code for scrolling
MOV AL, 03H ; Number of lines to scroll
MOV BH, 07H ; Attribute (white text on black background)
MOV CX, 0 ; Upper-left corner of the screen
MOV DX, 184FH ; Lower-right corner of the screen
INT 10H ; Call the BIOS interrupt
Метод 2: использование INT 10H/AH=06H
Другой метод очистки экрана — использование прерывания BIOS 10H с функцией AH=06H. Эта функция очищает весь экран текстового режима, заполняя его пустыми местами. Вот пример:
MOV AH, 06H ; Function code for clearing the screen
MOV AL, 0 ; Display attribute (white text on black background)
MOV BH, 07H ; Page number (0 for the first page)
MOV CX, 0 ; Upper-left corner of the screen
MOV DX, 184FH ; Lower-right corner of the screen
INT 10H ; Call the BIOS interrupt
Метод 3: использование прямой записи в память
Если вы предпочитаете более прямой подход, вы можете очистить экран, записав пустые места непосредственно в видеопамять. В текстовом режиме видеопамять начинается по адресу 0B800H. Вот пример:
MOV AX, 0B800H ; Video memory segment
MOV ES, AX ; Set ES to video memory segment
MOV DI, 0 ; Start at the beginning of video memory
MOV CX, 2000 ; Number of characters to clear (80x25 text mode)
MOV AL, ' ' ; Blank space character
REP STOSW ; Store blank spaces in video memory
В этой статье мы рассмотрели несколько способов очистки экрана на ассемблере 8086. Мы рассмотрели использование прерываний (INT 10H) и прямой записи в память для выполнения этой операции. Выбор метода зависит от ваших конкретных требований и стиля программирования. Поняв эти методы, вы получили ценные инструменты для улучшения своих навыков программирования на ассемблере и создания более динамичных пользовательских интерфейсов.