Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65

Запись и чтение файла

05.11.2013, 16:54. Показов 2998. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно записать и прочитать файл с лазерного диска не пользуясь командой int.Aссемблятор: NASM
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2013, 16:54
Ответы с готовыми решениями:

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Запись и чтение *.txt файла - запись частичная
Доброе время суток! Помогите решить проблемку. У меня либо не полностью считывается файл, либо не полностью записывается! Не могу понять в...

21
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
05.11.2013, 20:28
чтение где-то на форуме уже было(ищем темы с загрузчиками. даже я код выкладывал). запись там почти аналогичная. только команду заменить с чтения на запись и outsw делать.
1
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
06.11.2013, 11:24
А как именно прочесть? Вывести его содержимое или исполнить?
1
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65
06.11.2013, 13:47  [ТС]
загрузить в оп память
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
06.11.2013, 14:38
Выкладываю код драйвера для работы с CD-ROM. Писал для собственного ядра. Код выглядит криво, но он рабочий. Правда, для него инклуды разные нужны и ядро, код которого я благополучно запорол xD Есть сорцы более старой версии, но с ней драйвер не работает. Видать, я много чего менял в последней версии.

Принцип работы с ФС и с самим сидюком понятен из кода драйвера. Код писался для FASM'а. Разжевывать каждую строку не собираюсь, если что.

Драйвер для PM.

Если решишься читать код, то могу выложить описание системных вызовов и инклуды. Сейчас не буду, ибо сервак чет лагает
Вложения
Тип файла: 7z drivers.7z (6.6 Кб, 29 просмотров)
1
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
06.11.2013, 14:38
artem3213212, а побольше узнать можно? Написать драйвер для прожига CD диска достаточно сложно. Ну а прочитать - гораздо проще. Только что бы файл размещался на 7cooh (если он меньше 2048 байт). Может не то, что вы искали.
1
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65
07.11.2013, 13:26  [ТС]
а можно просто объяснить в командах
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
07.11.2013, 14:44
Цитата Сообщение от artem3213212 Посмотреть сообщение
объяснить в командах
это как?
1
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65
07.11.2013, 22:47  [ТС]
объяснить работу мне трудно понять что в драйвере относится к общению с ядром а что к управлению дисководом
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
07.11.2013, 23:26
а там комменты для дяди Васи? xD

read_sect_cd - это чтение сектора с CD
1
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
08.11.2013, 00:20
sh2ezo, не смейтесь над ним, ТС явно не асмофаг и вовсе не шарит в системном программировании. Очень распространенная ошибка новичков, переходящих с языков высокого уровня под Windows (где стандартный Hello Hell вызывается чем-то вроде Showmessage) на низкоуровнеровневое системное. Ваш код он явно не в силах разобрать.
2
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65
08.11.2013, 11:38  [ТС]
нашёл но обычно пишут
Assembler
1
команда атрибуты ;коментарий
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
08.11.2013, 14:42
Цитата Сообщение от artem3213212 Посмотреть сообщение
нашёл но обычно пишут
Assembler
1
команда атрибуты ;коментарий
Для ассемблера это некорректно. Дело в том, что команды ассемблера примитивны по своей структуре и практически одна строка кода в отдельности ничего полезного не делает (если, конечно, не макрос или прерывание и еще исключение составляет Windows API, но сейчас не об этом). Поэтому более опытные используют связки кода, где несколько строк ассемблера выполняют какое-либо значимое действие. Изучайте алгоритмы построения программ и архитектуру IBM PC, без этих знаний ассемблер в системном программировании бесполезен.

Assembler
1
Mov eax,ebx ;EAX принимает значение EBX
2
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65
09.11.2013, 13:53  [ТС]
а где в драйвере задаётся drive.len
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
09.11.2013, 14:33
artem3213212, после вопросов надо ставить вопросительный знак, кстати.

Посмотреть atacddrv.struc.ASM что не позволило?
1
65 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 65
03.12.2013, 14:32  [ТС]
ок все переварил но запись как сделать запись?
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
03.12.2013, 14:47
Переварил? мммм... странно, что после полного переваривания такой глупый вопрос возник. Работу с ATAPI CD-ROM переварил? Если переварил, опиши мне алгоритм чтения секторов с компакт-диска через порты. Если непонятен запрос, то опиши подробно на русском, что и зачем делает, например, процедура чтения, которая есть в выложенных мною исходниках.

Не по теме:


Напомню, что я не собираюсь пока писать процедуру записи на сидюк, ибо мне оно пока не надо, так что будем учить тебя впитывать и использовать информацию :D

1
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
03.12.2013, 16:23
Для HDD (ATA, LBA) код для чтения сектора будет выглядеть примерно так:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mov edx, 0x01F6 
shr eax, 24 
or al, 11100000b 
out dx, al
mov edx, 0x01F2 
mov al, 100 
out dx, al
mov edx, 0x1F3 
mov eax, ebx 
out dx, al
mov edx, 0x1F4 
mov eax, ebx 
shr eax, 8 
out dx, al
mov edx, 0x1F5 
mov eax, ebx 
shr eax, 16 
out dx, al
mov edx, 0x1F7 
mov al, 0x20
out dx, al
 
.still_go0ing: 
in al, dx
test al, 8 
jz .still_go0ing 
 
 
mov cx,256
mov di,buffer
mov dx,0x1f0 
rep insw
Я в этом не шибко шарю, но полагаю, принцип тот же. Играть с подобным кодом на реальной машине не рекомендую, может снести основную ОС. С Sata работать не будет, если в BIOS не стоит в качестве эмуляции IDE.
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
03.12.2013, 16:27
mashuly, чуваку писать на сидюк надо, а там принцип другой будет совершенно.
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
03.12.2013, 16:38
Цитата Сообщение от sh2ezo Посмотреть сообщение
mashuly, чуваку писать на сидюк надо, а там принцип другой будет совершенно.
Опасное дело. Спонтанный код может привести не только к порче дисков, но и вовсе спалить контроллер дисковода. А принцип разве разный? Порт чтения-записи и rep insw (outsw), номера портов другие, конечно же.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2013, 16:38
Помогаю со студенческими работами здесь

Чтение и запись из файла, проверка файла на пустоту
В общем написал код который использует сессии и массивы, не могу понять как переделать так что бы сначала он файл проверял на пустоту (...

Запись и чтение из файла C++
Всем привет! У меня есть файл .b (Сохранение для GTA 3). Мне нужно написать простенький редактор сохранений для этой игры, чтобы менять...

Запись и чтение из файла
Помогите пожалуйста, голова совсем не соображает. Как мне мои данные записать в файл и считать из него? Код на симплекс метод (Turbo Pascal...

Запись и чтение из файла
Нужно писать в файл построчно, при этом требуется затем читать из него с нужного места. По идее это реализует класс RandomAccessFile, но...

Запись в файла и чтение
Где ошибка ?. Идея такая, что программа создает и сохраняет файл на устройстве в формате *.doc потом открывает файл при этом пользователю...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru