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

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.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
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
Отписаться
Убрать рекламу

В избранное