Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2009, 17:34   #1
Lawliet32
Пользователь
 
Аватар для Lawliet32
 
Регистрация: 26.11.2009
Сообщений: 34
По умолчанию (Asm) Поиск символьной цепочки в памяти

Доброго времени суток!

С ассемблером дружу не очень... поэтому прошу хоть небольшой (абсолютно любой) помощи у Вас = )

Есть задание: Поиск символьной цепочки в базовой памяти (цепочка задается в качестве параметра программы, регулируется диапазон поиска).

Как это можно реализовать? что можно почитать? Особенно интересует вопрос о "в качестве параметра программы" и "регулируется диапазон поиска"

Помогите люди добрые кто чем может... просто в инете очень как то мало информации об оперативной памяти и работы с ней в ассемблере...
Изучаю Си\Си++
Lawliet32 вне форума Ответить с цитированием
Старый 26.11.2009, 23:08   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

параметр программы лежит в psp с адреса 80(количество символов) 81h(строка)
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 26.11.2009, 23:51   #3
Lawliet32
Пользователь
 
Аватар для Lawliet32
 
Регистрация: 26.11.2009
Сообщений: 34
По умолчанию

Цитата:
Сообщение от airyashov Посмотреть сообщение
параметр программы лежит в psp с адреса 80(количество символов) 81h(строка)
т.е. если я все правильно понял параметр должен задаваться примерно так: myprogram.exe "string" ?

Поискал в интернете нашел про эту структуру... попытался скомпилировать исходник:

"В качестве примера приведем текст программы PARM, составленной на языке ассемблера, которая выводит на экран передаваемые ей через PSP параметры запуска."

Код:
  
.MODEL  tiny
DOSSEG
.DATA

parm_msg  DB "Укажите параметры", 13, 10, "$"

  .CODE
  .STARTUP

  mov    cl,ds:80h ; количество символов
                   ;   в командной строке
  cmp    cl,0
  je     ask_parm  ; нет параметров - просим
                   ;   указать параметры

  mov    si,81h    ; со смещением 81h
                   ; начинается область параметров
  cld

get_parm:

; Загружаем в al очередной символ строки параметров
  lods   BYTE PTR es:[si] 

  mov    ah,2      ; выводим его на экран
  mov    dl,al
  int    21h

  loop get_parm
  jmp  end_progr

ask_parm:

  mov     ah, 9h
  mov     dx, OFFSET parm_msg
  int     21h

end_progr:
  
.EXIT   0
END
выдает ошибку Illegal Instruction в строке .EXIT 0 в чем может быть беда?
Изучаю Си\Си++
Lawliet32 вне форума Ответить с цитированием
Старый 27.11.2009, 00:07   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

вероятно в том, что команды .EXIT 0 не существует.
Код:
mov ax,4c00h
int 21h
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 27.11.2009, 10:00   #5
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

.exit(0) - в младших версиях tasm не работает
воспользуетесь кодом предложенным Goodwin98
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 28.11.2009, 13:43   #6
Lawliet32
Пользователь
 
Аватар для Lawliet32
 
Регистрация: 26.11.2009
Сообщений: 34
По умолчанию

Спасибо = )

программа запустилась... но выдает "карабульки" возможно ли это все из-за той же младшей версии tasm?
Изучаю Си\Си++
Lawliet32 вне форума Ответить с цитированием
Старый 28.11.2009, 13:52   #7
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Возможно все-таки писать стоит по-буржуйски
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 28.11.2009, 14:01   #8
Lawliet32
Пользователь
 
Аватар для Lawliet32
 
Регистрация: 26.11.2009
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Возможно все-таки писать стоит по-буржуйски
Все я понял свою ошибку)) тупанул и решил вводить параметры уже из запущенной программы... теперь все отлично работает)

Но никак не могу найти информацию.. как можно регулировать диапазон поиска

И возможно туповатый вопрос.... Само задание подразумевает поиск подстроки в строке? Просто ничего другого в голову не лезет... т.к. в памяти содержится как правило "мусор", и искать в "мусоре" вменяемую символьную цепочку по определению будет заканчиваться неудачей... или я не прав?
Изучаю Си\Си++

Последний раз редактировалось Lawliet32; 28.11.2009 в 14:10.
Lawliet32 вне форума Ответить с цитированием
Старый 19.05.2012, 13:20   #9
Patutol
 
Регистрация: 05.10.2011
Сообщений: 6
По умолчанию

Закажу код этой программы, прошу пишите сюда...
Patutol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер. Программа генерации цепочки звуков. ZHU35 Помощь студентам 2 06.11.2009 18:54
С++ Обработка символьной информации Помогите Kachagar Помощь студентам 2 03.07.2009 13:33
програма на обработку символьной информации АлександрFRONT Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2008 13:48