Не работает графика при 32К - Assembler
Формулировка задачи:
Добрый день! дело заключается в то, что нужно написать программу для тестирования видео режимов, так вот я написал, только при тестировании режимов с 32К точек и более - черный экран, при этом размер окна меняется. Подскажите, в чем дело? Не судите строго, я начинающий в ассемблере.
cseg segment assume cs:cseg, ds:cseg org 100h start: ;Разрешение 640 x 480 2 цвета mov ax, 4f02h mov bx, 11h int 10h mov ah,13h mov al,0 mov cx,19 mov dl,20 mov dh,20 mov bl,4h ;красный цвет mov bp, offset mess int 10h xor ax, ax int 16h ;Разрешение 640 x 480 16 цветов mov ax, 4f02h mov bx, 12h int 10h mov ah,13h mov al,0 mov cx,19 mov dl,20 mov dh,20 mov bl,4h ;красный цвет mov bp, offset mess1 int 10h xor ax, ax int 16h ;Разрешение 320 x 200 256 цветов mov ax, 4f02h mov bx, 13h int 10h mov ah,13h mov al,0 mov cx,19 mov dl,20 mov dh,20 mov bl,4h ;красный цвет mov bp, offset mess2 int 10h xor ax, ax int 16h ;Разрешение 640*480, 16 цветов SVGA режим mov ax, 4f02h mov bx, 100h int 10h mov ah,13h mov al,0 mov cx,19 mov dl,20 mov dh,20 mov bl,4h ;красный цвет mov bp, offset mess3 int 10h xor ax, ax int 16h ;Разрешение 800*600, 256 цветов SVGA режим mov ax, 4f02h mov bx, 103h int 10h mov ah,13h mov al,0 mov cx,19 mov dl,20 mov dh,20 mov bl,4h ;красный цвет mov bp, offset mess4 int 10h xor ax, ax int 16h ; Разрешение 1024*768, 256 цветов SVGA режим mov ah, 4Fh mov al, 02h mov bx, 105h int 10h mov ah,13h mov al,0 mov cx,20 mov dl,10 mov dh,10 mov bl,4h ;красный цвет mov bp, offset mess5 int 10h xor ax, ax int 16h ; Разрешение 1280*1024, 256 цветов SVGA режим mov ah, 4Fh mov al, 02h mov bx, 107h int 10h mov ah,13h mov al,0 mov cx,20 mov dl,10 mov dh,10 mov bl,4h ;красный цвет mov bp, offset mess6 int 10h xor ax, ax int 16h ; Разрешение 640x480, 32K цветов SVGA режим mov ax, 4F02h ;mov al, 02h mov bx, 10Dh int 10h mov ah,13h mov al,0 mov cx,30 mov dl,20 mov dh,20 mov bl,4h ;красный цвет mov bp, offset mess7 int 10h xor ax, ax int 16h ; Разрешение 800x600, 32K цветов SVGA режим ;mov ah, 4Fh ;mov al, 02h ;mov bx, 113h ;int 10h ;mov ah,13h ;mov al,0 ;mov cx,20 ;mov dl,10 ;mov dh,10 ;mov bl,4h ;красный цвет ;mov bp, offset mess8 ;int 10h ;xor ax, ax ;int 16h ; Разрешение 1024x768, 32K цветов SVGA режим ;mov ah, 4Fh ;mov al, 02h ;mov bx, 116h ;int 10h ;mov ah,13h ;mov al,0 ;mov cx,20 ;mov dl,10 ;mov dh,10 ;mov bl,4h ;красный цвет ;mov bp, offset mess9 ;int 10h ;xor ax, ax ;int 16h ; Обработка окончания mov ax, 4c00h int 21h mess db '640 x 480 2colors', 0dh,0ah,'$' mess1 db '640 x 480 16colors', 0dh,0ah, '$' mess2 db '320 x 200 256colors', 0dh,0ah, '$' mess3 db '640 x 480 16colors', 0dh,0ah, '$' mess4 db '800 x 600 256colors', 0dh,0ah, '$' mess5 db '1024 x 768 256colors', 0dh,0ah, '$' mess6 db '1280 x 1024 256colors', 0dh,0ah, '$' mess7 db '640 x 480 32Kcolors', 0dh,0ah, '$' mess8 db '800 x 600 32Kcolors', 0dh,0ah, '$' mess9 db '1024 x 768 32Kcolors', 0dh,0ah, '$' mess10 db '1280 x 1024 32Kcolors', 0dh,0ah, '$' cseg ends end start
Решение задачи: «Не работает графика при 32К»
textual
Листинг программы
xor ax,ax mov es,ax mov bx,es:[046Ch] mov cx,es:[046Ch+2]
Объяснение кода листинга программы
xor ax,ax
- Код очищает регистр AX.mov es,ax
- Код перемещает сегментный регистр ES в регистр AX.mov bx,es:[046Ch]
- Код перемещает байт из памяти по адресу 046C в регистр BX.mov cx,es:[046Ch+2]
- Код перемещает слово (2 байта) из памяти по адресу 046C в регистр CX.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д