Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 372
от 22.09.2002, 14:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1309 Отправлено ответов: 4092 Активность: 312.6 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Kiss Статус: Доверительный Общий рейтинг: 140.86 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 157.32 [Подробней >>] |
Bob Johnson Статус: Доверительный Общий рейтинг: 136.58 [Подробней >>] |
ARDoS Статус: Доверительный Общий рейтинг: 107.51 [Подробней >>] |
ASMодей Статус: Опытный Общий рейтинг: 123.64 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 119.39 [Подробней >>] |
SonicX Статус: Доверительный Общий рейтинг: 121.68 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 116.85 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 118.19 URL: Пристанище неодинокого программиста [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.5 URL: Страничка обо мне и моих друзьях [Подробней >>] |
DiGiT[old] Статус: Доверительный Общий рейтинг: 111.18 [Подробней >>] |
Sinner Статус: Доверительный Общий рейтинг: 106.26 [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 115.16 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 134.44 URL: моя рассылка по Protected Mode [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 127.62 URL: Страничка рассылки по Паскаля... Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
Biv Статус: Начальный Общий рейтинг: 125.92 [Подробней >>] |
Pablo Статус: Профессиональный Общий рейтинг: 130.44 URL: Моя страничка [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 135.58 [Подробней >>] |
GL Статус: Опытный Общий рейтинг: 105.26 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 121.41 URL: Мой сайтик... [Подробней >>] |
igorash Статус: Профессиональный Общий рейтинг: 119 [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 133.94 Телефон: 8 01710 24758 [Подробней >>] |
Shal Статус: Опытный Общий рейтинг: 107.17 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1254. Кто-нибудь знает, можно ли в WinNT сделать такую вещь? Есть программа, написанная под другую версию ... (ответов: 4)
Вопрос № 1255. Доброе время суток эксперты. Уменя вот какой вопрос: 1.Считает ли процессор ПЗУ и ОЗУ одним сплошным... (ответов: 9)
Вопрос № 1256. Доброго времени, суток господа Экперты. Помогите прояснить такой вопросик: Лог. операция xor провод... (ответов: 11)
Вопрос № 1257. Доброе время суток Артем. Получил Ваш ответ, благодарю. Но поясните подробней, пожалуйсто, что означ... (ответов: 1)
Вопрос № 1258. Всем здрасти. Вопрос конечно не совсем по теме рассылке, но тем не менее... Имеется 1.Win2000 2.Dos... (ответов: 3)
Вопрос № 1259. Ув. эксперты. Подскажите, пожалуйста, каким образом можно редактировать код в ida или softice.... (ответов: 4)
Вопрос № 1260. Приветствую Вас, Gibbel. Непонятно вот что, где находится этот jumper? Пожалуйста, напишите поподроб... (ответов: 1)
Вопрос № 1261. Приветствую Вас, Артем. Скачал свашего сайта Xveiw. Класс, только не совсем понятно для чего служит ... (ответов: 1)
Вопрос № 1263. Ув. Эксперты,скажите плз Ascii код комбинации клавиш Turbo-F11... (ответов: 4)
Вопрос № 1264. Здравствуйте господа Эксперты! Хочу поинтерисоваться, что означает когда в результате FindFirstFile ... (ответов: 11)
Вопрос № 1265. Привет ASMодей! А как тебе удалось дважды ответить на вопрос 1225?!!... (ответов: 1)
Вопрос № 1266. Мужики подскажите где достать дизассемблер и эмулятор ВМ580 микропроцессора?... (ответов: 5)
Вопрос № 1267. Дополнение к моему же вопросу № 1254 про добавление самодельной функции в WinNT Перекомпилировать не... (ответов: 4)
Вопрос № 1268. Доброе время суток,уважаемые экспериы!! У меня возникла проблемка с записью в фаил! В td.exe вобче... (ответов: 3)
Вопрос № 1269. Дарова всем ассемблирщекам! Я вот постиг языки СС++ (Visual Buldier) PascalDelphi JavaScript Perl HT... (ответов: 20)
Вопросов: 15, ответов: 82
Вопрос № 1254 |
Кто-нибудь знает, можно ли в WinNT сделать такую вещь?
Есть программа, написанная под другую версию винды.
В программе есть вызов одной функции из файла ntoskrnl.exe
Есть исходный код нужной функции.
Надо сделать так, чтобы функция вызывалась как и прежде, из ntoskrnl.exe, но находилась в другом файле.
Есть идеи?
Вопрос отправлен: 17.09.2002, 14:40
Отправитель: Джамаль (s_man80@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Kiss
Здравствуйте, Джамаль!
Как я понял все что нужно это поместить эту функцию в другой файл, и сделать в виде хедера как в CC++ а потом подключать в ntoskrnl.exe.
Ответ отправлен: 17.09.2002, 16:48
Отправитель: Kiss
Отвечает masquer
Доброе время суток, Джамаль!
Попонятнее изъясняйся, тут не рассылка телепатов...
Под какую написана; под какую нужно и зачем; на чем написана; в какой другом файле - exe, dll, sys; почему просто перекомпилировать нельзя???
Ответ отправлен: 17.09.2002, 22:21
Отправитель: masquer
Отвечает Bob Johnson
Приветствую Вас, Джамаль!
Да это возможно. Для этого необходимо написать программу, которая:
1. Запускает желаемое приложение (с помощью CreateProcess) с параметром CREATE_SUSPENDED, т.е. "замороженным".
2. Получает HANDLE на процесс (это получается само).
3. Определяет адрес требуемой функции в контексте запущенного процесса.
4. С помощью функции VirtualProtectEx изменяет состояние страницы памяти, в которой находится код желаемой функции на PAGE_EXECUTE_READWRITE.
5. С помощью функции WriteProcessMemory изменяет этот код.
Ну вроде так, хотя точно проверить не могу - у меня Win98.
Есть еще вариант... Но он немного ... сложноват - для этого пишется своя библиотека с именем ntoskrnl.exe, которая експортирует ВСЕ функции, что и стандартная, причем при выполнении передает управление исходной библиотеке, за исключением вызова требуемой функции. Такая библиотека помещается в каталог программы и поэтому загружается раньше стандартной.
Ответ отправлен: 18.09.2002, 13:29
Отправитель: Bob Johnson
Отвечает ARDoS
Здравствуйте, Джамаль!
Я что-то не понял где находится функция и откуда её надо вызывать, но на всякий случай в приложении несколько простых способов перехвата функций.
Приложение:
Ответ отправлен: 19.09.2002, 13:31
Отправитель: ARDoS
Вопрос № 1255 |
Доброе время суток эксперты.
Уменя вот какой вопрос:
1.Считает ли процессор ПЗУ и ОЗУ одним сплошным массивом памяти? И по каким адресам находится инструкция инициализации компьютера? Дело в том, что у меня в литературе написано, что эта инструкция находится по адресам
ffffffff0h and ffff0h, но очевидно, что эта же инструкция должна находиться в ПЗУ, откуда же такие адреса если инициализация ОЗУ еще не состоялась? И, вообще, кто же первый начинает шоу CPU or ROM BIOS?
2. И, если можно, второй вопрос.
Каким образом сбросить пароль в CMOS SETUP если он непростительно забыт, можно ли написать для этого прогу, или нужно вынимать аккумулятор?
Если вынуть аккумулятор, то сколько ждать сброса?
Сдается мне, что пару суток. Так ли это?
С ужажением, Alex.
Вопрос отправлен: 17.09.2002, 15:28
Отправитель: Alex
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Доброе время суток, Alex!
1. Вообще-то ОЗУ и ПЗУ - это разная память, но компьютер так
устроен, что ПЗУ аппаратно отображается на часть ОЗУ
(по-моему с адреса FFFF0h). При включение компьютера или
после RESET, в регистре CS содержится F000h, а в регистре
IP - FFF0h. Это и есть точка входа ПЗУ для инициализации
компьютера.
2. Для сброса установок CMOS на плате должна быть специальная
перемычка, или на старых платах придется вынимать аккумулятор.
А вообще есть программы, запустив которые вы спокойно
можете узнать пароль, записанный в CMOS. Для некоторых
BIOS существуют даже универсальные пароли.
Ответ отправлен: 18.09.2002, 08:29
Отправитель: ASMодей
Отвечает Ayl
Доброе время суток, Alex!
1.Адресное пространство едино. Соответственно, ПЗУ и ОЗУ находятся в одном массиве памяти. Можешь поискать карту памяти - там все описано.
При инициализации адреса выделяются следующим образом (см.Приложение).
Насчет того, кто начинает шоу - а при чем здесь CPU? CPU делает только то, что ему указано в ячейке по адресу cs:ip. А вот при инициализации проца в регистры cs и ip заносятся предопределенные значения, с который в ROM BIOS находится процедура POST - Power-On Self-Test. Отсюда шоу и начинается.
2.Во-первых, можно надыбать в инете список сервисных паролей к твому BIOS - мож какой-то и подойдет.
Во-вторых, можно написать прогу, забивающую CMOS левыми значениями (адреса с 10h по 20h) - ошибка CheckSum и CMOS автоматически сбрасывается.
В-третьих, вынуть батарейку. Двое суток ждать не надо, потерпи минут десять. Должно сброситься.
Приложение:
Ответ отправлен: 17.09.2002, 16:50
Отправитель: Ayl
Отвечает SonicX
Добрый день, Alex!
1)При загрузке из ROM BIOSа процессор берет инструкции.
2)Вынь батарейку с платы, и закороти контакты на 5-7 сек.
Ответ отправлен: 18.09.2002, 08:41
Отправитель: SonicX
Отвечает baldr
Доброе время суток, Alex!
Нет, не считает. ПЗУ просто проецируется, как бы делается копия в оперативку. А при старте компа процессор в инициализации, IMHO(!), не учавствует - материнка сама посылает нужные сигналы. Втч и процу.
Ответ отправлен: 17.09.2002, 15:33
Отправитель: baldr
Отвечает Kiss
Приветствую Вас, Alex!
Я думаю шоу начинает BIOS, потому что без батареи машина вообще не подает признаков жизни.
После того как вынул аккамуль нужно замкнуть отверткой или еще чем и все дела. Всегда работало.
С уважением Kiss!
Ответ отправлен: 17.09.2002, 16:39
Отправитель: Kiss
Отвечает Артём Шегеда
Здравствуйте, Alex!
1. Всё гораздо проще. ПЗУ с BIOS размещена по адресу F000:0000 и занимает сегмент. В последних шестнадцати байтах (в последнем параграфе) стоит дальний переход на процедуру POST (где-то в том же сегменте). Процессор после сброса выставляет на шину адреса FFFF0 и получает ту самую инструкцию - JumpFar. Всё, шоу началось.
2. Если после изъятия аккумулятора посадить шины питания на GND, то процесс сократится до нескольких секунд.
Ответ отправлен: 17.09.2002, 16:06
Отправитель: Артём Шегеда
Отвечает Gibbel
Добрый день, Alex!
1. ПЗУ и ОЗУ представляют собой единое адресное пространство... При старте системы регистры процессора: CS = 0FFFFh, IP = 0000h, соответственно, процессор начинает выполнение команд, расположенных по адресу 0FFFF0h. В эту область памяти отображается содержимое ПЗУ BIOS.
2. Для сброса пароля достаточно изменить любой байт из области CMOS, защищенной CRC. К тому же, на современных компах извлечение батарейки ничего не даст - она больше не питает микросхемы CMOS, а используется для подпитки системного таймера. Соответственно, на старых матерях - вытаскиваешь батарейку, ждешь пару минут, и все - пароля нет... На новых - находишь джампер CMOS Reset, замыкаешь его (или переключаешь в положение "Reset") и все...
Ответ отправлен: 17.09.2002, 18:08
Отправитель: Gibbel
Отвечает DiGiT[old]
Доброе время суток, Alex!
нет не считает, но он отображает в ОЗУ ПЗУ.
Ответ отправлен: 18.09.2002, 13:01
Отправитель: DiGiT[old]
Отвечает Bob Johnson
Доброе время суток, Alex!
2. Для этого можно написать программу - в порт 70h помещаешь адрес CMOS-ячейки (обычно 0-127), а в 71h затем - данные (для сброса пароля - всякую фигню). И проходишь циклом всю CMOS-память. После этого перезагружаешься и получаешь что-то вроде CMOS Checksum Error и никакого пароля. Работает, естественно, под чистым досом или win95/98/ME(?).
А вот на счет батарейки - обычно на платах есть специальная перемычка, позволяющая очищать содержимое памяти. И не надо ничего вытаскивать. Ну уж если не найдешь - можно попробовать вытащить батарейку. Но неизвестно, сколько ждать придется - зависит от микросхемы CMOS-часов и схемы мат. платы.
Ответ отправлен: 18.09.2002, 13:29
Отправитель: Bob Johnson
Вопрос № 1256 |
Доброго времени, суток господа Экперты.
Помогите прояснить такой вопросик:
Лог. операция xor проводится как (1операнд) xor (2операнд).
Допустим я хочу чтобы вводя что то с клавы всё это отображалось в шифрованом виде (по xor).
Я представляю себе это так: берём номер введёного символа в ASCII делаем xor и выводим. Поправте меня, если не прав, и есть ли ещё способы реализации этого?
А вопрос в том что какой здесь должен быть второй операнд?
В идеале хочу написать прогу которая бы xor'ила заданный файл (знаю что не надёжный метод шифровки, но надо) как это можно попроще сделать? Читать побайтно и xor'ить?
Буду безгранично благодарен, любым толковым ответам.
Вопрос отправлен: 17.09.2002, 16:35
Отправитель: Евгений
[Следующий вопрос >>] [Список вопросов]
Отвечает Kiss
Приветствую Вас, Евгений!
Посылаю Вам работающий код с xor.
Там, где находится операция mov bx,0fh, должна стоять Ваша цифра, это Ваш код, которым Вы кодируете.
Если нужны более пространные комментарии пишите лично мне.
Don_Kiss@rambler.ru
Приложение:
Ответ отправлен: 18.09.2002, 11:32
Отправитель: Kiss
Отвечает Sinner
Добрый день, Евгений!
1.в твоем случае:
xor <твой байт>,<ключ шифровки>
2.Да, побайтно. Можешь и пословно...
Но читать незачем.
XOR byte ptr[si],<ключ шифровки>
Ответ отправлен: 18.09.2002, 03:01
Отправитель: Sinner
Отвечает Beeblebrox
Добрый день, Евгений!
Вот прога, писанная мною в далеком 1995 году. Берет входной файл, шифрует его по другому (ключевому) файлу и создает выходной файл. Написано наспех, так что далеко не оптимально, зато уверен на 100%, что работает.
Отвечая на твой вопрос, каким должен быть второй операнд xor - Это должна быть так называемая маска xor, то есть известное только тебе число
Приложение:
Ответ отправлен: 17.09.2002, 16:51
Отправитель: Beeblebrox
Отвечает Артём Шегеда
Добрый день, Евгений!
Да, но лучше - поблочно
Приложение:
Ответ отправлен: 17.09.2002, 17:48
Отправитель: Артём Шегеда
Отвечает DiGiT[old]
Доброе время суток, Евгений!
С чем ты хочешь xor'ить то Ведь это как написал двухоперандовая операция. Можно конечно с 0xff, если больше не с чем или завести свой какой нить ключ отличный от нуля.Еще один способ это циклический сдвиг, тоже даст неплохой результат, а можешь их объединить и т.д.
Способ, который предложил ты, более предпочтителен. МОжно правда поставить свой обработчик прерывания и там делать такую подмену. Но зачем это в прикладной программе.
Ответ отправлен: 18.09.2002, 13:00
Отправитель: DiGiT[old]
Отвечает SonicX
Здравствуйте, Евгений!
При помощи xor логически объединяются оба операнда.
Результат будет нулем только в тех позициях бита, где оба операнда имеют одинаковые биты.
В другом случае 1.
Результат запоминается в левом операнде.
Пример:
xor ax,01001b ;снять в ax 0 и 3 биты.
Ответ отправлен: 18.09.2002, 08:41
Отправитель: SonicX
Отвечает ASMодей
Добрый день, Евгений!
В качестве второго операнда в команде XOR можно использовать
любое число. Главное чтобы оно было одинаковым и для шифрования
и для расшифровки.
PS. Читать файл побайтно - это очень долго, быстрее будет
читать его, скажем килобайтными блоками.
Ответ отправлен: 18.09.2002, 08:30
Отправитель: ASMодей
Отвечает Gibbel
Добрый день, Евгений!
Ну, образно говоря, ты прав - xor не требует никаких дополнительных операций...
А насчет "заксоривания" - бери любой второй операнд, который взбредет в голову. Только учитывай одно - 0FFh изменит исходное значение на противоположное, 00h - оставит его без изменений...
Ответ отправлен: 17.09.2002, 18:13
Отправитель: Gibbel
Отвечает masquer
Здравствуйте, Евгений!
Второй операнд - это маска.
Проще через MMX - 8 байт запихнуть можно, или XMM - 16 сразу :)
Ответ отправлен: 17.09.2002, 22:18
Отправитель: masquer
Отвечает Bob Johnson
Приветствую Вас, Евгений!
Да, все так. Вторым операндом будет какое-то число, с помощью которого ты хочешь закодировать файл. Это может быть константа, т.е. одинаковое число для всех байтов файла, а может и меняться. В последнем случае надежность защиты несколько возрастает. В последствии, с помощью этого же числа производится декодирование файла повторным ксориением.
А с файлом можно и так как ты написал. Но это будет медленно для больших файлов. Лучше выделить буфер (например, 64Кб), читать туда порцию файла, ксорить ее и записывать в другой файл.
Ответ отправлен: 18.09.2002, 13:30
Отправитель: Bob Johnson
Отвечает ARDoS
Приветствую Вас, Евгений!
XOR'ить надо с каким-либо другим операндом или с каким либо числом.
Например xor ax,bx, где ах=011001b bx=001100b.После xor'a aх=011101b.
Ответ отправлен: 19.09.2002, 13:32
Отправитель: ARDoS
Вопрос № 1257 |
Доброе время суток Артем.
Получил Ваш ответ, благодарю.
Но поясните подробней, пожалуйсто, что означает "посадить шины на GND" , не короткое ли замыкание?
С уважением, Alex.
Вопрос отправлен: 17.09.2002, 16:47
Отправитель: Alex
[Следующий вопрос >>] [Список вопросов]
Отвечает Артём Шегеда
Добрый день, Alex!
Именно короткое замыкание. Но питание материнки должно быть отключено - а то дорожки спалишь.
Ответ отправлен: 17.09.2002, 17:54
Отправитель: Артём Шегеда
Вопрос № 1258 |
Всем здрасти.
Вопрос конечно не совсем по теме рассылке, но тем не менее...
Имеется
1.Win2000
2.Dos - овская прога для которой есть архив базы данных, и которую время от времени необходимо запускать.
Собственно сама проблемма: как под нее руссифицировать клавиатуру. Все драйвера какие я знаю в Win2k не работают. Она ещё и принтер только локальный требывала, но благодаря архиву здешней рассылки сетевой я к ней всётаки прикрутил :)
Поэтому собственно и вопрос к вам :)
Заранее благодарен.
Вопрос отправлен: 17.09.2002, 17:07
Отправитель: dosm
[Следующий вопрос >>] [Список вопросов]
Отвечает Артём Шегеда
Добрый день, dosm!
Вообще-то Win2000 грузит autoexec.bat и config.sys для каждого DOS-приложения. Вот и пропиши в autoexec.bat какой-нибудь руссификатор клавиатуры (шрифты уже руссифицированы). Но я тут посмотрел: на одной машине с win2000 стоит руссификатор клавиатуры Ninja. Так он даже с DOS-окном управляется легко
Ответ отправлен: 17.09.2002, 18:26
Отправитель: Артём Шегеда
Отвечает masquer
Добрый день, dosm!
Может базу можно переделать под какую-нибудь более современную. Да и VMware можно попробовать, если совсем невмоготу.
Ответ отправлен: 17.09.2002, 22:16
Отправитель: masquer
Отвечает Bob Johnson
Доброе время суток, dosm!
А разве в Win2k нет русского? Вообще у нас на работе стоит такая программка - switchit!, которая переключает раскладки. Мне лично она не нравится, но вроде-как работает. И с DOS'ом работает, т.к. у нас много прог на (!) клипере...
Ответ отправлен: 18.09.2002, 13:30
Отправитель: Bob Johnson
Вопрос № 1259 |
Ув. эксперты.
Подскажите, пожалуйста, каким образом можно редактировать код в ida или softice.
Вопрос отправлен: 17.09.2002, 17:20
Отправитель: X
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Приветствую Вас, X!
сравнил!
ida - это дизасмер, SI - отладчик, есть разница?
В SI есть команда A с таким синтаксисом:
A [adress]
и более специальная команда E:
E[size] [address [data-list]]
Например: EB DS:12345 34 - залепить в байт по адресу DS:12345 число 34.
А в защищенном режиме в сегмент кода писать нельзя вообще то...
p.s. в IDA-е все и так ясно: меню edit и поехал.
Ответ отправлен: 17.09.2002, 18:32
Отправитель: Broken Sword
Отвечает Артём Шегеда
Добрый день, X!
Напомню, что изменив байт в дизассемблере, Вы исходную программу не измените. Для этого существуют другие утилиты.
В IDA заменить байт/слово загруженного модуля можно в меню "Edit/Patch Program/Change Byte" или "Edit/Patch Program/Change Word", а попытаться заменить инструкцию в пункте "Edit/Patch Program/Assemble"
Ответ отправлен: 17.09.2002, 21:11
Отправитель: Артём Шегеда
Отвечает masquer
Добрый день, X!
ida -> Edit->Patch Program
SICE -> смотри мануалы - есть, например, команда А
Ответ отправлен: 17.09.2002, 22:14
Отправитель: masquer
Отвечает ARDoS
Здравствуйте, X!
Сохраняй дизассемблированный файл, редактируй, потом компилируй и всего-то.. :-Е-х<
Ответ отправлен: 19.09.2002, 13:32
Отправитель: ARDoS
Вопрос № 1260 |
Приветствую Вас, Gibbel.
Непонятно вот что, где находится этот jumper?
Пожалуйста, напишите поподробней.
И еще, не ловко об этом спрашивать, Вы действительно
девушка?
С огромным уважением, Alex
Вопрос отправлен: 17.09.2002, 19:50
Отправитель: Alex (alex5775@email.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Добрый день, Alex!
Гм... С чего вы взяли, что я девушка???
А джампер находиться на материнской плате... Точного положения указать не могу - оно на каждой материнке свое...
Ответ отправлен: 18.09.2002, 12:23
Отправитель: Gibbel
Вопрос № 1261 |
Приветствую Вас, Артем.
Скачал свашего сайта Xveiw.
Класс, только не совсем понятно для чего служит файл со
странным расширением TECH60.H!
Обьясните пожалуйста, если не трудно.
С уважением, Alex
Вопрос отправлен: 17.09.2002, 20:45
Отправитель: Alex (alex5775@email.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Артём Шегеда
Здравствуйте, Alex!
XView - всего лишь программа для просмотра. Она не несёт в себе каких-либо знаний. А файл с расширением .H! хранит всё то, что вы видите при запуске (кроме заставки и горизонтального меню, конечно).
В общем, .H! - одна из первых удачных попыток создания архива гипертекстовых документов (аналог современного .CHM или .HLP)
Ответ отправлен: 17.09.2002, 21:22
Отправитель: Артём Шегеда
Вопрос № 1263 |
Ув. Эксперты,скажите плз Ascii код комбинации клавиш
Turbo-F11
Вопрос отправлен: 18.09.2002, 05:46
Отправитель: Андрей
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Здравствуйте, Андрей!
Спасибо за интересный вопрос: мне пришлось перезагрузить
компьютер, прежде чем я вспомнил, что Turbo+F11 блокирует
клавиатуру. Судя по всему такого ASCII кода нет, так как
клавиатура блокируется аппаратно и не выдает при этом
ни каких кодов.
Ответ отправлен: 18.09.2002, 08:31
Отправитель: ASMодей
Отвечает SonicX
Приветствую Вас, Андрей!
Извини но для этой комбинации клавиш нет ASCII кода, но есть сканкод(это по-любому), но какой?Этого в моей литературе нет.
Ответ отправлен: 18.09.2002, 08:41
Отправитель: SonicX
Отвечает baldr
Добрый день, Андрей!
Хочешь перехватить запирание клавиатуры? Огорчу тебя - клавиша Turbo не имеет скан-кода. Она используется самой клавиатурой.
А если ты хочешь запереть клавиатуру программно, то попробуй через контроллер клавиатуры. Посылкой в порт одного байта ты запрешь или отопрешь клаву.
Ответ отправлен: 18.09.2002, 10:48
Отправитель: baldr
Отвечает Bob Johnson
Доброе время суток, Андрей!
Хе-хе... Эта комбинация клавиш, насколько я знаю, блокирует клавиатуру TURBO+... Так вот, она реализуется аппаратно, внутри клавиатуры и никаких кодов не посылает...
Ответ отправлен: 19.09.2002, 00:00
Отправитель: Bob Johnson
Вопрос № 1264 |
Здравствуйте господа Эксперты!
Хочу поинтерисоваться, что означает когда в результате FindFirstFile находится файл с именем '.' или '..' ??
Вопрос отправлен: 18.09.2002, 07:01
Отправитель: Dada (dadavas@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Приветствую Вас, Dada!
Этими именами назвали каталоги. Одна точка - это текущий
каталог. Две точки - это родительский (предыдущий по иерархии)
каталог.
Ответ отправлен: 18.09.2002, 08:32
Отправитель: ASMодей
Отвечает masquer
Доброе время суток, Dada!
. - это корневой каталог
.. - родительский по отношению к текущему.
Пропускай их да и все.
Ответ отправлен: 18.09.2002, 07:48
Отправитель: masquer
Отвечает Kiss
Доброе время суток, Dada!
"." означает корневая деректория, а ".." - родительска.
Ответ отправлен: 18.09.2002, 11:03
Отправитель: Kiss
Отвечает Gibbel
Доброе время суток, Dada!
'.' - этот каталог
'..' - предыдущий каталог
Ответ отправлен: 18.09.2002, 12:25
Отправитель: Gibbel
Отвечает DiGiT[old]
Доброе время суток, Dada!
'.' - это сама директория, а '..' - родительская директория.
то есть запись ./filename означает filename в текущей директории, а ../filename означает filename в родительской директории
Ответ отправлен: 18.09.2002, 12:49
Отправитель: DiGiT[old]
Отвечает Sensey
Здравствуйте, Dada!
'.' - текущий каталог, то есть '.\file.txt' и 'file.txt' - одно и то же
'..'- родительский
Ответ отправлен: 19.09.2002, 12:37
Отправитель: Sensey
Отвечает SonicX
Приветствую Вас, Dada!
Это значит что в каталоге нет больше файлов подходящих по маске, и ДОС показывает путь к верхнему каталогу.
Ответ отправлен: 18.09.2002, 08:41
Отправитель: SonicX
Отвечает Biv
Приветствую Вас, Dada!
'.' значит текущий каталог. ".." - предыдущий каталог
Ответ отправлен: 18.09.2002, 17:33
Отправитель: Biv
Отвечает Pablo
пџяЂпёпІпµя‚яЃя‚пІяѓяЋ п’п°яЃ, Dada!
'.' - яЌя‚пѕ пѕп±пѕп·пЅп°я‡пµпЅпёпµ я‚пµпєяѓя‰пµп№ пґпёяЂпµпєя‚пѕяЂпёпё, я‚.пµ. пµяЃп»пё я‚я‹ пїпѕпїя‹я‚п°пµя€яЊяЃяЏ яЃпјпµпЅпёя‚яЊ я‚яѓ пґпёяЂпµпєя‚пѕяЂпёяЋ пІ пєпѕя‚пѕяЂпѕп№ я‚я‹ я‰п°яЃ пЅп°я…пѕпґпёя€яЊяЃяЏ пЅп° '.', я‚пѕ пІ я‚пѕп№п¶пµ пґпёяЂпµпєя‚пѕяЂпёпё пё пѕяЃя‚п°пЅпµя€яЊяЃяЏ.
'..' - яЌя‚пѕ пѕп±пѕп·пЅп°я‡пµпЅпёпµ пґпёяЂпµпєя‚пѕяЂпёпё пѕпґпЅпёпј яѓяЂпѕпІпЅпµпј пІя‹я€пµ, пµяЃп»пё пїпѕпїя‹я‚п°пµя€яЊяЃяЏ пёп·пјпµпЅпёя‚яЊ пґпёяЂпµпєя‚пѕяЂпёяЋ пЅп° яЌя‚яѓ, я‚пѕ пїпѕпїп°пґпµя€яЊ пІ я‚яѓ пґпёяЂпµпєя‚пѕяЂпёяЋ пѕя‚пєяѓпґп° пїпѕпїп°п» пІ я‚пµпєяѓя‰яѓяЋ.
п’ пєпѕяЂпЅпµпІпѕпј пєп°я‚п°п»пѕпЁпµ DOS пё Windows пѕп±пµ яЌя‚пё пґпёяЂпµпєя‚пѕяЂпёпё пѕя‚яЃяѓя‚яЃя‚пІяѓяЋя‚.
Ответ отправлен: 18.09.2002, 20:03
Отправитель: Pablo
Отвечает Dark_Lord
Здравствуйте, Dada!
. означает current directory = текущая директория
.. parent directory = директория родитель;)
Ответ отправлен: 18.09.2002, 21:48
Отправитель: Dark_Lord
Отвечает Bob Johnson
Приветствую Вас, Dada!
Файл с именем "." - это ссылка на текущий каталог...,
а ".." - ссылка на каталог уровня выше.
Ответ отправлен: 19.09.2002, 00:00
Отправитель: Bob Johnson
Вопрос № 1265 |
Привет ASMодей!
А как тебе удалось дважды ответить на вопрос 1225?!!
Вопрос отправлен: 18.09.2002, 07:26
Отправитель: Александр
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Добрый день, Александр!
Да я и сам не знаю. В тот день у меня были проблемы со
связью, может из-за этого.
Ответ отправлен: 18.09.2002, 17:22
Отправитель: ASMодей
Вопрос № 1266 |
Мужики подскажите где достать дизассемблер и эмулятор ВМ580
микропроцессора?
Вопрос отправлен: 18.09.2002, 09:42
Отправитель: bogdan
[Следующий вопрос >>] [Список вопросов]
Отвечает GL
Доброе время суток, bogdan!
Эмулятор для 580 (или точнее для 8080) можно найти на фтп журнала "Радио" (ftp://ftp.paguo.ru/pub/) называется вроде Emu_8080.arj. Насчёт дизассемблера - не знаю, вроде бы он входит в состав этого эмулятора.
Ответ отправлен: 18.09.2002, 12:49
Отправитель: GL
Отвечает masquer
Добрый день, bogdan!
IDA Pro смотри, сигнатуры могут быть у производителя
Ответ отправлен: 18.09.2002, 14:51
Отправитель: masquer
Отвечает Артём Шегеда
Приветствую Вас, bogdan!
Эмулятор я написал за неделю, то есть делается это легко, но это было лет пять назад и проект сейчас утерян :(
Насчёт дизассемблера - проще. Ida с 580ВМ80 справляется лЁгко.
Ответ отправлен: 18.09.2002, 16:12
Отправитель: Артём Шегеда
Отвечает Kiss
Приветствую Вас, bogdan!
Я знаю, где есть дизассемблер на Download.ru. Прислать не могу для меня это дорого.
Ответ отправлен: 18.09.2002, 19:03
Отправитель: Kiss
Отвечает Pablo
п”пѕп±яЂпѕпµ пІяЂпµпјяЏ яЃяѓя‚пѕпє, bogdan!
ппјяѓп»яЏя‚пѕяЂ пё пґпёп·п°яЃяЃпµпјп±п»пµяЂ 8080, п° я‚п°пєп¶пµ яЌпјяѓп»яЏя‚пѕяЂ z80, яѓ пјпµпЅяЏ пµяЃя‚яЊ пЅп° пІпёпЅя‚пµ, я‚п°пє я‡я‚пѕ пјпѕпЁяѓ пІя‹яЃп»п°я‚яЊ.
Ответ отправлен: 18.09.2002, 20:28
Отправитель: Pablo
Вопрос № 1267 |
Дополнение к моему же вопросу № 1254 про добавление самодельной функции в WinNT
Перекомпилировать нельзя потому, что у меня нету исходников ядра и программы. Есть только исходники нужной мне функции.
Попробую объяснить поподробнее. У меня есть драйвер устройства под Win2K. Этот драйвер ну просто позарез нужно запустить в WinNT4. Но так как WinNT не знает PnP и управления питанием, драйвер не может запуститься - пишет "Не найдена функция такая-то". Знаю, что в меня сейчас полетят насмешки, типа "ну ты, бл@, корифей, захотел NT обучить Plug'n'Play - брось лучше эту затею и поставь Win2K". Тут фишка в том, что если я сделаю это - то у меня получится поддержка APM и USB для NT4. А посему вот мой вопрос: нельзя ли сделать так, чтобы вызываемая драйвером функция, ну скажем, IoGetDeviceProperty из ntoskrnl.exe, вызывалась не из ntoskrnl.exe, а, например, из ntwdm.sys, но драйвер не знал бы, где эта функция в действительности находится. Я нашёл возможность добавлять свои собственные обработчики прерываний в NT, а теперь хочу сделать то же самое и для API-функций.
Надеюсь, теперь понятнее объяснил?
Вопрос отправлен: 18.09.2002, 10:00
Отправитель: Джамаль (s_man80@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, Джамаль!
Насколько я понял (и насколько я этим интересовался) то ничего у тебя не получится, все это наверняка ntoskrnl не заканчивается, дальше hal идет, а дельше еще что-нибудь. Попробуй литературу соотв. почитать Walter Owney, например.
Ответ отправлен: 18.09.2002, 14:53
Отправитель: masquer
Отвечает Kiss
Доброе время суток, Джамаль!
Боюсь пока ты не сможешь того кто вызывает драйвер а именно твою функцию у тебя ничего не получится.
Ответ отправлен: 18.09.2002, 15:15
Отправитель: Kiss
Отвечает Pablo
пџяЂпёпІпµя‚яЃя‚пІяѓяЋ я‚пµп±яЏ, п”п¶п°пјп°п»яЊ!
пўпµп±пµ я‚пѕпЁпґп° п»яѓя‡я€пµ пёяЃпїяЂп°пІпёя‚яЊ пґяЂп°п№пІпµяЂ пІя‹п·я‹пІп°яЋя‰пёп№ пІпЅпµя€пЅпёпµ я„яѓпЅпєя†пёпё пёп· DLL пё пЅп°пїпёяЃп°я‚яЊ пІ пЅпµпј пЅпѕпІяѓяЋ DLL, пєпѕя‚пѕяЂяѓяЋ я‚я‹ яЃпѕп±пёяЂп°пµя€яЊяЃяЏ пёяЃпїпѕп»яЊп·пѕпІп°пёя‚яЊ п·п°пјпµяЃя‚пѕ пѕя‚яЃяѓя‚яЃя‚пІяѓяЋя‰пµп№.
Ответ отправлен: 18.09.2002, 19:47
Отправитель: Pablo
Отвечает Bob Johnson
Доброе время суток, Джамаль!
Если твой драйвер - обычная программа, которая работает на 3-м кольце защиты, то, мне кажется, остается написать свою библиотеку с именем ntoskrnl.exe, в которой продублировать все функции исходной библиотеки плюс добавить сколько угодно своих новых. Дублированные функции должны вызывать одноименные из исходной библиотеки. После этого поместить созданную библиотеку в каталог, где находится драйвер, обеспечив, таким образом, ее первоначальную загрузку. Программа будет думать, что вызывает функцию из настоящей библиотеки, в то время как будет реально вызывать их из твоей.
Также можно переименовать исходную библиотеку если они должны находится в одном каталоге с новой (т.к. твоя, которой присвоено имя исходной дублирует все ее функции, то проблем с приложениями не будет).
Ответ отправлен: 19.09.2002, 00:00
Отправитель: Bob Johnson
Вопрос № 1268 |
Доброе время суток,уважаемые экспериы!!
У меня возникла проблемка с записью в фаил!
В td.exe вобчем то все работает нормально,
прога дописывает фразу из 10 символов и прога заканчивается,
но если запустить мою прогу без дебугера то в этот фаил записывается
16 mb всякой хрени!!!!
Хотелось бы узнать в чем тут дело!
и еще просьба обьсните работу функции 42h, int21h
каким макаром я оказываюсь в конце фаила и записываю соответсвенно в конец файла,
если и ax и dx уже сброшены и в них всякая хрень(а должно быть позиция указателя файла)???
прога в приложении!!
Приложение:
Вопрос отправлен: 18.09.2002, 11:51
Отправитель: Andrey
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Здравствуйте, Andrey!
Когда ты вызываешь ф-ию 42h, ты должен указать смещение в cx:dx. А ты инициализируешь только dx! А в cx находится число, кажется, 0FFFEh, если запускать не из-под дебаггера.
В дебаггере cx будет равен нулю и ошибка твоя не возникнет.
Ответ отправлен: 18.09.2002, 12:05
Отправитель: baldr
Отвечает Dark_Lord
Приветствую Вас, Andrey!
Ошибка, скорее всего на 12 строке, вернее в вызове этого прерывания, попробуй до его вызова обнулить cx (xor cx,cx)!
Ответ отправлен: 18.09.2002, 21:51
Отправитель: Dark_Lord
Отвечает Broken Sword
А все дело в том, что TD обнуляет при старте все РОН-ы, а в реале CX при старте com-проги = 0FFh. Поэтому и 16 Мб получается (ну cx=00FFh, а dx ты обнулил, т.е. всего FF0000h). Вот так.
А насчет второго вопроса я чето недопонял... Вообще вот тебе полезная табличка, вырежи ее и повесь на стенку:
Register settings while starting com-program:
EAX = xxxx****
AL = 00 if first FCB has valid drive letter, FF if not
AH = 00 if second FCB has valid drive letter, FF if not
EBX = xxxx****
BX = AX
ECX = xxxx00FF
EDX = xxxxxxxx
DX = CS = DS = ES = SS = xxxx, 0080 <= DX <=9000.
ESI = xxxx0100
EDI = xxxxFFFE
EBP = xxxx09xx
ESP = xxxxFFFE
EIP = xxxx0100
EFLAGS (binary) = xxxxxxxx xxxxxxxx xxxx0x1x xx0x0x1x
i.e. DF = 0
IF = 1
other flags = x
WORD [FFFE] = 0000
;------------------------------------------------------------------------------------------------------
Ответ отправлен: 18.09.2002, 22:16
Отправитель: Broken Sword
Вопрос № 1269 |
Дарова всем ассемблирщекам!
Я вот постиг языки СС++ (Visual Buldier) PascalDelphi JavaScript Perl HTML...
А вот про АСМ только в страшных сказках на ночь слышал :-))...
Вот немного с ним познакимился и понял что на нём пишут мазохисты!.. Значит вы тут клуб мазохистов? Так что ли?
Чё вы в нем (АСМе) нашли? Г. полное...
Ну ладно, чё то я разъехался... Короче, скажите мне причины по которым я должен изучить АСМ, тем самым вы защитите АСМ -отобьёте неприятеля (то бишь меня)...
Если есть чё сказать...
Вопрос отправлен: 18.09.2002, 13:41
Отправитель: Soldier (soldier@xakep.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Приветствую Вас, Soldier!
1.Возьмите напишите простенькую программку (Hello World) на VisualC++ и скомпилируйте. Потом возьмите из каких-нибудь экзамплов или тьюториалов программку "Hello world" на асме и скомпилируйте. А теперь сравните размеры экзешников. Впечатляет?
2. Попробуйте воспользоваться такими замечательными вещами как MMX, SSE, SSE2, 3DNOW! без знания асма. Сразу предупреждаю: у вас ничего не получится, т.к. не существует многоцелевых компиляторов языков высокого уровня, компилирующих с использованием этих технологий. Правда, например, TMTPascal позволяет использовать эти инструкции в ассемблерных вставках, но это уже ассемблер!
3. Напишите на VisualC++ какую-нибудь навороченную графическую программу, а потом найдите где-нить программку, которая делает то же самое, но написана на асме с использованием MMX,SSE,SSE2... Вторая программа при прочих равных условиях будет работать на порядок быстрее! То же самое в задачах шифрования данных и многих других.
4. В задачах системного программирования либо невозможно, либо нецелесообразно использовать языки высокого уровня. Вот есть у вас электронные весы, и хотите вы их подключить к компу через ком-порт, чтобы анализировать показания... Напишите-ка соответствующий драйвер (VxD) на VisualСи...
С уважением, Portnov.
Ответ отправлен: 19.09.2002, 11:07
Отправитель: Portnov
Отвечает Pablo
пџяЂпёпІпµя‚яЃя‚пІяѓяЋ я‚пµп±яЏ, Soldier!
п’пѕпѕп±я‰пµпј пµяЃп»пё я‚пµп±пµ пЅяѓп¶пЅпѕ п»пёп±пѕ пѕя‡пµпЅяЊ п±я‹яЃя‚яЂпѕпµ пїяЂпёп»пѕп¶пµпЅпёпµ п»пёп±пѕ пѕя‡пµпЅяЊ пјп°п»пµпЅяЊпєпѕпµ пїпѕ яЂп°п·пјпµяЂяѓ, я‚пѕ пёяЃпїпѕп»яЊп·яѓп№ п°яЃяЃпµп±п»пµяЂ. пџпѕпґ пІпёпЅпґя‹ пїяЂпѕпЁяЂп°пјпјпёяЂпѕпІп°я‚яЊ пЅп° пЅпµпј (пёяЃпїпѕп»яЊп·яѓяЏ я‚пѕп»яЊпєпѕ п°яЃяЃпµпјп±п»пµяЂ) пјпѕп¶пЅпѕ яЃ пїпѕпјпѕя‰яЊяЋ WinAPIя€пЅя‹я… я„яѓпЅпєя†пёп№, пЅяѓ пєпѕпЅпµя‡пЅпѕ пјпѕп¶пЅпѕ пёяЃпїпѕп»яЊпѕпІп°я‚яЊ п°яЃяЃпµпјп±п»пµяЂпЅя‹пµ пІяЃя‚п°пІпєпё, пєпѕпЁпґп° пїяЂпѕпЁяЂп°пјпјпёяЂяѓпµя€яЊ пЅп° яЏп·я‹пєп°я… пІя‹яЃпѕпєпѕпЁпѕ яѓяЂпѕпІпЅяЏ, пІ яЌя‚пѕпј яЃп»яѓя‡п°пµ пјпѕп¶пЅпѕ пёяЃпїпѕп»яЊп·пѕпІп°я‚яЊ пё я„яѓпЅпєя†пёпё пё пєп»п°яЃяЃя‹ пїяЂпµпґпѕяЃя‚п°пІп»яЏпµпјя‹пµ яЌя‚пёпјпё яЏп·я‹пєп°пјпё.
пўя‹ пІпѕя‚ пјпЅпµ п»яѓя‡я€пµ пЅп° пІпѕпїяЂпѕяЃ пѕя‚пІпµя‚яЊ: я‡я‚пѕ я‚я‹ пїпѕпЅпёпјп°пµя€яЊ пїпѕпґ я‚пµяЂпјпёпЅпѕпј Visual Builder?!
Ответ отправлен: 18.09.2002, 19:41
Отправитель: Pablo
Отвечает Sensey
Добрый день, Soldier!
Ну зачем же так грубо...
Напиши например драйвер устройства(обработка клавиатуры, дисплейчика 4х20 и COM-порта) при таких ограничениях-
ПЗУ 1Кб, ОЗУ 128 байт
Выключи Нумлок прогой из 7 байт...
Напиши оОЧЕНЬ БЫСТРУЮ прогу...
Напиши простенькую ОС реального времени с возможностью диспетчеризации задач(диспетчер 10мс, 100 мс и фоновые задачи), в защищенном режиме, но без динамического выделения памяти, чтобы прога занимала 5-10 килобайт(и это много!!!)
Ну и так далее...
Ответ отправлен: 19.09.2002, 12:46
Отправитель: Sensey
Отвечает Kiss
Доброе время суток, Soldier!
Ты не прав Асм очень хороший язык как и CC++ я сам програмлю на обоих. А про клуб мазохистов ты зря, это не так хотя впрочем иногда бывает и в СС++ такой гиморой.
Ответ отправлен: 19.09.2002, 08:06
Отправитель: Kiss
Отвечает Sinner
Здравствуйте, Soldier!
Высказывание типа "Я этого не понимаю, поэтому это отстой."
1.Это САМЫЙ гибкий язык (если не считать программирование на машинных кодах)
2.Копаться в чужих программах ты на C++/Pascal/etc собрался?
3.Чтобы достичь наибольшей эффективности, в программах на С++/Pascal/etc желательно часть кода писать на АСМе.
и т.д. и т.п.
А недоумков и так хватает...
Ответ отправлен: 20.09.2002, 21:01
Отправитель: Sinner
Отвечает Beeblebrox
Приветствую Вас, Soldier!
Уверен, что асм тебе в жизни не пригодится, так что не парь себе мозги. Дело в том, что асм требует некоторого напряжения мозговых извилин, да и денег за его знание обычно не платят.
Ответ отправлен: 18.09.2002, 14:03
Отправитель: Beeblebrox
Отвечает igorash
Добрый день, Soldier!
Доказывать ниче не буду по этому поводу много уже было сказано, в общем не хочешь учить - не надо, учи визуал бейсик... а насчет говна - не согласен, иначе не платили бы программерам на асме в сша в 2-3 раза больше чем сишникам, а все дело в низком уровне!!
Ответ отправлен: 18.09.2002, 14:03
Отправитель: igorash
Отвечает baldr
Здравствуйте, Soldier!
Нет таких причин. Не нужен тебе асм. Раз уж ты такой "крутой" xakep, то зачем он тебе? Ты ведь напишешь прошивку для своего биоса на Java, новую операционку на Perl, а проги ломать ты будешь прогой, которую скачаешь с чужого сайта.
Так что, Вася, пиши на своем VisualBuilderJavaPerl'е и не занимайся мазохизмом.
Ответ отправлен: 18.09.2002, 14:12
Отправитель: baldr
Отвечает Ayl
Здравствуйте, Soldier!
Посмотрел я тут на код, который мне Pascal сгенерил - г.полное! Его же раз в ..дцать соптимизировать можно! Но только на асме!
А защищать ничего не буду. Всяк пишет на том, что ему нравится. И изучать асм тебя тоже никто не заставляет.
Нравится тебе, когда за тебя умные дядьки все делают - так ради бога! Только вот в группу таких умных дяде тебе, боюсь, никогда не попасть.
Ответ отправлен: 18.09.2002, 14:28
Отправитель: Ayl
Отвечает masquer
Доброе время суток, Soldier!
Уау, хакеров у нас еще не было! Так держать, парень, учи языки хтмл и т.п.
Ты только страшных сказок поменьше на ночь слушай, если у тебя такая реакция на это все... как ты там пишешь, а "Г. полное".
Ты врачу покажись лучше, а то с этой формой энуреза тяжело тебе будет асм изучать - будешь больше запахом неприятеля отбивать.
Просто умного тебе что сказать - у тебя резкое обострение начнется... :-Е
Ответ отправлен: 18.09.2002, 14:47
Отправитель: masquer
Отвечает --- Нет данных ---
Здравствуйте, Soldier!
Твои слова? - "Я вот постиг языки СС++ (Visual Buldier) PascalDelphi JavaScript Perl HTML..." И ты спрашиваеш зачем ASM? Или первое неправда, или второе прикол хитрый..
Если первое правда, то - продолжай постижение. Ведь совершенству нет предела! isnt it? И в один прекрасный день у тебя перестанут возникать такие (так хочется сказать - глупые, но не скажу) вопросы.
//Не обязательно писать проги целиком на ASM. Ты можешь делать вставки на нём в своих программках. Такие проги будут работать гораздо круче. Следовательно дороже стоить... etc.
Ответ отправлен: 18.09.2002, 15:44
Отправитель: --- Нет данных ---
Отвечает Broken Sword
Добрый день, Soldier!
А зачем тебе здесь кто-то должен что-то доказывать ? Приводить причины ? Нахрена это то нужно?
Гхм... неприятеля :)! Лучше читай хакер дальше...
Ответ отправлен: 18.09.2002, 16:01
Отправитель: Broken Sword
Отвечает Артём Шегеда
Приветствую Вас, Soldier!
Нажал я кнопочку "Подробней >>" (про неё знают только эксперты), почитал всё поподробней и решил сказануть что-нибудь.
Помнишь, Soldier, анекдот про сантехника и его стажёра:
- ...Вот так стажёр: учись - а то всё жизнь ключи подавать будешь!
Так вот, этот анекдот про нас. Милости просим...
Ответ отправлен: 18.09.2002, 16:20
Отправитель: Артём Шегеда
Отвечает LIFO
Доброе время суток, Soldier!
Лучше ж%пу на своем паскале рвать... Разорался тут...
Никто тебя не заставляет его учить.
Должен, видите ли.
Ответ отправлен: 18.09.2002, 16:46
Отправитель: LIFO
Отвечает SonicX
Приветствую Вас, Soldier!
Короче тебя никто не заставляет изучать АСМ!
АСМ требует терпения, твердых знаний.
На АСМе можно реализовать все функции архитектуры компьютера.
Программы написанные на АСМе работают в десятки раз быстрее и занимают
в сотни раз меньше памяти.
На АСМе пишутся COM и EXE программы, драйверы, динамические библиотеки ...
И все это под ДОС,Виндовс,Юникс,Линукс ...
И чем круче твои CC++ и PascalDelphi?
И кто теперь занимается мазахизмом?
Ответ отправлен: 18.09.2002, 17:21
Отправитель: SonicX
Отвечает Biv
Добрый день, Soldier!
Плохо познакомился раз так думаешь
Ответ отправлен: 18.09.2002, 17:39
Отправитель: Biv
Отвечает Shal
Приветствую Вас, Soldier!
На АСМ можно написать практически ВСЕ!
Ответ отправлен: 18.09.2002, 18:02
Отправитель: Shal
Отвечает Dark_Lord
Приветствую Вас, Soldier!
Что сказать есть!
Во первых, ты понимаешь, как ты выводишь строку на экран в дос, да даже это больно легко...
Скажем так, ты знаешь как работает чипсет, какие порты что творят? Вот и подумай на чём ты программируешь! На куче затычек, которые Абсолютно не приспособленны работать хорошо. Например, написаная мной программа NotaPad, полная копия Блокнота, Абсолютно! А вот занимает блокнот 71К, а моя программа 6К. Как видишь разница 92%. При этом ещё и выполняется гораздо быстрей! Так вот подумай, ну напишешь ты на дельфи хорошую прогу, и у всех, у кого проц меньше 2ГГц, а винт меньше 10 Гигов прога не пойдёт! А я посижу на недельку побольше, но напишу такую-же, только занимать на винте она будет в 9 раз меньше и пойдёт даже на 386 - ом.
Кстати, тебе вопрос, как память можно использовать? Ну ты подумай, мы то знаем!
Но ты же наверно c001 ][ацкер и тебе до фени...
Ответ отправлен: 18.09.2002, 22:04
Отправитель: Dark_Lord
Отвечает Bob Johnson
Приветствую Вас, Soldier!
На счет мозахизма - это разговор отдельный, может и спорный, но вот на счет г. полного - это ты абсолютно не прав. Спросишь, почему? Потому, что из этого г*вна сделано в конце концов все - и твой Delphi. Потому что процессор ничего кроме асм не понимает и все в конечном счете компилируется и выполняется на нем.
Причины?
1. Если ты захочешь сломать/запатчить/изменить какую-либо уже готовую программу, то увидишь в ней не вижуал барсик, а именно АСМ. И не хрена в ней не поймешь, если его не знаешь...
2. Знания АСМ позволяет тебе полностью понимать возможности твоего процессора, а это, в свою очередь, облегчает понимание принципов работы с данными и в других языках. А то некоторые дельфины считают, что string относится к типам данных, которые напрямую поддерживаются процессором. А уж про указатели в С++ объяснить человеку, не представляющему, что такое ячейки памяти... ну ты понимаешь...
3. Давай сейчас заставь Delphi соптимизировать твою прогу для работы с SSE. Ну как? Скорее всего никак... А SSE при разумном подходе позволяет увеличить скорость выполнения некоторых программ в несколько (!!!) раз.
4. Драйверы устройств лучше писать на АСМ.
5. Причин по которым ты должен изучить АСМ нет. Ты мне, да и скорее всего, всем экспертам ничего не должен, а коммерческое применение АСМ редко, т.к. он полностью процессорозависем, требует специалиста высокой квалификации, что очень часто неприемлемо. Хотя программирование на АСМ под x86 + FPU после Z-80 это практически ЯВУ...
P.S. На ночь лучше другие книги читай...
Ответ отправлен: 19.09.2002, 00:00
Отправитель: Bob Johnson
Отвечает ARDoS
Приветствую Вас, Soldier!
А кто тебе сказал, что ты должен изучать АСМ? Это как говорится дело добровольное: или учи, или к стенке становись:-)... На самом деле если не хочешь, не учи, только не надо оскорблений в адрес "великого и ужасного".
Ответ отправлен: 19.09.2002, 13:32
Отправитель: ARDoS
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (42) C / C++ (30) Perl (8) Delphi (15) Pascal (24) Basic / VBA (12) Java / JavaScript (11) PHP (8) MySQL / MSSQL (10) |
Пользователю Windows 95/98/Me (39) Windows NT/2000/XP (30) "Железо" (39) Поиск информации (14) |
Администратору Windows NT/2000/XP (17) Linux / Unix (18) |
Юристу Гражданское право (10) Семейное право (5) Трудовое право (7) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||