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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2010, 21:46   #1
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию что означает команда db 0x66,0x59

Здравствуйте.
есть код:
Код:
void main()
{
    byte a_h,a_l,b_h,b_l,c_l,d_l;
    word c_x,d_x;
    char str[512];
    word i;
    clrscr();
    asm{
	mov ax,0x0B101   
	db 0x66,0x59    	
	int 0x1A        
	mov a_h,ah
	mov a_l,al      
	mov b_h,bh      
	mov b_l,bl      
	mov c_l,cl      
	mov d_x,dx      
	}
printf("0 = PCI BIOS: AH=%d\n",a_h);
printf("mechanism Al: %d\n",a_l);
printf("string PCI: %2x\n",d_x);
printf("interface revision number: %d\n",b_h);
printf("Interface subnumber: %d\n",b_l);
printf("Last bus number: %d\n\n",c_l);
------
--и так далеее...
приведено только начало, не суть важно.
т.е. программа проверяет наличие шины PCI, в общем все понятно
Цитата:
Для проверки присутствия PCI BIOS в системе по прерыванию 1Ah вызывается

функция B101h.

Перед вызовом прерывания 1Ah требуется занести в регистр АХ код 0B101h. После выполнения функции в регистрах будут размещены следующие значения:
• в EDX — сигнатура «PCI» («Р» — в DL, «С» — в DH и т. д., в старшем байте — пробел);
• в АН — признак присутствия (0 — BIOS присутствует, если в EDX правильная сигнатура, любое c
другое значение — PCI BIOS отсутствует);
• в AL — аппаратный механизм;
• в ВН — номер версии интерфейса PCI (в двоично-десятичном коде);
• в BL — подномер версии интерфейса (в двоично-десятичном коде);
• в CL - номер последней шины PCI в системе (счет номеров начинается с нуля).
Флаг CF также будет содержать признак наличия PCI BIOS (0 — BIOS присут*ствует, 1 — отсутствует).
Вопрос что означает команда? db 0x66,0x59
спасибо
madmot вне форума Ответить с цитированием
Старый 18.06.2010, 21:53   #2
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

дополню,
естественно это только фрагмент, там выше все заголовочные файлы подключены и программа соответственно будет работать только в DOS
madmot вне форума Ответить с цитированием
Старый 18.06.2010, 23:40   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ndisasm показал что это pop ecx
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.06.2010, 12:30   #4
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

спасибо, уже разобрался, там не только рор, но и 66h - обрезает половину когда адресуется 32 в 16, прикрепляю файлик с отчетом по лабе там все подробно, мож кому надо.
Вложения
Тип файла: doc Лабораторная работа отчет.doc (150.5 Кб, 48 просмотров)
madmot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает строка? Stasmotion Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 17.05.2010 09:42
подскажите что это означает?? мария2507 Microsoft Office Excel 4 25.01.2010 16:07
Что означает конструкция... Alex Cones Общие вопросы Delphi 7 13.12.2009 16:06
Что означает? F_A_N_Alex Помощь студентам 1 07.10.2009 22:50
что означает это сообщение? 54rus Помощь студентам 15 23.07.2009 18:05