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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 282
от 05.06.2002, 21:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 323
Отправлено ответов: 876
Активность: 271.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


От Администратора



Уважаемые эксперты!

Если кто-нибудь из вас сможет мне помочь, то буду очень благодарен.

Необходимо написать программу-компилятор на языке С++. Суть такова:

1. Необходимо придумать свой язык программирования (очень простой, пару-тройку операторов).
2. Этот язык должен поддерживать 4 типа переменных.
3. На "придуманном" языке нужно написать простейшую программу, которая бы содержала 2 цикла с предусловием и постусловием.
4. Как только написали простую программу на нашем языке, запускаем нашу программу-компилятор, которая компилирует написанную программу и на выходе выдает ее код, но на языке С++.
5. Желательно программу-компилятор сделать с комментариями.
6. Необходимо это закончить до 14 июня.

Эта работа будет оплачена. Уверяю вас, что на пиво хватит точно! Если Вы решились, то пишите, пожалуйста, по адресу admin@rusfaq.ru. Ваши условия по поводу желаемой суммы обязательно укажите в письме.

Лучшие работы будут опубликованы в рассылках!

Всем заранее спасибо!


Калашников О.А. (admin@rusfaq.ru)


 Список экспертов, ответы которых опубликованы в данном выпуске

Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 131.7
URL: Пристанище неодинокого программиста
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 161.98
[Подробней >>]
kostik
Статус: Профессиональный
Общий рейтинг: 122.72
URL: Все о программистах и для программистов
Телефон: (4212)393-276
[Подробней >>]
 
Shal
Статус: Начальный
Общий рейтинг: 106.4
[Подробней >>]
igorash
Статус: Опытный
Общий рейтинг: 144.69
[Подробней >>]
AnSim
Статус: Доверительный
Общий рейтинг: 127.27
[Подробней >>]
 
Gibbel
Статус: Доверительный
Общий рейтинг: 109.53
[Подробней >>]
Andy Bitoff
Статус: Опытный
Общий рейтинг: 117.71
URL: HomePage или что-то типа того :)
[Подробней >>]
Vint by Shz
Статус: Доверительный
Общий рейтинг: 123.47
[Подробней >>]
 
Тorax
Статус: Доверительный
Общий рейтинг: 118.91
[Подробней >>]
Александр
Статус: Опытный
Общий рейтинг: 120.16
[Подробней >>]
Kalashnikoff
Статус: Профессиональный
Общий рейтинг: 101.53
URL: Информационный ресурс
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 279. Dear experts, How can I get a process ID of a program WITHOUT a window?(API) Thanks in advance,Leo... (ответов: 1)
Вопрос № 280. Здравствуйте Ув. Эксперты! Кто работал с VB6 (VC++6) и создавал(и подключал) библиотеки dll....напи... (ответов: 2)
Вопрос № 281. Привет. Подскажите как преобразовать шестнадцатиричное значение в обычные символы. (Например я испол... (ответов: 5)
Вопрос № 282. ЗДравствутйте эксперты! Можно ли в win приложении (flat) использовать досовские прерывания и обраща... (ответов: 6)
Вопрос № 283. Извините, если уж сильно тупой вопрос... Вобщем, есть задачка: ===== 8< ================== В задан... (ответов: 3)
Вопрос № 284. Test...... (ответов: 1)
Вопрос № 286. Здраствуйте, Уважаемые эксперты! Скоро экзамены, и как следствие, попалась любопытная задачка. Надо ... (ответов: 2)
Вопрос № 287. Драствуйте все! Есь вопросик! Где я могу достать материал по АПИ фун-ям форточек очень было-бы хорош... (ответов: 5)

Вопросов: 8, ответов: 25


 Вопрос № 279

Dear experts,
How can I get a process ID of a program WITHOUT a window?(API)
Thanks in advance,Leo



Вопрос отправлен: 31.05.2002, 21:17
Отправитель: Leo (a.leo@37.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Hello, Leo!
I can direct You for example written on Delphi. I hope, that you will understand a principle of this program work. Good luck!

Ответ отправлен: 01.06.2002, 12:12
Отправитель: Артём Шегеда


 Вопрос № 280

Здравствуйте Ув. Эксперты!

Кто работал с VB6 (VC++6) и создавал(и подключал) библиотеки dll....написанные
на Асме?
Киньте,в меня исходниками... [pacu@mail.ru]...
Буду очень признателен..
И где можно взять инфу по этому делу...?
iczlion...у меня есть...

Спасибо..
pAcU



Вопрос отправлен: 01.06.2002, 03:28
Отправитель: pAcU (pacu@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Приветствую Вас, pAcU!
Дык а в чем проблема? Я писал для бейсика такие библиотеки. Это самая обыкновенная библиотека. Делаешь экспорт, в бейсике прописываешь, как и для ВинАПИ свои функции и все. Исходник не кидаю, искать среди сотни комактов лень.

Ответ отправлен: 01.06.2002, 08:30
Отправитель: masquer


Отвечает kostik

Добрый день, pAcU!
Вообще работа с функциями из библиотек аналогична работе с API. То есть вначале декларируешь функцию, какую библиотеку используешь, какие параметры и каких типов передаешь и какой тип данных возвращает функция. Вызов аналогичен API.
На мыло кидаю исходник работы с системным динамиком. Работа осуществляется через библиотеку, написанную на АСМЕ.


Ответ отправлен: 02.06.2002, 00:53
Отправитель: kostik


 Вопрос № 281

Привет.
Подскажите как преобразовать шестнадцатиричное значение в обычные символы. (Например я использую функцию 30h прерывания 21h и получаю в AL номер версии MS-DOS. Теперь я хочу вывести его на экран, но у меня получается вывести только какие-то специальные символы).
Спасибо.



Вопрос отправлен: 01.06.2002, 13:36
Отправитель: MTC

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Здравствуйте, MTC!
Читай рассылку, по 150 раз одно и то же.

Ответ отправлен: 01.06.2002, 17:57
Отправитель: masquer


Отвечает Shal

Доброе время суток, MTC!
Перевод шестн. числа в десятичное:
mov ax,005Ah
aam --------в ax 09 00(5A)
add ax,3030h
------вывод----
xchg ah,al
int 29h
xchg ah,al
int 29h

Ответ отправлен: 01.06.2002, 15:12
Отправитель: Shal


Отвечает Артём Шегеда

Доброе время суток, MTC!
Откройте эту ссылку и прозрейте: прежде чем задать вопрос стоит хоть немного подумать, в крайнем случае - поискать.
С уважением...

Ответ отправлен: 01.06.2002, 13:57
Отправитель: Артём Шегеда


Отвечает igorash

Приветствую Вас, MTC!
Добавь к числу 30h


Ответ отправлен: 02.06.2002, 03:31
Отправитель: igorash


Отвечает AnSim

Добрый день, MTC!
а не пробовал выводить через С?
вставляешь ассемблерную вставку и печатаешь из С
char ch;
...
asm mov ch,ax
...
printf("%c",ch);
...
Попробуй также смещаться, добавляя код нуля

Ответ отправлен: 03.06.2002, 17:13
Отправитель: AnSim


 Вопрос № 282

ЗДравствутйте эксперты!
Можно ли в win приложении (flat) использовать досовские прерывания и обращаться напрямую к памяти как в досе!?



Вопрос отправлен: 01.06.2002, 15:20
Отправитель: Dark_Lord

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Доброе время суток, Dark_Lord!
Я чуть-чуть поискал в Win32SDK Help по ключевому слову "Interrupts", нашёл документ "List of Articles for Win32s Programming Issues". Там была ссылка на статью Q105760. Зашёл на Support.Microsoft.COM и получил такой документ: "Using VxDs and Software Interrupts Under Win32s".
Оттуда прямиком в Win32SDK Help по ключевому слову "Universal Thunk API".
Надеюсь Вам это поможет...

Ответ отправлен: 01.06.2002, 16:06
Отправитель: Артём Шегеда


Отвечает masquer

Добрый день, Dark_Lord!
Можно и то, и то. Только с прерываниями сложнее, потому что винда их виртуализирует, да и смысла в них никакого нет.

Ответ отправлен: 01.06.2002, 17:46
Отправитель: masquer


Отвечает Gibbel

Приветствую Вас, Dark_Lord!
В win16 возможности доси частично поддерживались, в win32 - нет

Ответ отправлен: 03.06.2002, 10:36
Отправитель: Gibbel


Отвечает Andy Bitoff

Доброе время суток, Dark_Lord!
Прерывания использовать нельзя (если не драйвер), а на счет памяти, то как обычно:
mov eax,[mem]
mov [mem],eax
и т.д. и т.п.
А если хочешь выделить себе кусок, то это с помощью HeapCreate, HeapAlloc, HeapDestroy как использовать см. приложение.

-------------
P.S.
Да, хочу извениться за опечатку допущенную мной при ответе на один вопрос. Там должно было быть не SHR al,2 , а конечно же SHL al,1. Прошу прощения, просто досадная опечатка.

Приложение:

Ответ отправлен: 01.06.2002, 19:37
Отправитель: Andy Bitoff


Отвечает Vint by Shz

Здравствуйте, Dark_Lord!
Не-ее-е.погоди!
Ето хто-же пробовать будет??
Ну ладно,по памяти!можно ,вроде, выходить из проги по 4сн прерывания 21Н , но точно нельзя 13 прерывание!Извини,проверить не могу- Тасм временно улетел ,вместе с форточками!

Ответ отправлен: 01.06.2002, 21:12
Отправитель: Vint by Shz


Отвечает Тorax

Здравствуйте, Dark_Lord!
Низззззззяяяяяяяяяяяяяя!!!!! Кто ж те даст такое право??????? :-))))))


