Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||