Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 136 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-11-23
От управляющего рассылкой
Вот, уважаемые эксперты и читатели, посмотрел я последние выпуски рассылки и ужаснулся. Прочитал и обращение ко мне, и некоторые ответы экспертов. Обдумав ситуацию, хочу сказать следующее (если у вас нет желания читать - то просто пропустите).
Переход к Windows
Действительно, программирование на Ассемблере в реальном режиме уже подошло к своему логическому завершению, хотя и остался еще один выпуск рассылки "Ассемблер? Это просто! Учимся программировать". Нужно уже давно переходить на Windows, но существуют некоторые существенно тормозящие факторы.
Последнее время я
примерно 90% времени посвящаю обработке
напечатанного мной материала по
программированию, довожу "до нужной
кондиции" книгу, которую уже нужно
сдавать в издательство. Проблемы здесь
такие: материал из рассылки требуется
существенно дополнить, вставить
графические выдержки программ (скриншоты) (что
уже, кстати, можно посмотреть в обновленном архиве
предыдущих выпусков), а также все это
несколько раз перечитать,
подкорректировать, разбить на главы и в
целом предоставить в таком виде, в котором
требует издательство. Все это, безусловно,
далеко не так просто, как мне казалось
вначале и требует огромных затрат времени (все-таки
350 страниц - это не так уж и мало). Более того,
планируется выпустить двухтомник, первый
том которого будет содержать обработанную
и дополненную информацию из известной вам
рассылки, а второй - справочник
программиста (команды процессоров 8086 - Pentium,
список функций BIOS и MS-DOS, а также огромное
количество теории, т.е. всего того, что не
затрагивалось в рассылке и очень полезно
программисту).
Я печатаю это не в качестве рекламы, а чтобы
вы поняли объем работы, который свалился на
мои плечи. Да и очень уж хочется сделать все
это до нового года.
Остальные 10% времени уходят на разработку дизайна сайта и новой системы экспертных групп. Сразу хочется предусмотреть по возможности все нюансы. Например, один из сложных этапов - написание программы по обработке почтовой корреспонденции (поступающих вопросов - ответов), причем, работающей без ошибок, что совсем непросто. Как вы поняли, эксперты и подписчики смогут работать как по e-mail (полагаю, многие оценят это новшество), так и с помощью web-интерфейса (как в настоящий момент). Дополнительно разделяются поступающие сообщения на следующие типы:
- вопрос;
- дополнение к ответу;
- благодарность / критика;
- замечание;
- предложение.
Все это, естественно,
должен выполнять робот. Однако и человеку в какой-то
степени необходимо вмешиваться, дабы
отфильтровывать никому не нужную рекламу и
непубликуемые ответы некоторых т.н. "умных
и крутых специалистов компьютерной
грамотности", позорящих честь настоящих
экспертов (но об этом в следующем пункте).
Есть неплохие задумки, которые, если их
удастся реализовать, очень оценят как сами
эксперты, так и подписчики.
Все то, что я планировал изначально, и что в
итоге получилось - меня совсем не
устраивает. В частности:
- невозможность автоматического слежения за лучшими экспертами и опубликования информации о них в специально отведенном разделе на сайте;
- отсутствие цензуры;
- не всегда справедливое начисление баллов за ответы;
- и многое другое.
Безусловно, все это мои проблемы. Вас же, как читателей и активных участников, это должно меньше всего волновать. Все это я написал по той причине, чтобы вы знали, что активная работа над развитием настоящего проекта (если можно так сказать) постоянно продолжается, и в скором времени вы станете свидетелями новой, более совершенной системы экспертных групп.
Об "экспертах", Microsoft,
Linux
и многом другом
"Настоящим программистам"
посвящается...
За свою недолгую жизнь мне уже доводилось встречаться с начинающими пользователями, строящими из себя "крутых сисадминов" или - что еще забавней - "суперспецов по кодингу". Научившись "тыкать по кнопкам" в произвольном порядке, такие "программеры" зачастую вбивают себе в голову то, что они знают все на свете, и, если кто-то обращается к ним с простейшим вопросом, в котором они сами были полными профанами 5 секунд назад, начинают корчить из себя специалистов, уставших от "тупых чайников", давая, тем самым, понять собеседнику, что он "полный ламер, ничего не смыслящий в сущности бытия, работе железа, операционных системах, приложениях и еще бог знает в чем". А, узнав, что "этот ламер" к тому же пользуется Win9x, в ход дополнительно идет "распальцовка", с использованием услышанных где-то "крутых идиоматических выражений и терминов компьютерной тематики", смысл которых одинаково не понятен обеим сторонам. Цель при этом преследуется одна: как можно круче выпендриться, показав себя нехилым "спецом" в общении с машиной.
Заветной же мечтой таких "компьютерных гениев" является либо сам факт подержаться за компакт-диск с "Линуксом", либо установить на свои компьютеры эту ОС (в очень редких случаях), при этом выучить две команды типа "ls" и "Х", либо продолжать работать с Windows, заявляя всем, что давно пора бы переходить на "Unix", т.к. "маст дай должен умереть", да и весь компьютерный мир уже давно позабыл о существовании "форточек". А мысль о том, что у самих руки корявые огромными усилиями из головы выметается. К этому стоит добавить, что UNIX-подобные системы им нужны как козе баян. С таким же успехом можно купить "Феррари" с кондиционером и ездить на ней по деревне, напевая "Ой, цветет калина"...
Научиться писать вирусы - тоже мечта, которая мучает их с момента первой попытки включить монитор. И ведь потом все же пишут! Но не собственные, а в силу своих умственных способностей изменяют пару-тройку операторов существующего уродства на VBA (назвать это вирусом - язык не поворачивается), и наслаждаются заметочками в журналах о появлении нового "вируса", тыча их в лицо своим друзьям: "Вот он, Я! ПОНЯЛИ?!" А вот сеять доброе, разумное, светлое - как это ни банально звучит - мозгов не хватает...
Естественно, что о
существовании таких ОС, как Windows 2000 или Windows
XP на основе технологии NT, "программисты-виртуозы"
краем уха что-то там слышали или даже читали, но
чтобы эти системы делились на несколько
подгрупп (семейств) - ... А спроси их, что это за
технология такая - NT, и чем она отличается от
используемой в Win9x или в их любимом и
прославляемом "Линуксе" (и отличается
ли вообще), - вы в лучшем случае получите
ответ, достойный занесения его в книгу "Дети
программистов от 2 до 5".
На вопрос "А чем, собственно, Linux отличается от
Windows NT?" вы услышите один или несколько
из приведенных ниже ответов:
- Linux - рулеzzz форева! Windows - маст дай! - такой жаргончик вгонит в могилу любого пользователя.
- Да ты что?! Это же LINUX!!! - больше, видимо, человеку ответить нечего.
- Linux не виснет и не имеет дыр в защите! - попросите его показать программу, не поддающуюся взлому и не имеющую ни одной ошибки, тем более операционную систему. Если же он такую и покажет, причем будет с пеной у рта доказывать, что так оно и есть - можете смело обозвать его ламером.
- Linux ставят на сервера, а это говорит о многом. - не более чем о том, что и Windows 2000 Pro / Server также стоит на многих мощных серверах, например, Microsoft.com, который ежедневно поддается атаке десятков, а то и сотен хакеров, жаждущих "показать кузькину мать" Гейтсу. Да и я построил "сетку" на работе на базе Windows 2000 Server и не жалею.
- И т.д. и т.п. - лишь пустые громогласные слова (чаще всего - рекламные слоганы), принятые на вооружение из различных источников.
Я, конечно, понимаю, что сейчас модно критиковать все продукты Microsoft. В настоящий момент в компьютерном мире, на мой взгляд, развивается примерно один из следующих сценариев:
А) Конкуренты Microsoft, борясь за потребителя, стараются любыми средствами опорочить результаты творчества своего "противника". Но так как открыто этого делать нельзя, то для достижения своих целей используются "мальчики-марионетки", описывающие все ужасы Windows во всевозможных форумах, конференциях, чатах и пр., особо подчеркивая, что настоящий программист никогда не сядет за "виндузу". При этом становится модным критика в адрес крупнейшего в мире гиганта, которая, безусловно, никак не отражается на деятельности Microsoft (знаете, как Моська на слона...).
Б) Microsoft сама умышленно делает то, что написано в пункте А), при этом, еще и приплачивает своим несчастным конкурентам. Цель такова: по американским законам (так же, как и по российским) не допускается существование монополий, т.е. компаний, захвативших более 60-70% рынка. Государство призвано активно бороться с этим "явлением", т.к. последствия всем известны. В случае попытки расформирования "империи Гейтса" (что уже безуспешно практиковалось), Microsoft с горечью сообщает: "Какие же мы монополисты?! Вон, посмотрите, сколько разных UNIX'ов есть, не считая OS/2, Netscape, Opera, The Bat! и пр. Да и пишут о нас как плохо! Ой, как плохо! Еще "ломают" наши серверы, ой-ой, как "ломают"! Бедные мы! Нас защищать надо!" При этом не только у судьи, но и у адвокатов истца градом текут слезы, и первый решает оставить в покое "дышащую на ладан" компанию...
Что ж, если оно так и есть, то стоит только позавидовать самому удачливому бизнесмену, первоклассному программисту Биллу Гейтсу и в целом компании Microsoft. А "мальчикам-марионеткам" порекомендовать шире смотреть на все происходящее в мире, лично поработать с той или иной программой, слушать только себя и иметь свое собственное мнение.
Я ни в коем случае не хочу подчеркнуть то, что пользователи UNIX-систем вот такие "программисты". Если человек установил себе Linux, и знает зачем и для чего он ее использует, - разговор совсем другой...
И, возвращаясь к нашим "программистам", добавлю, что доказывать что-либо таким людям - пустая трата времени. Обижаться - нет смысла. Куда интересней и прикольней продолжать с ними эту "игру", при этом строить умное и обалдевшее от их "суперграмотности" лицо, продолжая задавать до поры до времени простейшие вопросы. А дальше - все зависит от вашей фантазии...
Что касается меня, то скажу, что даже хорошим программистом себя никогда не считал и не считаю. Как говорится, век живи - век учись!
_______________
Хотелось бы еще написать о других "моральных уродах", которых в Интернете развелось как собак нерезаных, но не буду повторяться, т.к. эту тему мы уже затрагивали в самом начале выхода этой рассылки. Единственное, о чем хотелось бы попросить читателей, задающих вопросы, - не обижаться на таких темных личностей и относиться к ним с пониманием, как к психически больным или умственно отсталым людям, которые умудряются влезть туда, куда их совсем не звали.
_______________
Конечно, все мы, эксперты, раньше учились, задавались дурацкими и примитивными вопросами, откапывали где-то экзотическую литературу, читали, пробовали, экспериментировали, ставили перед собой задачи и даже пытались писать вирусы (с кем не бывает!). В результате достигали того, чего хотели. Сейчас всевозможной литературы - завались. Читатели даже капризно перебирают кучу сайтов, дабы найти именно то, что их больше всего устраивает. Компьютеры есть почти в каждой квартире, информация прямо из монитора лезет. Казалось бы: сиди и читай! Так читайте, друзья мои! Учитесь! Я очень надеюсь, что эксперты вам в этом будут и дальше помогать, а я, кроме своих редко высылаемых ответов, постараюсь делать работу максимально удобной и комфортной для обеих сторон.
Только тот человек считается настоящим программистом, который умеет объяснять сложнейшие вещи наиболее простым и понятным для любого пользователя языком, но никак не наоборот.
Вот, вроде и все, что хотел сказать. Потратил пару часов, но зато высказался "по полной программе". Ваши мнения по поводу всего вышеизложенного можете отправлять по адресу Assembler@Kalashnikoff.ru. Буду очень рад ознакомиться.
_______________
P.S. для читателей. Если вы возмущены ответом того или иного эксперта, то, пожалуйста, пришлите мне этот ответ по указанному в конце рассылки адресу. Виновные или непорядочные эксперты будут сильно наказаны. Заранее спасибо.
Вечно ваш,
Калашников Олег (Experts@Kalashnikoff.ru)
Вопрос №1516
Привет всем!
Тут кто-то заикался о рассылке по Protected Mode. Так я этот вопрос давно задавал, но в ответ тишина. Давайте кто хочет вырязят желание. А то реальный режим уже давно никому не нужен,а защищенный это рулез. Правда я нашел по нему исчерпывающую инфу и мне пока хватает.
Ответ
Здравствуйте, DIGiT!
А как на счет вертуального режима?????????
Почему-то все его игнорируют ??? - В чем дело ???
Или слабо ????
Отправил эксперт: Exilit
Эксперт отправил ответов (всего): 7
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1516
Привет всем!
Тут кто-то заикался о рассылке по Protected Mode. Так я этот вопрос давно задавал, но в ответ тишина. Давайте кто хочет вырязят желание. А то реальный режим уже давно никому не нужен,а защищенный это рулез. Правда я нашел по нему исчерпывающую инфу и мне пока хватает.
Ответ
Здравствуйте, DIGiT!
Я хочу! Правда, я вообще что-то давно рассылку не получал... Только FAQ. А рассылка заглохла где-то на 30-м выпуске :(
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 67
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1518
Господа экперты. Подскажите, где можно достать (купить, а лучше скачать) толковый справочник по Win32 API. С подробными описаниями функций, стилей, сообщений и т.п. Желательно (но не обязательно) с примерами вызовов функций.
Заранее спасибо.
Ответ
Здравствуйте, DEMONN!
Купи MSDN, там все или у форточников полазь - может найдешь ( в с мысле MSDN) - какие-то части у них там есть - если не все ...
Если нет зайди на vbrussian.com - там есть ссылка на это дело ...
Еслим кратко то на NikolayAM.narod.ru - неплохой справочник ...
Отправил эксперт: Exilit
Эксперт отправил ответов (всего): 8
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №1515
Какая максимальная рабочая температура процессоров Duron?
Ответ
Здравствуйте, Слава!
90 градусов. А вообще кремний был-есть-и пока будет и интегральные схемы пока что делают только на нем. К чему это я - к тому, что значение 90 градусов справедливо для всех процессоров, другое дело насколько быстро каждый из них нагревается.
Отправил эксперт: DivX
Эксперт отправил ответов (всего): 28
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1519
Я хотел спросить у WizarX'a
Слухай если ты такой крутой чел и утебя сертификат от мелкософта скажи...как убрать баннеры из ICQ
Ответ
Здравствуйте, Змей!
Тебя интересует ответ ТОЛЬКО от WizarX`а или вообще ОТВЕТ? ;-))))
Отправил эксперт:
Эксперт отправил ответов (всего): 1
Экспертная группа: Пользовательская работа с Windows
Вопрос №1521
Привет всем!
Ayl спасибо за четкий и внятный ответ.
Вопрос такой: Есть число 5 (десятичное), делаем из него
-5, в битовой интерпритации это будет выглядеть так: 5:
0110; -5:1010; число:1010 будет записана в доп. коде.
1) Почему это называется доп. код?
2) Если я укажу таую дерективу: Binar db 1010b будет присвоино переменной Binar число 10 (в десятичной). Но нужно присвоить отрицательное 5 (-5). Собственно я потому и спросил вначале почему запись отриц числа записывается в доп. коде.
Вобше за четностью и нечетностью следит флаг SF, потому если в результате арифм. операции получилось отриц число, то наверное проблем небыло, этот регистр (SF) был в ответе за это!
Вы скажете непроши ли было зиписать так : B db -5, а как тогда с шестнадцатиричным числом: B db FA?
Много получилось...:)
С уважением Alex.
Ответ
Здравствуйте, Alex!
Спасибо за оценку! :)
Теперь по поводу представления чисел. На самом деле процессору абсолютно наплевать, положительное или отрицательное число он обрабатывает. Именно поэтому при описании диапазонов для той или иной разрядности обычно указывают два - неотрицательный и знаковый. Например:
- с помощью директивы db вы можете задать либо неотрицательное число
в диапазоне от 0 до 255, либо знаковое число от -128 до +127
- с помощью директивы dw вы можете задать либо неотрицательное число
в диапазоне от 0 до 65535, либо знаковое число от -32768 до +32767
Для dd не помню, а считать влом. Там тоже самое, только диапазон больше.
Вещественные числа пока не трогаем, там вообще мрак!
Итак, что же мы имеем. У нас есть число. Хочется, чтобы оно было отрицательным. Но у нас только 8, 16 или 32 бита. Одним надо жертвовать для знака числа. Примем, что если старший бит 0, то число положительное, если 1 - отрицательное. Теперь как представлять отрицательные числа, чтобы с ними было удобно работать?
Посмотрим. Пусть у нас на число отводится 4 разрада. Тогда мы можем представить числа от -8 до +7.
Возьмем два положительных числа, скажем 3 и 5, и вычтем одно из другого (по правилам работы с 2-ичными числами):
0011
-
0101
----
*1110 - * - заем из несуществующего разряда.
А в результате мы должны были получить -2. Итак, -2 = 1110 !
В принципе, так можно поступить со всеми числами из диапазона.
Это представление в дополнительном коде. Почему в дополнительном?
Потому что представление отрицательного числа дополняет представление положительного до 0 (да-да, именно до 0 - перенос из старшего разряда игнорируется! Ну не хватает нам разрядной сетки!).
В результате мы имеем:
0 = 0000
1 = 0001
...
7 = 0111
-8 = 1000 (-8 + 8 = 1000 + 1000 = (1)0000)
-7 = 1001 (-7 + 7 = 1001 + 0111 = (1)0000)
-6 = 1010
...
-2 = 1110
-1 = 1111
Для перевода положительного числа в отрицательное можно воспользоваться следующими способами:
1. Вычесть его из 0
2. а) Инвертировать все биты числа (0 становится 1, 1 - нулем). Этого
можно добиться, выполнив операцию XOR с числом (FF)FF (или -1)
б) Прибавить к результату 1
3. В ассемблере есть команда neg
По поводу записи чисел в программах. Числа нужно записывать так, чтобы было понятно программисту. Например, если я хочу использовать
-5, то я так честно и запишу: a db -5.
Если же мне нужно положительное число, то это будет b db 0fah (или b db 250). Если мне нужен символ, то я его и поставлю. Пусть я даже буду знать его ASCII код. Ну и т.п. Кстати, адреса никогда не бывают отрицательными. Поэтому смещение FFFF - это адрес 65535, а не -1.
Все. Что-то я расписался... :)
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 68
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1522
День добрый!
Чето я тут одну фишку не понял: в 86 машинах все выражения вычисляются
в области 16-ти битовых чисел. "Результат всех операций берется по модулю"
Как понимать данное утверждение? А как тогда с DD (Define Double Word)?
X DD 8000+8002, как быть с этим, что тут получится.
Да к стате давно хотел спросить как складывать 16-ричные числа?
Ответ
Здравствуйте, Alex!
1. Правда написана. Так как процессор 16-ти разрядный, то и оперировать он может только 16-разрядными регистрами. Ну не лезет в него больше! Но есть еще один замечательный флаг - флаг переноса CF! Именно он нам и поможет!
Пример: при сложении 65535 (FFFFh) и 1 мы должны получить 65536 (т.е. 10000h). Но это уже 17-тиразрядное число! Результат сложения выглядит так:
1111 1111 1111 1111
+
0000 0000 0000 0001
---------------------
(1) 0000 0000 0000 0000
|
CF
Т.е. мы можем проверить флаг CF и понять, что произошел перенос из старшего разряда. Кроме того, есть команды adc и sbb (сложить с цчетом переноса и вычесть с учетом заема) как раз для обработки чисел, больших 65536.
Пусть у нас в регистрах dx:ax находится число (32 разряда). Нам нужно сложить его с числом cx:bx (тоже 32 разряда). Выполняем:
add ax, bx ; сложить младшие 16 разрядов чисел
adc dx, cx ; сложить с учетом переноса старшие 16 разрядов
jc OverFlow ; если CF установлен - сообщить о переполнении
Цепочка add - adc - adc - ... - adc может быть любой длины!
2. 16-ричные числа, впрочим, как и любые другие числа в позиционных с.с. лучше всего складывать в столбик! :) Желательно при этом знать таблицу сложения в этой с.с. Для 16-тиричной:
0 1 2 3 4 5 6 7 8 9 a b c d e f
------------------------------------------------------------------
0 0 1 2 3 4 5 6 7 8 9 a b c d e f
1 1 2 3 4 5 6 7 8 9 a b c d e f 10
2 2 3 4 5 6 7 8 9 a b c d e f 10 11
3 3 4 5 6 7 8 9 a b c d e f 10 11 12
4 4 5 6 7 8 9 a b c d e f 10 11 12 13
5 5 6 7 8 9 a b c d e f 10 11 12 13 14
6 6 7 8 9 a b c d e f 10 11 12 13 14 15
7 7 8 9 a b c d e f 10 11 12 13 14 15 16
8 8 9 a b c d e f 10 11 12 13 14 15 16 17
9 9 a b c d e f 10 11 12 13 14 15 16 17 18
a a b c d e f 10 11 12 13 14 15 16 17 18 19
b b c d e f 10 11 12 13 14 15 16 17 18 19 1a
c c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b
d d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c
e e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d
f f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e
Вот и все. Поразрядно складываешь - и не забываешь про переносы.
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 69
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1523
Хотелось бы уточнить ответ на вопрос №1509. Digger при умножении матриц мы перемножаем строки на столбцы, учитывая тот факт, что матрицы не обладают свойством комутативности. И вообше это за формула a(x1,y1)*b(x2,y2)...?
Ответ
Здравствуйте, Alex!
Я тоже этого не понял. А формула перемножения матриц такова:
A(m*n) * B(n*k) = C(m*k), где
Cij = Ai1*B1j + Ai2*B2j + ... + Ain*Bnj
для i из диапазона 1..m, j из диапазона 1..k
Ait - элемент матрицы A из i-ой строки и t-ого столбца,
Btj - элемент матрицы B из t-ой строки и j-ого столбца,
t из диапазона 1..n
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 70
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1516
Привет всем!
Тут кто-то заикался о рассылке по Protected Mode. Так я этот вопрос давно задавал, но в ответ тишина. Давайте кто хочет вырязят желание. А то реальный режим уже давно никому не нужен,а защищенный это рулез. Правда я нашел по нему исчерпывающую инфу и мне пока хватает.
Ответ
Здравствуйте, DIGiT!
На самом деле я не заикался, а прямо так и говорил!!! И поделись вообще линками на "исчерпывающую инфу", всем хоца!!!
Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 210
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1518
Господа экперты. Подскажите, где можно достать (купить, а лучше скачать) толковый справочник по Win32 API. С подробными описаниями функций, стилей, сообщений и т.п. Желательно (но не обязательно) с примерами вызовов функций.
Заранее спасибо.
Ответ
Здравствуйте, DEMONN! Ставишь любой Борландовский С++ (5.0-5.5) в папке де оно стоит найдешь файло - win32.hlp или чето в этом роде - 10 мегов весит. Там все API на С с примерами и т.п.
А если нада для VB, то ставишь из Visual Studio - API Text Viewer
Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 211
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №1520
Уважаемые эксперты, как в бейсике, напишется программа:
Нужно вести несколько, чисел в массив, и сложить общее количество, этих чисел, но только при условии, что они больше пять.
Ответ
Здравствуйте, Артём!
Пиши в АЛГОЛ-е лучше, бейсик устарел давно
Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 212
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №1527
Здарово эксперты:)
Жил был у меня старенький БК
Atari 800XL
а у него был Стример (игрушки там всякие и проги писал
на касеты...) дык вот дело такое: хочу, чтобы в комп
он "втыкался" а для этого надо немного вход переделать...
а вопрос вот в чем...где найти распайку штекера такого старья???
Ответ
Здравствуйте, Baa!
Круто ты проапгрейдился :)
Со стриммером вряд ли у тя что получится - надрываться не стоит - хотя бы схему его нада для ответа - плюс прогу писать, адаптер, я бы лично не за любые деньги повелся, хотя были подобные преценденты для Спектрума :) Предлагаю более простой вариант Поставь себе эмулятор этого Атари, там же где его найдешь - почти факт - найдешь там и массу своих любимых программ :)
Отправил эксперт: UFO
Эксперт отправил ответов (всего): 46
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1528
Господа присяжные , и заседатели ! Пишет вам чайник из чайников ! Помогите обнаружить драйвер , открывающий-закрывающий СИДИРОМ , чтобы заставить его работать по, клику мышьи с рабочаго стола , или написать прог!. Комп у меня недавно, но я его неплохо знаю вниз , до железа , а вот высше , с языками , полный ноль , посоветовали , начать , с Паскаля , зря выкинул , деньги на книжку . Помогите , ето мечта , к кому не обращался , все только разводят руками . Зарание спасибо Piton . Koltpiton@mail.ru
Ответ
Здравствуйте, piton!
Драйвер ??? Он что у тебя не работает ???
Если работает и ты его хош открыть/закрыть то советую на VB или чем то еще объектноориентированном, вот пример статейки..
Вот ещё один пример на эту тему: как программно открыть и закрыть CD-ROM. Для демонстрации примера создадим обычный проект, на форму добавим кнопку и добавим следующее объявление API-функции:
Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString _
As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
для события Click кнопки напишем следующий код:
Private Sub Command1_Click()
mciSendString "Set CDAudio Door Open Wait", 0, 0, 0
End Sub
Этот код откроет лоток CD-ROM.
Для закрытия же CD-ROM используем эту же функцию, но с другим первым параметром:
mciSendString "Set CDAudio Door Closed Wait", 0, 0, 0
Вообще же первый параметр функции mciSendString довольно-таки хитрый. Он составной. Так, вместо CDAudio вы можете написать digitalvideo или еще что-нибудь, вместо Door Open или Door Close можно написать audio all off или audio right off или какие-нибудь другие варианты. Подробности всего этого смотри в MSDN->Platform SDK->Graphics and Multimedia Services->Windows Multimedia->Multimedia Reference->Multimedia Command Strings->Set.
Отправил эксперт: Exilit
Эксперт отправил ответов (всего): 9
Экспертная группа: Пользовательская работа с Windows
Вопрос №1532
Всем снова привет!
Ayl ну ты просто святой:)
Мне уже неловко тебя спрашивать..., но до меня недошло что это за пирамида? Что с чем складывается..., может проше на простом примере... таком как (см. ниже):
FFF
+
B2A
------
?????
Ответ
Здравствуйте, Alex!
Да блин, съехала табличка... Это была таблица сложения в 16-тиричной с.с. :((
А если на примере - то пожалуйста:
7FB4 + 5A8D = ?
1. Складываем 4+D. D 16-ричное = 13 10-тичное. Поэтому 4 + D = 4 + 13 =17. 17 десятичное в 16-ричной с.с. равно 11. 11 > 10 (10 - это основание любой позиционной с.с., записанное в ней самой!). Поэтому 1 пишем в результат, 1 запоминаем в качестве переноса.
2. Складываем B + 8: B = 11(10) ==> B + 8 = 11 + 8 = 19. Плюс перенос ==> 20. 20 (10) = 14 (16). 6 пишем, 1 "в уме" :)
3. Складываем F + A: F = 15 (10), A = 10 (10) ==> F + A = 15 + 10 = 25. Плюс перенос ==> 26. 26 (10) = 1A (16). A пишем, 1 "в уме".
4. Складываем 7 + 5: 7 + 5 = 12 (10). Плюс перенос ==> 13. 13 (10) =
D (16). Переноса нет.
Итог:
7FB4 + 5A8D = DA61.
Все.
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 71
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1528
Господа присяжные , и заседатели ! Пишет вам чайник из чайников ! Помогите обнаружить драйвер , открывающий-закрывающий СИДИРОМ , чтобы заставить его работать по, клику мышьи с рабочаго стола , или написать прог!. Комп у меня недавно, но я его неплохо знаю вниз , до железа , а вот высше , с языками , полный ноль , посоветовали , начать , с Паскаля , зря выкинул , деньги на книжку . Помогите , ето мечта , к кому не обращался , все только разводят руками . Зарание спасибо Piton . Koltpiton@mail.ru
Ответ
Здравствуйте, piton!
Поищи на www.listsoft.ru, www.softlist.ru, и www.download.ru. Мне где-то там попадалась утилитка для этого под Выньду.
Отправил эксперт:
Эксперт отправил ответов (всего): 1
Экспертная группа: Пользовательская работа с Windows
Вопрос №1529
Господа присяжные , и заседатели ! Пишет вам чайник из чайников ! Помогите обнаружить драйвер , открывающий-закрывающий СИДИРОМ , чтобы заставить его работать по, клику мышьи с рабочаго стола , или написать прог!. Комп у меня недавно, но я его неплохо знаю вниз , до железа , а вот высше , с языками , полный ноль , посоветовали , начать , с Паскаля , зря выкинул , деньги на книжку . Помогите , ето мечта , к кому не обращался , все только разводят руками . Зарание спасибо Piton . Koltpiton@mail.ru
Ответ
Здравствуйте, piton!
Нада использовать MCI
Текст, если не ошиьаюсь "set cd door open".
Хотя и могу соврать.
Точный ответ был на сайте delphi.mastak.ru
Приложение:
Отправил эксперт: progmas (a-kireev,narod.ru - HOMEPAGE)
Эксперт отправил ответов (всего): 1
Экспертная группа: Пользовательская работа с Windows
Вопрос №1527
Здарово эксперты:)
Жил был у меня старенький БК
Atari 800XL
а у него был Стример (игрушки там всякие и проги писал
на касеты...) дык вот дело такое: хочу, чтобы в комп
он "втыкался" а для этого надо немного вход переделать...
а вопрос вот в чем...где найти распайку штекера такого старья???
Ответ
Здравствуйте, Baa!
Сходи на радиорынок.
В царицино все есть!
Приложение:
Отправил эксперт: progmas (a-kireev,narod.ru - HOMEPAGE)
Эксперт отправил ответов (всего): 2
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1498
День добрый, господа эксперты! Спрашивается: учить Асм под DOS нужно, чтобы въехать в Асм под Win32, а на нем писать уже серъезно, или же Асм под DOS все еще нужен сам по себе?
P.S.: Я не против DOS'а, скорее наоборот. Просто интересно узнать сегодняшнее место Асма на программерской арене.
Ответ
Здравствуйте, Xandre!
Лично я считаю так, что Асм нужен ради Асма, я например на работе пишу под совсем разные процессоры, типа МК51, МК52, TMS, AVR, стандартные 086, 188, 386, а под Дос или тем более Виндовс вообще почти не писал
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 205
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1510
Кто то хотел оживить рассылку, не правда ли????
Ответ
Здравствуйте, WizarX!
И так начнем:
Это случаем не про тебя ???
http://wizardx.narod.ru/
http://love.mail.ru/item/126723.html?126016
....
Возраст 21
Рост 182
Вес 74
Город Новосибирск
Знак Зодиака рак
Образование Незаконченное высшее
Семейное Положение Женат
....
И от куда у тебя в твои 21
12 лет работы с ИТ технологиями ???
ЛАМЕР !!!!!!!!!!!!!!!!!!!!!!!!!!
(ФУХ - отвел душу)
Отправил эксперт: Exilit
Эксперт отправил ответов (всего): 10
Экспертная группа: Пользовательская работа с Windows
Вопрос №1529
Господа присяжные , и заседатели ! Пишет вам чайник из чайников ! Помогите обнаружить драйвер , открывающий-закрывающий СИДИРОМ , чтобы заставить его работать по, клику мышьи с рабочаго стола , или написать прог!. Комп у меня недавно, но я его неплохо знаю вниз , до железа , а вот высше , с языками , полный ноль , посоветовали , начать , с Паскаля , зря выкинул , деньги на книжку . Помогите , ето мечта , к кому не обращался , все только разводят руками . Зарание спасибо Piton . Koltpiton@mail.ru
Ответ
Здравствуйте, piton!
#include
#include
int main(int argc, char* argv[])
{
HANDLE hVolume;
DWORD dwBytesReturned;
hVolume = CreateFile( "\\\\.\\f:",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL );
//DeviceIoControl( hVolume,IOCTL_DISK_LOAD_MEDIA,NULL, sizeof(0),NULL, 0,&dwBytesReturned,NULL);
DeviceIoControl( hVolume,IOCTL_STORAGE_EJECT_MEDIA,NULL, sizeof(0),NULL, 0,&dwBytesReturned,NULL);
return 0;
}
это работает на NT , если CD не занят.....если занят может тоже работает.....Первая строчка.... DeviceIoControl загружает cd, вторая выгружает.....(CDROM тут диск f:)
Отправил эксперт: Alexander Lam
Эксперт отправил ответов (всего): 1
Экспертная группа: Пользовательская работа с Windows
Вопрос №1517
Привет всем.
Народ, кто подскажет алгоритм подключения DLL к приложениям.
Я так до сих пор не могу понять. Как решается проблема подключения - ведь и точки входа в ДЛЛки и сами проги (которые их вызывают) - могут распологаться по разным адресам... Сам то я примерно вижу некоторые выходы - но интересно на чем остановились форточники...
Ответ
Здравствуйте, Exilit!
В форточках это происходит так:
push offset DLL_NAME
call LoadLibrary
test eax,eax
jz OBLOMs
push offset PROC_NAME
push eax
call GetProcAddress
test eax,eax
jz OBLOMs
call eax ;или адрес сохраняется
А если DLL собственного приготовления :-) то загружать вообще ненужно,конечно если DLL линкуется вместе с EXE.Все само
подгрузится :-))
Cмотри хелп по win32api там можно еще несколько способов найти.
Отправил эксперт: Hutch
Эксперт отправил ответов (всего): 1
Экспертная группа: пВЭЙЕ ЧПРТПУЩ РП РТПЗТБННЙТПЧБОЙА ОБ бУУЕНВМЕТЕ РПД Win32
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Управляющий рассылкой,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||