|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
MASM Обработка параметров командной строки28.10.2019, 16:28. Показов 6898. Ответов 48
Метки нет (Все метки)
Добрый день
Не могу решить задачку, помогите пожалуйста Задача: написать программу на ассемблере, которая в зависимости от количества заданных параметров: а) открыть файл с именем [параметр1] и отобразить его содержимое в окне консоли. Пример: c:\program1.exe parametr1 б) создать файл с именем [параметр1] и записать содержимое в него [параметр2] Пример: c:\program1.exe parametr1 parametr2 в) отобразить сообщение о неверном количестве параметров. Пример: c:\program1.exe parametr1 parametr2 parametr3 c:\program1.exe
0
|
|
| 28.10.2019, 16:28 | |
|
Ответы с готовыми решениями:
48
Обработка параметров командной строки |
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 01.11.2019, 22:04 | ||
|
Ansi или Unicode, какая разница, тут вопрос, в том, что у ТС нет опыта написания программ. И мы будем как pcmax'у по букве молотком вбивать знания..
Добавлено через 4 минуты Пока ждем шаг №1.
1
|
||
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|||||||||||
| 03.11.2019, 15:55 [ТС] | |||||||||||
|
ФедосеевПавел,
Вот имею код который считывает данные с файла(Задача а))
0
|
|||||||||||
|
Модератор
|
|
| 03.11.2019, 16:04 | |
|
Пусть в переменной argc находится количество аргументов (параметров) командной строки.
Assembler .const aszError db 'Error', 0 .code ....... mov eax, [argc] cmp eax, 1 je @@OneArg cmp eax, 2 je @@TwoArg ;вывести сообщение об ошибке invoke WriteConsoleW, hConsoleOutput, ADDR aszError,\ LENGTHOF aszError - 1, ADDR BufLen, NULL jmp @@Exit @@OneArg: ........................ jmp @@Exit @@TwoArg: ........................ jmp @@Exit @@Exit: INVOKE ExitProcess,0
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 03.11.2019, 16:09 [ТС] | |
|
ФедосеевПавел,
Это вы задачу в) написали ?
0
|
|
|
Модератор
|
||||||
| 03.11.2019, 16:28 | ||||||
|
Задачу в) и остальные. Ведь если вы правильно решили остальные задачи - их код достаточно скопировать в итоговый исходник.
На C это было бы
Я не верю, что вы решили два первых задания - очень уж разный стиль вызова WinAPI и общее оформление. А сам за вас делать не хочу, поэтому объединять не буду, чтобы не услышать от вас: "Пока вы не полезли - всё работало, а теперь исправляйте - не знаю, что вы с моим идеальным кодом натворили".
0
|
||||||
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|||||||||||
| 03.11.2019, 16:44 [ТС] | |||||||||||
|
ФедосеевПавел, первый код задачу а) я нашёл.
второй код я сам уже писал Добавлено через 4 минуты То есть нужно там где
а там где
я правильно понял?
0
|
|||||||||||
|
Модератор
|
|
| 03.11.2019, 16:56 | |
|
Да.
Добавлено через 7 минут Только вывод сообщения при ошибке переделайте под собственный стиль.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||||||||
| 03.11.2019, 16:56 | |||||||||
|
@@OneArg: . . . . - это код,который работает с одним аргументом; @@TwoArg: . . . . - это код который работает с двумя аргументами; Но без анализа командной строки и получения argc. Т.к. Вы это должны были сделать сами. Её, как-то получили и вывели. Вместо того,чтобы сосредоточится на рекомендациях Вы лезете в тырнет и копипастите, ч/з что. Ваш код должен быть тут:
1
|
|||||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 03.11.2019, 17:22 | |
|
Programist_r, чтобы написать код Вашего задания нужно около часа времени. Но его можно написать по разному, к примеру на ФАСМ или ТАСМ или в стиле АТХ и дать Вам код, Вы его под МАСМ не переделаете и за месяц(тут можно даже тотализатор организовывать и делать ставки, что в месяц Вы несправитесь, с перекодированием кода в масм).
Хотите научится писать программы, выполняйте действия по шагам. И помните, Вы пока между: Анализом, Проэктированием и Кодированием(АПК). Помните, что если в АПК, не выполнить первые две буквы, то с третей у Вас ну ни как не получится. И это не важно какой язык программирования. Программа - код на основе спроэктированого алгоритма, который был получен на основе анализа.
1
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 03.11.2019, 17:35 [ТС] | |
|
Constantin Cat,
обещаю разобраться, просто сейчас времени не хватает, как всё своё свободное время трачу на другие проекты на другом языке програмирования соединил код в один, компилируется , но когда задаю параметры то ничего не происходит
0
|
|
|
Модератор
|
|
| 03.11.2019, 17:49 | |
|
Значит программа требует отладки.
Выводите на экран количество параметров, чтобы понять место ошибки - неправильное определение количества параметров или ваши фрагменты кода глючат. Также добавьте вывод на экран отладочных строк в каждой ветке условия - "One Arg", "Two Arg", а "Error" и так должен быть. Делайте отладочную печать.
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 03.11.2019, 18:06 [ТС] | |
|
ФедосеевПавел, знать бы ещё как в ассемблере делать отладку, на C++ и C# прекрасно знаю как
Добавлено через 2 минуты тут простую программу написать неделю уже не могу, а ещё отладку учить как пользоваться Добавлено через 2 минуты ФедосеевПавел, можете пожалуйста помочь соединить коды в один мне сдать это задание нужно уже завтра, пожалуйста
0
|
|
|
Модератор
|
|
| 03.11.2019, 18:25 | |
|
Я соединю, но править сами коды не буду - что они делают, то и будут делать - это на вашей совести, т.к. именно вы утверждаете их правильность.
Ваш код оформлю в виде двух процедур - это и нагляднее и претензий ко мне меньше.
1
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 03.11.2019, 18:27 [ТС] | |
|
ФедосеевПавел, хорошо спасибо большое
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||||
| 03.11.2019, 19:01 | |||||
|
П - проэктирование алгоритма на основе Анализа; К - написание кода по алгоритму. Это "жизнь" прогаммы:Задача,Анализ,Проэктирование.Кодирование,Тестирование(тут можно даже анализ пересмотреть и начать снова), Сопровождение(тут можно даже анализ пересмотреть и начать снова). И это не важно какой ЯП(язык программирования) Вы используете эти буквы - будут Вашим кошмаром:ЗАПКТС Вы думаете, что: Сшники или Шарпонутые, Паскльщики+, Перловцы, Питоновцы или ПХиПи, не знают что это. Для них С, хорошо, если новая версия супортит старую, А если как 64-х послали одномоментно 16-х. И всё, пиши по новой. 01.11.2019, 13:39 MASM Обработка параметров командной строки Говорил:
0
|
|||||
|
Модератор
|
|||||||||||
| 03.11.2019, 20:17 | |||||||||||
|
Как странно - не могу вывести в консоль параметры командной строки.
Запускаю из пакетного файла с двумя параметрами
полный текст исходника с ошибкой
Вызываю GetCommandLineW, получаю указатель на командную строку в Unicode. Вызываю CommandLineToArgvW, получаю количество параметров и указатель на массив указателей на Unicode-строки. Далее - делаю отладочную печать в консоль: - командной строки - количества аргументов - нулевого аргумента argv[0] Всё кроме argv[0] выводится, а argv[0] - кракозябры. Пробую другой параметр argv[1] - тот же результат. Заменяю вывод параметра на MsgBox - о чудо! - правильно выводит. Ведь и командная строка тоже Unicode, а она выводится в консоль теми же средствами (wsprintfW+WriteConsoleW). Не пойму, что я делаю не так?
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 03.11.2019, 20:44 [ТС] | |
|
ФедосеевПавел, то есть у вас тоже не получилось соединить ?
0
|
|
|
Модератор
|
|
| 03.11.2019, 21:00 | |
|
Я никогда не делаю мегакод. Добавляю функционал и тут же проверяю.
Объединять даже и не начинал. После получения списка параметров попробовал вывести их на экран - сделать тестовую печать (то, что вам недоступно), но получил странные результаты. Остановился и задал вопрос. Сейчас немного разобрался - результат работы wsprintfW не совсем тот, который я ожидал, а WriteConsoleW работает ожидаемо. Поэтому читаю в интернете, как добиться правильных результатов. Вы поймите, ваши проблемы безразличны всем кроме вас лично. Если бы не возможность попробовать работать с Unicode, я бы и не начинал. Лично мой интерес - Unicode. Когда разберусь со своим вопросом - и вашим займусь. Что вы думаете - я только и мечтаю целый вечер для чужого человека набирать и отлаживать программу на 1000+ строк? Ха-ха!
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 03.11.2019, 21:02 [ТС] | |
|
ФедосеевПавел, по отдельности первый код(а) и второй код(б) работают идеально если можно так сказать
Добавлено через 1 минуту извинете
0
|
|
|
Модератор
|
||||||
| 03.11.2019, 21:30 | ||||||
|
Разобрался в причинах кракозябр - я неправильно интерпретировал значение argv. А это указатель на массив указателей. Поэтому вывод параметра 2
0
|
||||||
| 03.11.2019, 21:30 | |
|
Удобная обработка параметров командной строки функция main обработка параметров командной строки Обработка параметров командной строки. Можно ли ещё проще? Передача параметров из командной строки Ввод параметров из командной строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|