Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2013, 22:45   #1
Андрос
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 45
Печаль Асемблер COM - программа о типе видюхи

Всем доброго времени суток, подскажите пожалуйста как и с чего начать, мб есть у кого похожее? Вот условие лабы:
Составить COM-программу определения типа видеоадаптера и вывода сообщения на экран о определенном типе.
Буду рад любой помощи - т.к идей 0 ((( Заранее спасибо...
Кусочек программы как я понимаю есть http://www.programmersforum.ru/showthread.php?t=1918
Подскажите что в ней подправить (или она вроде подходит к моему условию), и еще если не трудно - помогите откоментировать немного, а то тут вообше ничего не понятно(((
Код:
.286
.Model TINY
CSEG segment
assume CS:CSEG, SS:CSEG, ES:CSEG
org 100h
start:
pusha
call WHAT_AD
test al, 0
je VGA_PRESENT
test al, 1
je EGA_PRESENT
test al, 2
je CGA_PRESENT
mov dx, offset _mda
jmp PRINT_PRESENT
VGA_PRESENT:
mov dx, offset _vga
jmp PRINT_PRESENT
EGA_PRESENT:
mov dx, offset _ega
jmp PRINT_PRESENT
CGA_PRESENT:
mov dx, offset _cga
jmp PRINT_PRESENT
PRINT_PRESENT:
mov ah, 9h
int 21h
mov dx, offset _present
mov ah, 9h
int 21h
popa
int 20h

WHAT_AD PROC
PUSH DX
PUSH BX
PUSH CX
;проверка наличия у прерывания 10H функции 1AH - есть у VGA
XOR AL,AL
MOV AH,1AH
INT 10H
CMP AL,1AH
JNZ NO_VGA
XOR AL,AL
JMP SHORT EXIT
NO_VGA:
;проверка наличия у прерывания 10H функции 12H - есть у EGA
MOV AH,12H
MOV BL,10H
JZ NO_EGA
MOV AL,1
JMP SHORT EXIT
NO_EGA:
;проверка наличия CGA
MOV DX,3D4H
CALL SEARCH_6845
JC NO_CGA
MOV AL,3
JMP SHORT EXIT
NO_CGA:
MOV AL,4
EXIT:
POP CX
POP BX
POP DX
RET
WHAT_AD ENDP
;проверка наличия контроллера 6845
;проверка осуществляется путем записи в регистр а потом чтения из него
;если значения совпали то контроллер присутствует
;номер регистра - 0FH но адрес порта у CGA и MDA разный
SEARCH_6845 PROC
MOV AL,0FH
OUT DX,AL
INC DX
IN AL,DX
MOV AH,AL
MOV AL,66H
OUT DX,AL
MOV CX,100H
DELAY:
LOOP DELAY
IN AL,DX
XCHG AH,AL
OUT DX,AL
CMP AH,66H
JZ QUIT
STC
QUIT:
RET
SEARCH_6845 ENDP
_mda db 0Ah, 0Dh, 'MDA$'
_cga db 0Ah, 0Dh, 'CGA$'
_ega db 0Ah, 0Dh, 'EGA$'
_vga db 0Ah, 0Dh, 'VGA$'
_present db ' is present$'
CSEG ends
end start

Последний раз редактировалось Андрос; 02.01.2013 в 23:09.
Андрос вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на ассемблере. Вывести информацию о количестве и типе дисковых носителей. Jiexa023 Помощь студентам 7 15.05.2011 21:26
замена старой (видюхи) на новую kasya Компьютерное железо 0 26.04.2011 09:54
Замена видюхи Stager Компьютерное железо 2 10.10.2009 23:50
Вопрос о типе переменной s1d0r Общие вопросы Delphi 4 17.06.2009 17:27
проконс. на счет кач-ва видюхи? Natala Компьютерное железо 4 17.01.2009 02:25