Задать вопрос

Почему этот код не заполняет синим весь экран?

; Объявляем секцию данных
SECTION .DATA
    ; Объявляем переменные X и Y равными 0
    X DW 0
    Y DW 0

; Включаем графический режим VESA 1024x768@32
MOV AX, 4f02h
MOV BX, 117h
INT 10h

; Переходим к циклу
JMP WXNEW

; Объявляем внешний цикл
WXNEW:
    ; Переходим к циклу
    JMP WYNEH

    ; Обьявлем внутренний цикл
    WYNEH:
        ; Заполняем пиксель синим цветом
        MOV AX, 0C09h
        MOV CX, [X]
        MOV DX, [Y]
        XOR BX, BX
        INT 10h

        ; Увеличиваем Y на 1
        INC WORD [Y]

        ; Проверяем условие цикла
        MOV AX, Y
        CMP AX, 768
        JNE WYNEH

    ; Сбрасываем Y и увеличиваем X
    MOV WORD [Y], 0
    INC WORD [X]
    
    ; Проверяем условие цикла
    MOV AX, X
    CMP AX, 1024
    JNE WXNEW

; Зацикливаемся
JMP $
TIMES 510-($-$$) DB 0
DW 0xaa55


66b05afadda35836915852.png
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
15432
@15432
Системный программист ^_^
Ну один столбец синим он вам заполнил.
А так, у вас в проверке границ MOV AX, Y и MOV AX, X вместо [Y] и [X]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы