Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 735
от 28.04.2007, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 377, Экспертов: 35
В номере:Вопросов: 2, Ответов: 4


Вопрос № 83742: Как можно вырезать спецсимволы (цифры,знаки,точки,запятые и т.д.) из строки,заменив их пробелами, и установить указатель на последнию букву в строке? Т.е. дано: qwe@!$#%^WCe%^yX36E^@">Q@5 ' '@$ выход: qwe WCe yX E Q...
Вопрос № 83748: Здравствуйте, уважаемые эксперты ! Изучая выпуск рассылки Калашникова № 20, решил пойти немного дальше, по материалам Хижняка и Попова, так вот: При записи в "хвост" файла, данные оказываются сдвинуты хотя бы на длину файла...

Вопрос № 83.742
Как можно вырезать спецсимволы (цифры,знаки,точки,запятые и т.д.) из строки,заменив их пробелами, и установить указатель на последнию букву в строке?
Т.е. дано:

qwe@!$#%^WCe%^yX36E^@">Q@5 ' '@$

выход:
qwe WCe yX E Q

Желательно на tasm'e и без цепочечных операций.
Заранее спасибо.
Отправлен: 22.04.2007, 21:23
Вопрос задал: InviZible (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Пашка
Здравствуйте, InviZible!

Нуууу одну цепочку всё равно пройти придется... я так думаю!
а как вырезать... нуууу надо вырезать спец. символы, ну тогда отталкивайтесь от того что буквы идут от 41h до 5A, это большие буквы, поэтому алгоритм таков...
Считвыем символ за символом из строки и если его код не равен этому приделу(41h - 5A) заменяем его пробелом и двигаемся дальше... ну типо того.
Ответ отправил: Пашка (статус: 2-ой класс)
Ответ отправлен: 22.04.2007, 23:37

Отвечает: Зенченко Константин Николаевич
Здравствуйте, InviZible!

В приложении код который делает это.
input_size размер введеной строки
input_buff сам буфер
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 23.04.2007, 14:24

Отвечает: An42
Здравствуйте, InviZible!
Вырезать спецсимволы, заменив их на пробелы можно используя таблицу трансляции.
В программе пояснения
Удачи

Приложение:

Ответ отправил: An42 (статус: 2-ой класс)
Ответ отправлен: 24.04.2007, 17:14


Вопрос № 83.748
Здравствуйте, уважаемые эксперты !
Изучая выпуск рассылки Калашникова № 20, решил пойти немного
дальше, по материалам Хижняка и Попова, так вот:
При записи в "хвост" файла, данные оказываются сдвинуты хотя бы на
длину файла, поэтому одним из вариантов нормального доступа к данным
предлагается коррекция DS. Вопрос заключается в том, на чём основаны
подобные расчёты ? Почему при прибавлении размера файла в параграфах
к DS, в итоге даёт в DS:DX необходимое смещение ?
Спасибо.

Приложение:

Отправлен: 22.04.2007, 22:19
Вопрос задал: CrancV (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, CrancV!

В АЛУ процессора
Смещение из команды(0:15)
+Базовый регистр(0:15)BX или BP
+Индексный регистр(0:15)SI или DI
получается Эффективный адрес
+Сдвинутый на 4 бита(1 параграф) влево Сегментный регистр(0:15)CS,DS,ES,SS,FS,GS
получается Линейный адрес(0:20), который проходит через устройство страничного преобразования и превращается в Физический адрес.
Это всё происходит на аппаратном уровне и для программы прозрачно.
Подробно об этом можно прочитать в "Учебнике" Юрова.
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 23.04.2007, 21:06
Оценка за ответ: 4
Комментарий оценки:
Про адресацию вполне доступно, однако суть вопроса вот в чём : Почему
именно при коррекции DS - ? на какое-либо количество параграфов
получается этот адрес ???


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.51 (beta) от 27.04.2007
Яндекс Rambler's Top100

В избранное