Ответ отправлен: 01.06.2002, 22:55
Отправитель: Тorax


 Вопрос № 283

Извините, если уж сильно тупой вопрос...
Вобщем, есть задачка:
===== 8< ==================
В заданной строке от каждой группы одинаковых символов оставить только один из них. В те места строки, которые подверглись редактированию, по-местить символ *, за которым поместить цифру, показывающую число удалённых символов
(предполагается, что в строке не встречается подряд больше десяти одинаковых символов). Строку представить в виде списка.
===== 8< ==================
Вообще-то, проблема возникает именно на этапе формирования списка в памяти - выделить место и т.д., т.к. нигде не могу найти про это дело. Вобщем, если кому нетрудно - помогите бедному :) студенту.... Человек я в асме почти не шарящий, поэтому лучше, конечно, всю готовую программу (исходник, конечно) на _tasmе_...
Честно, очень надо - зачёт получить :) ...
Премного благодарен! Извините, если что не так...



Вопрос отправлен: 01.06.2002, 16:23
Отправитель: Alexander M. Bulat (webmaster@soft.zp.ua)

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Здравствуйте, Alexander M. Bulat!
Здесь правило - никаких исходников студентам, а то выходят потом Гейтсы всякие.
По поводу задачи - я так понял, это алгоритм RLE? Можно так сделать: прочитал символ, запомнил смещение от начала, сканируешь, пока не встретишь отличающийся символ, отнимаешь текущее смещение от запомненого, в новой строке заносишь свой символ и разницу, если разница = 1, то ее не заносишь. Алгоритм, я думаю, понятней некуда.

Ответ отправлен: 01.06.2002, 17:54
Отправитель: masquer


Отвечает Тorax

Доброе время суток, Alexander M. Bulat!
Вообще-то исходник низзя, и нас тут эксперты возмущаются теперь, надоело.
Место под твою строку можно выделить так - в конце своей проги, посли команды выхода в ДОС, ставишь:
mitka db xx dup (0)
где хх - количество байт сколько нужно зарезервировать, а потом засылаеш свои байтики, словечка туда.
Torax


Ответ отправлен: 01.06.2002, 22:54
Отправитель: Тorax


Отвечает Александр

Добрый день, Alexander M. Bulat!
Достал вражина. Готовых прог тут не пишут. Особенно для зачётов. С какого ты там универа, колись халявщик. Совет - делай строку с максимальной длинной в 80 символов например или 255, как угодно. Гораздо проще, чеи возиться с динамическим выделением памяти. И не могу я понять как можно строку представить в виде списка? Текст в виде списка строк я себе представляю, а строку в виде списка букв не очень, фантазии не хватает, это как самолёт с движком от паровоза. К тому же, что делать со странным условием о том, что не больше 10 подряд одинаковых символов. Ну куда приляпывать? Оно проверяться что-ли должно или просто для "облегчения" задачи. Пользы от него 0. Ну алгоритм типа с вкраплениями регистров.
0) В регистр CX - длину строки.
В регистр DX - 0, будет счётчиком удалённых символов.
В регистр SI - начало исходной строки.
В регистр DI - адрес буфера для записи результата. Для экономии памяти сделал бы DI=SI, если на этот счёт нет специального условия. Переходим к шагу 1.
1) Загружаем в регистр AL первый символ строки переходим к шагу 3.
2) Загружаем в AL очередной символ строки, сравниваем с регистром BL. Если различные - на шаг 3, если одинаковые на шаг 4.
3) Записываем содержимое регистра AL по адресу на который указывает DI. Увеличиваем DI на 1. Переносим содержимое BL в AL. Переходим к шагу 5
4) Увеличиваем DX на 1. Переходим к шагу 5.
5) Цикл по CX на шаг 2. После цикла шаг 6.
6) Вот собственно и всё. Осталось только вывести на экран.


Ответ отправлен: 04.06.2002, 13:40
Отправитель: Александр


 Вопрос № 284

Test...



Вопрос отправлен: 01.06.2002, 17:29
Отправитель: Oleg (oleg77@beep.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Kalashnikoff

Приветствую Вас, Oleg!
Обратный тест...

Ответ отправлен: 01.06.2002, 17:30
Отправитель: Kalashnikoff


 Вопрос № 286

Здраствуйте, Уважаемые эксперты!
Скоро экзамены, и как следствие, попалась любопытная задачка. Надо просто решить, не програмно:)
Решить неравенство:
> SQR[((x-2)*(log|x|(x+3)-1))/((x+2)^2*x)]<(x*log|x|
> (x+3)-2)/((x+2)*x)
> Обычно такие вещи решаются следующим образом, на
> сколько я знаю :),:
> Что-то принимается за А, что за В,а все остальное
> выражается через эти А и В. В этом примере
> предпринималась следующая попытка:
> А= (-2)/((х+2)х), В = (log|x|(x+3))/(х+2). Делалось
> это из следующих соображений: правая часть нер-ва в
> таком случае есть А+В , а подкоренной делитель левой
> части чем-то напоминает произведение А и В(
> произведение без числетелей).
> Так вот, то ли это тупиковый вариант, то ли фиг его
> разберет, но дальше это все выражать - абзац! А решать
> в тупую - это вообще бред!:)
> Каких будет ваших предложениев?:)(С)
> Спасибо.
P.S.: Это не прикол, это просто необходимо:)
P.S.S.: Послалось это сюда из соображений: программеры => математику более или менее знают. Если в лом самим решать, что понятно, то киньте, plz, WWW( каких-нибудь форумов и т.д.)
Спасибо.
Bye-bye.



Вопрос отправлен: 01.06.2002, 18:52
Отправитель: Crimson_B

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Доброе время суток, Crimson_B!
А вот не факт что, раз программер, то значит математику хорошо знает. Зачем, например, системному программисту знать высшую математику? Скажем так, это просто плюс, если знает. Я вышку уже года 4 как сдал и сейчас уже не помню практически ничего, если надо, то повторяю, правда. По твоей задаче так сходу не пристпушься, плюс ты не все условия перечислил (для каких х) и с явно с ошибками формулу записал.

Ответ отправлен: 01.06.2002, 21:22
Отправитель: masquer


Отвечает Александр

Приветствую Вас, Crimson_B!
Ты прислал бы в каком-нибудь более читабельном виде, ну хоть в виде tex-формулы. Абсолютно непонятно, что обозначает log|x|(x+3). Если это логарифм по основанию x, тогда надо было везде написать log(x+3) без всяких там |x|, а после написать что все логарифмы считаются по основанию x. Ну ты даёшь, с задачкой в интернет полез. Я-то как идиот по старинке всё к отличницам приставал, в хорошем конечно смысле, с задачками. Быстрее и приятнее, советую.


Ответ отправлен: 04.06.2002, 13:40
Отправитель: Александр


 Вопрос № 287

Драствуйте все!
Есь вопросик! Где я могу достать материал по АПИ фун-ям форточек очень было-бы хорошо на русском!(желательно ТОЧНЫЙ линк)
А не подскажете,для интереса, какая есть сейчас последняя версияя софтайса??у меня 4.09- мне очень нравиться. И последнее не у кого нет Демо версии IDA 4.15 , я её зарегил но видно плохо-не даёт сохранять листинг,хотя и не вылетает неуспев запуститься!Кто знает как лечить?Регистрационную карточку делал не я!Могу выслать посмотрите..
Ну у меня всё!
Удачи!



Вопрос отправлен: 01.06.2002, 21:37
Отправитель: Vint by Shz (vitalii@shadrinsk.zaural.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Добрый день, Vint by Shz!
http://www.winnt.rsm.org.ru
А вообще, мой совет, поставь себе MSDN, или хотябы только PlatformSDK и выучи англицкий - без него программеру никак низя...

Ответ отправлен: 03.06.2002, 11:00
Отправитель: Gibbel


Отвечает Тorax

Добрый день, Vint by Shz!
На сайте MSDN.com есть, но по ангицки. Также вместе с Дельфи и Билдером идет документация по АПИ. А у меня есть короткие описания Апи, напиши на torax@dotes.west.energy.gov.ua
Torax


Ответ отправлен: 02.06.2002, 21:29
Отправитель: Тorax


Отвечает masquer

Добрый день, Vint by Shz!
Не мучайся, учи английский и иди на MSDN. Последний айс идет с DS 2.6. Я сомневаюсь, что тебе необходима последняя версия айса. По иде - найди в инете полную версию, не демо.

Ответ отправлен: 01.06.2002, 22:52
Отправитель: masquer


Отвечает igorash

Добрый день, Vint by Shz!
Вот только что был на сайте.
http://babekcom.chat.ru/zip/api_help.zip
а еще на http://babekcom.chat.ru/zip/download.htm
есть куча исходников


Ответ отправлен: 02.06.2002, 03:37
Отправитель: igorash


Отвечает Александр

Приветствую Вас, Vint by Shz!
Честно не помню где, но попробуй на RSDN.ru. Есть у меня эта заезжая цыганка(IDA) и к кряк. Высылаю с почтой. К тому же скачал бы ты лучше с www.exetools.com IDA 4.04, зато полную.


Ответ отправлен: 04.06.2002, 13:40
Отправитель: Александр



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (47)
C / C++ (28)
Perl (10)
Delphi (17)
Pascal (29)
Basic / VBA (13)
Java / JavaScript (8)
PHP (7)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (34)
"Железо" (40)
Поиск информации (20)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (9)
Юристу
Гражданское право (13)
Семейное право (5)
Трудовое право (7)
КоАП (3)

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




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное