Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 20
1

Форматирование дискеты (int 13h)

09.12.2019, 20:25. Показов 1743. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как отформатировать только первую сторону дискеты с размером сектора 512? Вот есть код форматирования ВСЕЙ дискеты. Подскажите что нужно поменять?
C++
1
2
3
4
5
6
7
asm mov ah, 0x05
asm mov al, 0x01
asm mov dh, 0x00
asm mov dl, 0x00
asm mov cx, 1112
asm mov es:[bx], cx
asm int 0x13
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2019, 20:25
Ответы с готовыми решениями:

Форматирование дискеты(1.44) int 13h
Здравствуйте! Есть задание: Форматировать дорожку № 7 нижней поверхности дисковода с размером...

Форматирование дискеты
Доброе время суток, господа и дамы. Требуется отформатировать дискету стандартным форматом (80...

Форматирование сектора дискеты
Здравствуйте! Пытаюсь отформатировать один сектор дискеты следующим образом: mov cx, 7 ...

Форматирование сектора дискеты
Программа должна форматировать дискету не полностью, а только дорожка 9 сектор 1,2. Сделать это...

3
593 / 390 / 70
Регистрация: 29.03.2013
Сообщений: 813
10.12.2019, 19:04 2
Цитата Сообщение от nickilim Посмотреть сообщение
Вот есть код форматирования ВСЕЙ дискеты.
Что-то я в этом сильно сомневаюсь. Описание функции тут: Int 13/AH=05h.
И, ЕМНИП, то без предварительного вызова функции Int 13/AH=17h или Int 13/AH=18h, функция Int 13/AH=05h работать не будет.
0
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 20
10.12.2019, 19:21  [ТС] 3
А вот это будет работать? Только тут сектор 128.
C++
1
2
3
4
5
6
7
asm mov ah, 0x05
asm mov al, 0x01
asm mov ch, 0x00
asm mov dh, 0x00
asm mov dl, 0x00
asm mov ax, 0x04
asm int 0x13
Вот это
C++
1
asm mov ax, 0x04
заменить на
C++
1
asm mov ax, 0x06
?
0
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.12.2019, 23:49 4
nickilim, как уже сказали, сначала нужно вызывать ah=17h – это во-первых.
А во-вторых, нужно по адресу ES:BX сформировать таблицу информации о форматируемых секторах, по 4 байта/значения на каждый сектор, а у вас только 2 байта туда записывается (да и правильно ли настроена пара ES:BX?)

Добавлено через 18 секунд
Читайте внимательно описание функции ah=05h, выше ссылку прислали.
0
10.12.2019, 23:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2019, 23:49
Помогаю со студенческими работами здесь

Функция 48h int 13h
Расскажите, пожалуйста, про функцию 48h прерывания 13h. Где про Int 13h находил, там про такую...

Использование прерывания int 13h функции ah=48h
Может кто знает как использовать прерывание int 13 ah 48 - получить информацию о диске. С...

Параметры при вызове int 10h ah=13h
Здравствуйте в видеорежиме есть функция, которая выводит строку в назначенном положении курсора....

Прерывание int 13h не отрабатывает - переходит по неправильному адресу
Добрый день уважаемые форумчане. Попытаюсь объяснить суть проблемы: Задача: нужно записать данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru