OSDev

для всех
Текущее время: 24 авг 2025, 02:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 131 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 14  След.
Автор Сообщение
 Заголовок сообщения: Re^2: Файловая система для флешки
СообщениеДобавлено: 19 окт 2008, 02:28 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Правильно печатает "ee", как в коде и задано. Сразу после вызова Int 13h идёт вызов

mov al, 0x65
call _kputchar

а затем исполняется
kputchar:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^2: Файловая система для флешки
СообщениеДобавлено: 19 окт 2008, 02:40 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Чтобы при успешном вызове int 13h печалалась другая буква, надо после команды
jc _error

добавить код

mov al, 0x28
call _kputchar
the_end: jmp the_end


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Файловая система для флешки
СообщениеДобавлено: 19 окт 2008, 14:18 
Так че ee выводит? Должно же A выводить...
Так оно не может считать? Раз выдает сообщение об ощибке... Что у меня не правильно? И как проверить потом считанные данные? Как их на экран вывести?


Вернуться к началу
  
 
 Заголовок сообщения: Re: Файловая система для флешки
СообщениеДобавлено: 19 окт 2008, 17:01 
Вот переделал. Код работает, но почему то не считывает... Ошибку выбивает (( В чем проблема?

section .data

msg_error db "Error!"

dap:
packet_size db 10h
reserved db 00h
N_SEC dw 01h
buff_seg dw 00h
buff_off dw buff
X_SEC dd 0
dd 0

section .bss

buff resb 512

section .text

global _start

_error:

mov al, 0x28
call _kputchar
jmp _exit

_kputchar:
pusha
mov ah, 0x0E
int 0x10
popa
ret

_start:

mov ah, 42h
mov dl, 80h
mov si, dap
int 13h
jc _error

mov ah, 0x0E
mov al, 0x29
int 0x10

_exit: jmp _exit


Вернуться к началу
  
 
 Заголовок сообщения: Re^2: Файловая система для флешки
СообщениеДобавлено: 20 окт 2008, 08:54 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
А вообще не странновата ли структура программы, если учесть, что это код загрузочного сектора?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^3: Файловая система для флешки
СообщениеДобавлено: 20 окт 2008, 09:05 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
mbr:

org 7C00h
...
rb 7E00h-42h-$
partition_table:
...
dw 0AA55h


загрузочный сектор раздела:

org 7C00h
jmp byte bpb_end
nop
bpb:
...
bpb_end:
...
rb 7E00h-2-$
dw 0AA55h


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Файловая система для флешки
СообщениеДобавлено: 20 окт 2008, 11:48 
И в какой участок этого кода сунуть мой код...


Вернуться к началу
  
 
 Заголовок сообщения: Re^2: Файловая система для флешки
СообщениеДобавлено: 20 окт 2008, 12:16 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Это два разных шаблона. Для MBR и загрузочного раздела соответственно.

Код MBR начинается с самого начала сектора, данные можно разместить после, а под BSS и стек использовать любой свободный участок памяти, например, ниже адреса 0x7C00. И заканчивать не дальше, чем за 66 байт до конца сектора, т.к. начиная с этой позиции располагается таблица разделов. Хотя разработчики Windows плевали на это общепринятое правило и в позиции, находящейся за 72 байта до конца сектора сохраняют идентификатор диска размером в двойное слово плюс еще два байта обычно остаются обнуленными.

Код загрузочного сектора раздела тоже начинается с самого начала, но там должна быть какая-нибудь инструкция перехода (обычно короткий переход плюс ноп или просто длинный - не дальний! - переход, ну по крайне мере этого требует Microsoft в своих спецификациях, хотя я встречал и cli+shortjmp), потому что начиная со смещения +3 должна следовать обязательная для файловой системы структура (ее размер и отчасти содержимое зависит от типа файловой системы), а уже после твой код.

В последних двух байтах любого загрузочного сектора должна находиться сигнатура 0x55, 0xAA.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Файловая система для флешки
СообщениеДобавлено: 20 окт 2008, 12:28 
Но он же ж и так грузился. Только ошибку чтения выдавал. Думаешь, если сделаю по правилам, то все будет работать?


Вернуться к началу
  
 
 Заголовок сообщения: Re^2: Файловая система для флешки
СообщениеДобавлено: 20 окт 2008, 12:38 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Не знаю, как он мог работать вообще. Ты компилировал в бинарник, а потом записывал в загрузочный сектор? Возможно что-то и работало, например, находящаяся у тебя в начале структура данных выполнялась как код, но это явно не то, что ты задумывал. Естественно, если все сделать правильно, то это будет нормально работать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 131 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 14  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB