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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2011, 22:05   #1
rULEZ
Новичок
Джуниор
 
Регистрация: 26.12.2011
Сообщений: 4
По умолчанию Ассемблер, запись в файл.

Здравствуйте, товарищи! Прошу помочь с решением следующей задачи:
Переместить первые две строки файла в конец, а на их место записать указатель на конец файла (jmp <метка>). С чтением первых двух строк я разобрался, метку в конец поместил, но как записать в начале пресловутое "jmp <метка>", попутно не затерев там имеющееся? Очень рассчитываю на вашу помощь, завтра сдавать. Компилятор TASM.

Последний раз редактировалось rULEZ; 26.12.2011 в 22:23.
rULEZ вне форума Ответить с цитированием
Старый 26.12.2011, 22:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

какой файл (какого типа)?
Какой в файле указатель?

я лично вообще ничего не понял...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2011, 22:58   #3
rULEZ
Новичок
Джуниор
 
Регистрация: 26.12.2011
Сообщений: 4
По умолчанию

Serge_Bliznykov
Файл txt, в нем содержится произвольное число строк произвольного содержания.
rULEZ вне форума Ответить с цитированием
Старый 27.12.2011, 00:18   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Файл txt, в нем содержится произвольное число строк произвольного содержания.
так и каким боком здесь лежит ассемблер?
На каком языке пишете программу?

кроме того, раз файл текстовый, то приведите пример, какой файл может быть изначально, и какой он должен стать после обработки?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2011, 00:36   #5
rULEZ
Новичок
Джуниор
 
Регистрация: 26.12.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так и каким боком здесь лежит ассемблер?
На каком языке пишете программу?

кроме того, раз файл текстовый, то приведите пример, какой файл может быть изначально, и какой он должен стать после обработки?
По порядку. Программу нужно написать на ассемблере, компилятор TASM, это указано в заглавном сообщении.
Пример содержания файла:

hello
mmm im trying to think up
something
end

После обработки:

jmp final
something
end
hello
mmm im trying to think up
final:

Я понимаю, что это задание выглядит полной бессмыслицей. Мне дали такую задачу как новичку в ассемблере, как я понимаю, следующим шагом будет модификация com-файлов схожим образом.
rULEZ вне форума Ответить с цитированием
Старый 27.12.2011, 11:54   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Программу нужно написать на ассемблере, компилятор TASM,
весьма сочувствую...

значит алгоритм такой.
1) работу лучше всего вести в дополнительном (ВРЕМЕННОМ) файле.
Это и проще, и намного надёжнее (если программа (по любой причине) отрубится на середине обработки файла - исходный файл не будет повреждён.

2) сразу же в выходной файл записываете jmp final

3) читаете входной файл в буфер, отслеживате в буфере позиции окончания строки (EndOfStr db 0dh, 0ah ). первые две пропускаете. Остальной текст ВЕСЬ записываете в выходной (временный файл). в цикле. пока исходный файл не закончится. закончился. Закрываете его. Дописываете в выходной файл метку.

4) если есть файл исходное_имя.BAK - удаляете его.

5) переименовыете исходный файл.расширение -> исходное_имя.BAK

6) переименовываете временный файл -> исходный файл.расширение

выдаёте прощальное сообщение.

конец.

p.s. мороки с этим ассемблером много.. я бы лично менее, чем за 300 рублей не взялся за выполнение данной задачи.

Цитата:
Мне дали такую задачу как новичку в ассемблере, как я понимаю, следующим шагом будет модификация com-файлов схожим образом.
LOL!
ну-ну...
позвольте метафору:
дали гвоздь и попросили молотком забить этот гвоздь в деревянный столб. А следующим шагом - Вас попросят забить такой же гвоздь в железобетонный столб. А ведь COM файл отличается от текстового больше, чем железобетонный от деревянного...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2011, 13:03   #7
rULEZ
Новичок
Джуниор
 
Регистрация: 26.12.2011
Сообщений: 4
По умолчанию

Цитата:
значит алгоритм такой...
Спасибо, я как-то не догадался использовать другой файл, так в самом деле гораздо проще Сегодня все сделал и сдал. Премного благодарен.
Цитата:
LOL!
ну-ну...
позвольте метафору:
Что поделать, такой преподаватель (75 лет)...
rULEZ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер(TASM) переименовать файл BaronVik Помощь студентам 1 21.11.2011 08:27
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27
Ассемблер,запись в файл Onni Помощь студентам 0 09.03.2011 23:20
Как скомпилировать файл*на*Ассемблер Yagamy Liet Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 16.08.2010 14:17