1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 41
|
||||||
1 | ||||||
Замена в файле нужного байта. Ассемблер, tasm10.04.2014, 13:25. Показов 1892. Ответов 3
Метки нет (Все метки)
Как поменять в файле 10 байт? Программа выводит 10 байт, но не заменяет его
0
|
10.04.2014, 13:25 | |
Ответы с готовыми решениями:
3
Определить номер заданного байта. Ассемблер, tasm Вывести на экран порядковый номер заданного символа из файла Копирование файла начиная с 20-го байта во второй Ассемблер(TASM) переименовать файл |
Фрилансер
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
10.04.2014, 13:50 | 2 |
Во превых, код у Вас неправильный.
Строки 22-25 явно не к месту. Они затрут информацию для int 21h. Во вторых, чтобы записать в файл, нужно: 1) При открытии файла через int 21h AH=3Dh (Open) установить режим "чтение/запись": AL=2 2) Повторно выполнить int 21h AH=42h (Seek) и подвести указатель к нужному месту 3) Собственно выполнить запись через int 21h AH=40h (Write)
2
|
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 41
|
||||||
10.04.2014, 19:24 [ТС] | 3 | |||||
Как это сделать?)
1
|
Фрилансер
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||||||
10.04.2014, 23:24 | 4 | |||||
Сообщение было отмечено Taatshi как решение
Решение
Вам ведь нужно один и тот же байт сначала считать, потом записать?
Значит, нужно подвести указатель к нужному байту и прочитать. При чтении указатель сдвинется, его нужно вернуть на то же место и записать. Последовательность действий должна быть такой: 1) int 21h AH=3Dh (Open) 2) int 21h AH=42h (Seek) 3) int 21h AH=3Fh (Read) 4) int 21h AH=42h (Seek) 5) int 21h AH=40h (Write) 6) int 21h AH=3Eh (Close) Добавлено через 22 минуты В общем, примерно так код здесь
2
|
10.04.2014, 23:24 | |
10.04.2014, 23:24 | |
Помогаю со студенческими работами здесь
4
Ввод строки с клавиатуры. Ассемблер, tasm Вычислить выражение по формуле Пересылка массива слов. Ассемблер, tasm Программа, подсчитывающая количество единиц. Ассемблер, tasm Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |