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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 11:46   #61
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Свой обработчик по моему сложновато будет писать)
смотря какого прерывания, точнее что вы хотите на него возложить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.10.2011, 11:57   #62
program2001
Пользователь
 
Аватар для program2001
 
Регистрация: 20.02.2011
Сообщений: 68
По умолчанию

мне надо сделать что-то вроде прерываний 10,13,16,33 и ещё своё прерывание для работы с окнами..
Цитата:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Linus Torvalds
program2001 вне форума Ответить с цитированием
Старый 23.10.2011, 12:14   #63
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

из 10h прерывания вам мало что будет нужно.
лично я его применял до перехода в защищенный режим для инициализации VESA.
далее у меня есть прямой доступ к видеопамяти, и я что хотел то и творил там
то есть просто подпрограммы для вывода.
для аналога 13-го информации достаточно есть
аналог 16-го примеров масса даже тут.
с мышью сложнее, вроде было в книге в какой-то, но помоему есть где подсмотреть.

вы вообще в защищенном режиме или в реальном?
если защищенный то, будете ли применять многозадачность и разделение на уровни привилегий.
да и кстати, код из БИОСа может не быть универсальным.

и маленький совет, не стройте сразу наполеоновский планов с ОС, тут туева туча мелочей которые обычно стоит решить, чтобы эффективно было.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 23.10.2011 в 12:18.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.10.2011, 12:39   #64
program2001
Пользователь
 
Аватар для program2001
 
Регистрация: 20.02.2011
Сообщений: 68
По умолчанию

Вопрос по BOOT'у:как в FASM поставить нули до 510??
Цитата:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Linus Torvalds
program2001 вне форума Ответить с цитированием
Старый 23.10.2011, 12:45   #65
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

TIMES 510-($-$$)db 0
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.10.2011, 13:00   #66
program2001
Пользователь
 
Аватар для program2001
 
Регистрация: 20.02.2011
Сообщений: 68
По умолчанию

А мне просто казалось в FASM эта команда пишется не так как в NASM..
Цитата:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Linus Torvalds
program2001 вне форума Ответить с цитированием
Старый 23.10.2011, 13:42   #67
program2001
Пользователь
 
Аватар для program2001
 
Регистрация: 20.02.2011
Сообщений: 68
По умолчанию

У меня есть вторичный загрузчик который должен делать следующее:
Цитата:
1.Инициализировать оборудование
2.Описать файловую систему
3.Установить VESA Super VGA
4.Установить PM
5.Загрузить kernel
Вопрос:как сделать пункты 1,2,4?
кто может ответьте плз.
Цитата:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Linus Torvalds

Последний раз редактировалось program2001; 23.10.2011 в 18:48.
program2001 вне форума Ответить с цитированием
Старый 24.10.2011, 03:08   #68
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)какое оборудование?
2)какая ФС? и нужно ли это загрузчику?(я лично стал экспериментировать с загрузкой из под ДОСа, ибо 64Кб куда больше чем 512Байт-заголовок ФС)
4)
Код:
; Установка бита PE регистра CR0
	mov 	eax, cr0
	or 	al, 1
	mov 	cr0, eax
НО, сначало пятое, или хоть чтото должно быть готово к защищенному режиму.(на первой странице кстати, Вован, же привел код)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.10.2011, 23:10   #69
program2001
Пользователь
 
Аватар для program2001
 
Регистрация: 20.02.2011
Сообщений: 68
По умолчанию

ФС можно йз другой ОСи спереть,а оборудование хотя бы клавиатуру надо инициализировать пунктом 5
Цитата:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Linus Torvalds

Последний раз редактировалось program2001; 25.10.2011 в 23:15.
program2001 вне форума Ответить с цитированием
Старый 26.10.2011, 12:47   #70
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
kb_state db 0
%define NUM_LED 2
%define CAPS_LED 4
%define SCROLL_LED 1
kb_sk_state db 0
kb_key db 0
kb_ascii db 0
	
KBsetState:
;in al - бит 0-ScrollLock,бит 1-NumLock,бит 2-CapsLock,остальные 0
	and al,00000111b
	mov ah,al
.loop1:
	in al,64h
	and al,00000010b
	cmp al,0
	jne .loop2
	mov al,0xED
	out 60h,al
.loop2:
	in al,64h
	and al,00000010b
	cmp al,0
	jne .loop2
	mov al,ah
	mov [kb_state],al
	out 60h,al
	ret
	
KBchangeState:
;in al - какое состояние менять
	mov ah,al
	mov al,[kb_state]
	xor al,ah
	call KBsetState
	ret
	
KBhandler:
	push	ax
	push bx
	in al,0x60
	mov [kb_key],al
	mov bh,al
	and al,10000000b
	cmp al,0
	je .KP
	jmp .end
.KP:
	and bh,01111111b
	cmp bh,58
	jne .KP_1 
	mov al,4
	call KBchangeState
	jmp .end
.KP_1:
.end:
	pop bx
	pop ax
	irqret
	
KBinit:
	mov al,0xF4
	out 64h,al
	mov eax,KBhandler
	mov bx,8
	shl ebx,16
	mov bx,ax
	shr eax,16
	mov cx,ax
	shl ecx,16
	mov cx,1000111000000000b
	mov al,0x21
	call IDTwrite
	and byte[IRQ_LO],11111101b
	call PICsetState
	ret
	
KBwaitKey:
	cmp byte[kb_key],0
	je KBwaitKey
	ret
	
KBkey:
;out al - код символа
	call KBwaitKey
	mov al,[kb_key]
	mov byte[kb_key],0
	ret
вот примерчик из моего кода.(там уже инициализирована IDT и PIC)
еще у Вована в сорцах есть код.

да и кстати, это все скорее уж задача ядра, а не загрузчика(клава, носители, ФС и тп).

а насчет ФС, сначало работу с носителями надо организовать.
а так, про FAT достаточно информации(и многим иным ФС).

PS: это все с клавой по PS2, но не USB.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объявление собственной глобальной процедуры Gorin Общие вопросы Delphi 11 06.11.2007 17:49
РАЗРАБОТКА DLL Leo Общие вопросы Delphi 2 26.10.2007 21:35
Разработка протокола OrdJONY Общие вопросы по программированию, компьютерный форум 2 04.10.2007 13:21