|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
TASM Запуск command.com с параметрами, используя int 21/function 4Bh03.05.2019, 22:05. Показов 6550. Ответов 36
Метки нет (Все метки)
Добрый вечер.
Столкнулся с таким заданием: необходимо средствами asm запустить новый процесс command.com, и в нем команду, например "DIR C:". Результат вывести на экран (для пользователя). Я уже выяснил, что за запуск программы в asm отвечает int 21/function 4Bh. Изучение документации для этой функции не дало результата – я не понимаю сам алгоритм, вернее, в каком порядке и какие действия нужно проделать, чтобы данная функция сработала в соответствии с заданием. Хотя бы по минимуму (основные необходимые шаги алгоритма). В разных источниках также пишут, что необходимо для дочернего процесса command.com предварительно выделить память, однако никаких пояснений – как, для чего, сколько именно. Использую TASM в DOSBox. Признаю – плохо работаю с источниками. Поэтому прошу помощи, подсказки. Заранее благодарю за ответ. Также, если данный вопрос уже рассматривался на форуме, прошу ссылку (самостоятельно не нашел).
0
|
|
| 03.05.2019, 22:05 | |
|
Ответы с готовыми решениями:
36
Что означает ошибка too few arguments to function ‘int my_func(int, int)’ (язык C++)? Как правильно создать объект Command при помощи мастера с параметрами Запуск скрипта через оболочку (command line) |
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 17:02 [ТС] | |
|
Судя по дебагу int 20 завершает работу приложения с кодом 0 (выглядит нормально, выполняется последней командой), однако, почему-то контроль не возвращается родительскому command.com.
Что если попробовать строку команд типа dir /p && exit?
0
|
|
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 17:16 [ТС] | |
shell db 26,'dir C:\*.com /p /s && exit',13update: && он не принимает. видимо только одну команду за раз. Добавлено через 3 минуты R71MT, не могли бы вы мне объяснить, каким образом можно в командной строке запустить .com файл? Например не из XP, а из 7 или Vista... Или даже из Win10. Добавлено через 6 минут Может, у меня тоже получится запустить из cmd, а я тут с досом мучаюсь.
0
|
|
|
Эксперт Hardware
|
||
| 04.05.2019, 17:25 | ||
|
а если х32, то com-файлы можно запускать прямо из виндовой консоли у тебя видимо х64?
0
|
||
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 17:27 [ТС] | |
|
R71MT, да, у меня Win 10 х64. Но я сейчас поставил виртуалку с Win XP x32, может получится...
0
|
|
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 17:29 [ТС] | |
|
Не, ничего подобного.
0
|
|
|
Эксперт Hardware
|
|||||||
| 04.05.2019, 17:53 | |||||||
|
и почему пишет "Файл не найден" ? Добавлено через 4 минуты может у виртуалки нет command.com??? введи его в ком.строке, должно появиться дос-версия:
0
|
|||||||
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|||
| 04.05.2019, 17:58 [ТС] | |||
|
1) через обычный запуск - сработало паршиво, заглючило, зафризило. 2) сначала запустил command.com, потом запустил из него программу - сработало как надо, по нажатию ENTER завершило работу и вышло в родительский процесс!
0
|
|||
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 18:23 [ТС] | |
|
Из под DOS ваша программа не работает. Виснет в конце, как и было.
В посте #27 на скриншоте можно обратить внимание, что COMMAND.COM после завершения DIR ломается и возвращается в CMD, хотя не должен, он должен вызывать еще один экземпляр COMMAND.COM, в нём выполнять данную команду, и возвращаться в себя же. Можно еще попробовать допилить код из поста #9 (кажется), где я попытался использовать прерывание 21h функцию 4Bh? Добавлено через 5 минут Также в посте #12 я заметил, что у вас возможно тоже проблема с фризом в конце. Когда команда выполнилась, но после этого программа просто зависла. А должна она, насколько я понимаю, либо закрыться сама, либо выйти в родительский command.com...
0
|
|
|
Модератор
|
||||||
| 04.05.2019, 18:23 | ||||||
|
karuagal, посмотрите ещё один пример по ссылке http://www.intel-assembler.it/... mmands.asp
Кликните здесь для просмотра всего текста
В примере по ссылке появляется собственное приглашение и от пользователя ожидается ввод одной из 3 перечисленных в таблице команд, после чего вызывается fn=4Bh. Примеров у вас и так достаточно - будет на 1 больше.
1
|
||||||
|
Эксперт Hardware
|
||
| 04.05.2019, 19:00 | ||
|
вот чистый дос с флопика на виртуальной машине где видно, что после Enter приложение закрывается без каких-либо зависонов и прочей лабуды. не знаю, что и как ты там тестируешь..
0
|
||
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
||
| 04.05.2019, 19:17 [ТС] | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 19:27 [ТС] | |
|
Не работает. Значит, проблема в системе. Буду пробовать что-то другое ставить...
Так или иначе, благодарю за помощь. Если сумею заставить ее работать у себя, отпишусь. Попробую поковырять int 4Bh.
0
|
|
|
Модератор
|
|
| 04.05.2019, 20:03 | |
|
Посмотрите и здесь главу 12 - именно отсюда и был взят пример, ссылку на который я публиковал ранее.
Там и пояснения по работе с fn 4Bh. На русском эта книга издавалась Данкан Р. Профессиональная работа в MS-DOS.
1
|
|
|
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 19
|
|
| 04.05.2019, 21:15 [ТС] | |
|
R71MT, с запросом
command /c dir /p /s код успешно сработал до конца будучи запущенным через cmd.exe
1
|
|
|
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 854
|
||||||||||||
| 06.05.2019, 10:33 | ||||||||||||
Сообщение было отмечено karuagal как решение
Решение
3
|
||||||||||||
|
Ушел с форума
16376 / 7688 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
|
|||||||||||
| 07.05.2019, 14:51 | |||||||||||
|
karuagal,
я один это вижу?
0
|
|||||||||||
| 07.05.2019, 14:51 | |
|
Можно ли реализовать Function / Sub с именованными параметрами ... Аргумент типа int не совместим с параметрами типа int*
Не выполняется запуск программы на удалённом компьютере командлетом Invoke-Command Запуск файла с сетевой папки через Invoke-command на удаленном компьютере Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|