![]() |
|
|
![]()
|
|
| bip |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
Ещё вопросик возник. А как получить параметры(слово и число повторений) из командной строки?
как из DTA их вытащить? Это сообщение отредактировал(а) bip - 9.12.2008, 21:35 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
DTA тут не при чём. Строка запуска находится в PSP. Символ по смещению 80h содержит длину, а начиная с 81h, начинается сама строка. Сегмент PSP следует либо созранить при старте, либо запросить через int 21h fn 51h. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bip |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
Akina,Dta находится как раз по смещению 81h в PSP и содержит символы командной строки(т.е. буфер рабочей области). но это не важно.
Я торможу на счёт того, как взять эти параметры оттуда p.s. помогите пожалуйста, добрые люди... Это сообщение отредактировал(а) bip - 9.12.2008, 22:53 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Вы походу не знаете что такое DTA. И адрес DTA отправлен в область параметров только для того, чтобы программа не осталась вообще без DTA. Я уж не говорю о том, что с ДОС 3.0 DTA мало кто использует. Что значит как? искать там ASCII-цифры, конвертировать их в bin, следить, что не вылез за длину. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bip |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
На сколько я знаю под префикс программного сегмента выделяется 100(байт) и он включает в себя буфер рабочей области. соответственно у него и адрес 81h.
с этим я давно разобрался... Меня интересует процесс самого изъятия параметра ну допустим в переменную какую-либо. Смотрел по форуму, есть пару тем, но собственно нигде нет реализации этого алгоритма... |
|||
|
||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
Что может быть проше, чем анализ строки по символам.
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Почти так. Пропущено одно слово - НАЧАЛЬНЫЙ буфер. Любая программа, намеренная работать через FCB и написанная не через задницу, первым делом переопределяет положение DTA.
навскидку нечто вроде (идея):
тут нет проверки на не-цифры в середине строки... но это же идея. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| bip |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
Вот м ищу я параметр.... каким образом загнать его в
|
||||
|
|||||
| bip |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
Сделал, но выводит посимвольно, а записываю в buffer и потом пытаюсь его вывести не хочет, ПОЧЕМУ?
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 4 Всего: 158 |
по существу: http://www.firststeps.ru/asm/ - особо обратить внимание на статейки со словами "Turbo Debugger" в названии. http://www.ctyme.com/intr/int-21.htm - справочник по функциям 21-го прерывания. "buffer db ?", упоминаемый в твоих исходниках - это ОДИН байт. изучи хотя бы типы данных для начала. |
|||
|
||||
| bip |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
dumb,эх.. придётся видимо изучить.
buffer db ?(buffer db 10 dup(0)) это я что то совсем уж... p.s. спасибо за ссылки Это сообщение отредактировал(а) bip - 10.12.2008, 21:38 |
|||
|
||||
| bip |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.3.2007 Репутация: нет Всего: нет |
Вот вроде получилось изъять из кмд параметры, но почему-то не получается записать в файл первый параметр-строка, указанное число раз-второй параметр. Не пойму где ошибка...
|
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
bip, про отладчик вам преподаватель ничего не говорил? В топике Торреро я приаттачил afd-отладчик -- возьми его и разберись со своей программой
Это сообщение отредактировал(а) Mikl_ - 16.12.2008, 13:39 |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |