9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
|
||||||
1 | ||||||
GAS/AT&T Передать аргумент через командную строку05.01.2016, 16:52. Показов 5238. Ответов 8
Метки нет (Все метки)
Cледующая программа попросту выписывает Hello, world на экран. Компилирую следующую программу как указано в комментарии в строке 1. Т.е. программа не использует стандартной библиотеки. Вопрос таков: каким способом возможно передать Hello, world в коммандную строку, с последующим выведением Hello, world на экран??? Any ideas???
0
|
05.01.2016, 16:52 | |
Ответы с готовыми решениями:
8
Через командную строку передать имя каталога и удалить этот каталог. Компиляция FASM через командную строку Считывание параметров, переданных через командную строку Заменить слова в файле (аргументы передаются через командную строку) Необходимо передать аргумент виртуальной машине через командную строку |
Эксперт Hardware
|
||||||
05.01.2016, 21:52 | 2 | |||||
Плохо понял о чём речь, но для сом-файлов можно получить/вывести её из "PSP" так:
Код
C:\Temp>test.com No command line parametrs... C:\Temp>test.com /Find comman line parametrs /Find comman line parametrs
1
|
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
|
|
06.01.2016, 01:25 [ТС] | 3 |
R71MT, сори в ассемблере не силён, такой вопрос, ты под какой операционной системой работаешь?тупым копированием, не удалось заставить этот код работать((( выдаёт что-то вроде:
cyber.s: Assembler messages: cyber.s:6: Error: no such instruction: `org 100h' cyber.s:9: Error: no such instruction: `error DB 78o command line parametrs...$10' cyber.s:11: Error: bad expression cyber.s:11: Error: junk `80h]' after expression cyber.s:11: Error: invalid character (0xd0) in mnemonic cyber.s:12: Error: invalid character (0xd0) in mnemonic cyber.s:13: Error: invalid character (0xd1) in mnemonic cyber.s:15: Error: invalid character (0xd0) in mnemonic cyber.s:17: Error: junk `h' after expression cyber.s:18: Error: invalid character (0xd0) in mnemonic cyber.s:21: Error: junk `h' after expression cyber.s:21: Error: junk at end of line, first unrecognized character valued 0xffffffd0 cyber.s:22: Error: junk at end of line, first unrecognized character is `@' cyber.s:23: Error: invalid character (0xd0) in mnemonic cyber.s:24: Error: junk `h' after expression cyber.s:24: Error: invalid character (0xd0) in mnemonic cyber.s:26: Error: junk `h' after expression cyber.s:26: Error: invalid character (0xd0) in mnemonic cyber.s:27: Error: bad expression cyber.s:27: Error: junk `1' after expression cyber.s:27: Error: invalid character (0xd1) in mnemonic cyber.s:31: Error: junk `h' after expression cyber.s:32: Error: junk `h' after expression Может быть я не правильно компилирую??? компилировал в 2 спрособа 1)→ gcc -o cyber cyber.s -m32 2)→ gcc -m32 -nostdlib cyber.s
0
|
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
06.01.2016, 09:42 | 4 |
1
|
Ушел с форума
16338 / 7659 / 1075
Регистрация: 11.11.2010
Сообщений: 13,696
|
|
06.01.2016, 15:41 | 5 |
1
|
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
|
||||||
07.01.2016, 22:37 [ТС] | 6 | |||||
Constantin Cat, а случайно как на линуксе получить адрес командной строки не знаешь??? для меня пока еще все числа с суффиксом h в твоем коде это темный лес, ассемблер изучал только под линукс(((
Добавлено через 13 минут Constantin Cat, можно ли в данном случае(чтобы на экран выводилась фраза, которая введена в командную строку)добраться до командной строки следующим образом:
нет нельзя, у меня не заработало.
0
|
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
08.01.2016, 11:40 | 7 |
Если верить Мареку, то параметры командной строки должны находится в стеке.
Т.е. их можно извлечь с помощью POP reg или с помощью EBP, по аналогии с передачей параметров через стек. Сорри я никсах не программирую.
1
|
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
|
|||||||||||
09.01.2016, 21:30 [ТС] | 9 | ||||||||||
Mikl___, XiloManX, нашееллл!!! Жаль, что конечно не сам написал((( Но все же. Сёрф в инете показал, что существуют определенные отличия между синатксисом NASM, TASM, MASM итд. Сейчас столкнулся с одной проблемой, стараюсь TASM перевести в NASM. Что сделал "int 80H" заменил на "int 0x80", db на .byte и еще кое-какие моменты в самой структуре программы. После компиляции выдаёт следующее:
→ gcc -m32 -nostdlib inet.s inet.s: Assembler messages: inet.s:8: Error: ambiguous operand size for `cmp' inet.s:59: Error: ambiguous operand size for `mov' В следующих строках ошибка:
Добавлено через 21 час 22 минуты Ну вот получилось что-то вроде этого...
→ ./a.out slowo1 slowo2 slowo3 slowo1 slowo2 slowo3 (null) Добавлено через 10 минут Cтроки 17 и 18 реально ничего не делают, сначала я ксорю edx, а потом туда заношу первый аргумент и выделяю под него 4 байта. Мне это нужно, чтобы потом с этим аргументом работать. Поскажите, пожалуйста, каким образом можно добраться до последнего символа аргумента, например я в коммандную строку ввел example4 и хочу "добраться" до этой четвёрки. Возможно ли побитово смещать регистр edx на 1 бит, а потом этот бит сравнивать?Если да, то куда тогда сместится этот бит?
0
|
09.01.2016, 21:30 | |
09.01.2016, 21:30 | |
Помогаю со студенческими работами здесь
9
Как внести в пользовательскую функцию аргумент введенный через командную строку? Как передать строку из слов и пробелов через командную строку? Передать параметры через командную строку Как передать параметр в командную строку через Delphi? Как получить и передать параметры из другой программы (через командную строку)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |