Вывод на экран текущего видеорежима - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, помогите разобраться с программой. Задача вывести текущий видеорежим на экран. Написал текст программы, но она не хочет работать, ни в какую... условие все вроде правильно, незколько раз пробовал по разному компилировать, все равно виснет... Раотаю на TASM'е под DOS box, Windows 7 32. может в ОС проблема... Вот прога
.model small
.stack 100
.data
str1 db "Tip videorejima ekrana: $"
a0 db "Bios $"
a1 db "40*25 cvetnoi $"
a2 db "80*25 cvetnoi $"
a3 db "80*25 monohromniy $"
.code
start:
    mov ax, @data
    mov ds,ax
 
mov ax, 3
    int 10h
    
    int 11h
mov bx,ax
    shl bx,10
    shr bx,14
    
    test bx,0000000000000000b
    jne s1 
    test bx,0000000000000001b
    jne s2
    test bx,0000000000000010b
    jne s3
    test bx,0000000000000011b
    jne s4
    
    s1: 
 
mov ax,09h
    mov dx, offset a0
    int 21h
jmp exit
    
    s2: 
 
mov ax,09h
    mov dx, offset a1
    int 21h
jmp exit
 
    s3: 
 
mov ax,09h
    mov dx, offset a2 
    int 21h
jmp exit
 
    s4:
xor ax,ax
 mov ax,09h
    mov dx, offset a3   
    int 21h
exit:
 
     mov ah,0
int 16h
mov ax,4c00h
int 21h
end start

Решение задачи: «Вывод на экран текущего видеорежима»

textual
Листинг программы
; masm dos com #
.286
.model tiny
.code
org 100h
start:  mov ax,13h
    int 10h
    mov ah,0Fh
    int 10h
    aam
    or al,"0"
    push ax
    mov al,ah
    aam
    or ax,"00"
    ror ax,8
    int 29h
    mov al,ah
    int 29h
    pop ax
    int 29h
    mov ah,0
    int 16h
    mov ax,3
    int 10h
    ret
end start

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Выводит на экран текущий видеорежим.
  2. Получает и сохраняет в регистре AX значение видеорежима.
  3. Форматирует значение видеорежима в шестнадцатеричную систему счисления с ведущими нулями.
  4. Сдвигает значение видеорежима на 8 позиций вправо.
  5. Выводит на экран отформатированное значение видеорежима.
  6. Возвращает управление в операционную систему.

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы