0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
||||||
1 | ||||||
MASM Вывести значения из ячеек в файл (файл создает, но он пустой)26.10.2022, 20:00. Показов 1507. Ответов 15
Метки нет (Все метки)
0
|
26.10.2022, 20:00 | |
Ответы с готовыми решениями:
15
Составить программу, которая создает каталог, создает в нем файл, переименовывает этот файл и удаляет этот файл, а потом удаляет каталог Переписать все положительные числа в пустой файл f, все отрицательные в пустой файл h Распарсить тексовый файл и вывести неодходимые значения в другой файл Написать bat-файл, который создает bat-файл, который создает текстовый файл :) Копировать значения ячеек в другой файл |
Модератор
1195 / 633 / 284
Регистрация: 10.11.2019
Сообщений: 1,332
|
|
27.10.2022, 12:55 | 2 |
Надо закрыть файл после записи.
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
27.10.2022, 16:01 [ТС] | 3 |
Спасибо, попробую.То есть каждый раз, когда надо записать значение, если их несколько, перед каждой записью числа надо записать в файл - закрыть файл, следующее значение записать в файл - закрыть файл.Подскажите преобразование нужно делать из числа шестнадцатеричного в строку и только потом уже записать в файл?Записать нужно из ячеек памяти в файл, несколько раз в цикле.
0
|
Модератор
1195 / 633 / 284
Регистрация: 10.11.2019
Сообщений: 1,332
|
|
27.10.2022, 16:28 | 4 |
Нет, файл удобно закрывать только после завершения всех записей. Т е работает правило бутерброда,
как написал в учебнике информатики Поляков: 1 Открыть (или создать) файл. Здесь в программе на ассемблере обязательно должен проверяться флаг ошибки, и делается переход (JC address) на завершение при ошибке. При ошибке открытия AX содержит код ошибки, а не номер файла ! 2 Работа с данными (чтение, запись, установка позиции в файле) 3 Закрыть файл Это зависит от того, как Вы собираетесь использовать данные из файла. При программировании на ассемблере нет разницы - бинарный файл или текстовый. Но как Вы просматриваете результирующий файл - по F3 из Total Commander или как-то ещё?
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
27.10.2022, 19:15 [ТС] | 5 |
Спасибо.Мне нужно файл проанализировать уже отдельно от программы.То есть мне нужно записать туда числа из ячеек памяти и потом открыть файл в Notepad и просмотреть его.
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
30.10.2022, 20:13 [ТС] | 6 |
Нет закрытие файла не помогло!В чем может еще быть причина?
Добавлено через 1 минуту Нет закрытие файла не помогло!В чем может еще быть причина?
0
|
Модератор
|
|
30.10.2022, 20:21 | 7 |
Andrew16363, приводите код для проверки.
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
||||||
31.10.2022, 07:35 [ТС] | 8 | |||||
С сегмента данных сообщение string db 'Data source values!' сохраняет в файл.Из ячейки памяти нет!
0
|
Модератор
|
|||||||||||
01.11.2022, 13:34 | 9 | ||||||||||
Во первых, содержимое регистра ax в строке 61 изменяется, т.к. регистр ah - это старшая часть регистра ax. Во вторых, в функцию файловой записи в регистровой паре ds:dx передаётся адрес буфера (ячеек памяти) с данными для записи в файл. Адрес, а не само значение.Можно поместить в ds нужное значение сегмента, а в dx смещение в сегменте. А потом восстановить исходное значение ds. Для сохранения слова по адресу [9000h:00A6h]
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
||||||
02.11.2022, 11:39 [ТС] | 10 | |||||
Доброе утро, Павел.Нет в файле все также пусто.У меня сегмент 9000 смещение 0040, а ячейка в этом фрагменте памяти 00A6h(выше в коде это есть я туда записываю значение). Для чего менять сегмент es на ds и загружать туда мой сегмент и смещение?Из памяти es:[0040+00A6h] разве нельзя вывести? Я в es загрузил сегмент 9000h, а в si 0040 смещение, чтобы не менять так как есть ее ячейки в этом сегменте для записи в файл?
Добавлено через 1 час 3 минуты в dx значение, которое нужно записать в файл верное, а в файле буквы или пустой. Добавлено через 11 минут По поводу DS : DX понял ,указатель на область, из которой записываются данные.Но в файл не пишет. Добавлено через 1 час 14 минут
0
|
Модератор
|
|
02.11.2022, 13:50 | 11 |
В dx должен быть АДРЕС области памяти - конкретно смещение внутри сегмента ds.
Поэтому, если нужно записать в файл содержимое ячейки с адресом 9000h:00A6h, то нужно в ds поместить 9000h, а в dx поместить 00A6h. Функция записи в файл - 40h.
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
03.11.2022, 08:59 [ТС] | 12 |
Доброе утро, Павел.Да все сделал как вы описали, но в файл и в консоль также пробовал вывести не записывает.В файле символ пишет.А в консоли набор символов из таблицы ASCII.
Добавлено через 1 минуту При выполнении функции int 21h в AX записывает 0002 и все. Добавлено через 37 секунд В памяти число находится с нужным адресом.
0
|
Модератор
|
||||||
03.11.2022, 15:39 | 13 | |||||
Не знаю, что вы делали.
Взял какой-то код с форума по работе с файлами. Всё лишнее удалил, оставил только открытие/запись/закрытие файла, в какую-то ячейку памяти записал текст, этот текст сохранил в файле. Даже скомпилировалось сразу, и результат в файле тоже есть - текст "Ok!!".
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
06.11.2022, 18:44 [ТС] | 14 |
Добрый вечер, Павел.Код, который вы мне предоставили,я попробовал, он работает(спасибо), аналогично и мой вышеизложенный.Но нюанс в том,что вы загружаете строку в ячейку, а попробуйте изменить строку " ko" на число 7h и посмотрите, что запишется в файл txt.Я в предоставленном коде изменил "ko" на число и в файле записались символы.Со строками нет проблем они записываются корректно.Но мне то нужно считывать числа из памяти, а не строки.
0
|
Модератор
|
|||||||||||||||||||||
06.11.2022, 19:09 | 15 | ||||||||||||||||||||
Andrew16363, боюсь, что мы разговариваем в разных терминах.
Когда я говорю, что записываю число в файл, то подразумеваю формат записи идентичный формату хранения этого же числа в памяти. Если открыть созданный файл в hex-редакторе, то увидите 00000000: 4f 6b 21 21 Ok!! Если сделать замену
00000000: 07 00 21 21 ..!! Т.е. программа работает. Если хотите сохранять число из ячейки в текстовом формате в десятичой системе счисления, то возьмите процедуру
0
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
11.11.2022, 20:47 [ТС] | 16 |
Добрый вечер, Павел.Спасибо большое.Разобрался все работает.Благодарен за информацию.
0
|
11.11.2022, 20:47 | |
11.11.2022, 20:47 | |
Помогаю со студенческими работами здесь
16
Создать файл произвольных символов. Вывести в один файл цифры, содержащиеся в файле, а в другой файл символы, сохранив первоначальный порядок. Вывести Создать командный файл, который создает файл дерева каталогов файл который создает xml файл со списком купонов для сайта купонатор Написать командный файл, который создает текстовый файл в указанном подкаталоге корневого диска... Создать пустой бинарный файл, открыть существующий файл, добавить в него 20 действительных чисел Почему не создаётся файл и не производится запись в пустой файл? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
|
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение
Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
|
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества
В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
|
Администрирование Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием
Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
|
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
|
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows
Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
|
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
|
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
|
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
|
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
|
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
|
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|