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

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


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

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

Выпуск № 479
от 27.01.2003, 18:30

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


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

Gibbel
Статус: Профессиональный
Общий рейтинг: 108.18
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.11
URL: Программирование
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 140.25
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 146.29
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 117.82
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.04
[Подробней >>]
 
Igoryk
Статус: Опытный
Общий рейтинг: 139.29
URL: IgorykSoft
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 114.03
URL: Мой сайтик...
[Подробней >>]
Den
Статус: Начальный
Общий рейтинг: 101.3
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.06
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 110.37
URL: Beeblebrox / TMA HomePage
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 108.43
[Подробней >>]
 
Илья
Статус: Начальный
Общий рейтинг: 107.07
[Подробней >>]
keleb-glin
Статус: Опытный
Общий рейтинг: 112.73
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.16
URL: мощный файловый архив
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 126.54
URL: моя рассылка по Protected Mode
[Подробней >>]
AlX1024
Статус: Начальный
Общий рейтинг: 108.49
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 107.49
[Подробней >>]
 
Топор
Статус: Начальный
Общий рейтинг: 114.28
[Подробней >>]


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

Вопрос № 2469. Здравствуйте долго и без хлопот глубоко уважаемые эксперты! Я наконец-то понял, где применить Asm! Д... (ответов: 5)
Вопрос № 2470. Доброго времени суток ! Ассемблер (реальный режим) только начал изучать, отсюда 3 вопроса: 1. Положи... (ответов: 9)
Вопрос № 2471. Добрый день всем!!! Разъясниете для чего в этом коде сделали именно так... db 0E9h,0,0 start:... (ответов: 2)
Вопрос № 2473. Здравствуйте уважаемые эксперты. Помогите заблудившемуся путнику, запутавшемуся в сетях сомнений... (ответов: 11)
Вопрос № 2474. Привет, эксперты! Не подскажите ли вы мне, как в СофтАйс пошагово выполнять? В смысле, не StepInto, ... (ответов: 1)
Вопрос № 2475. Пришлите, пожалуйста, у кого есть, архив рассылки Калашникова(первые 31 урок про кодинг для DOS). Пр... (ответов: 2)
Вопрос № 2476. Я новичок, но уже немного понимаю, просто напросто нехватает настовления знающих людей в этой област... (ответов: 2)
Вопрос № 2477. ДА, да , я знаю что мой 1 вопрос показался смешным, но вы меня неправилно понили или действительно о... (ответов: 3)
Вопрос № 2478. Здравствуйте уважаемые эксперты. Я исследовал одну программу для Win32 (WinSniffer), но почему-то ди... (ответов: 2)
Вопрос № 2479. Здравствуйте эксперты !!! Я практически ничего не знаю на ассемблере, но мне всё же интересно узнать... (ответов: 8)
Вопрос № 2480. Приветствую Вас, ув. Эксперты! Несколько дней тому назад я задавал вопрос касательно исходников Wind... (ответов: 3)

Вопросов: 11, ответов: 48


 Вопрос № 2469

Здравствуйте долго и без хлопот глубоко уважаемые эксперты!
Я наконец-то понял, где применить Asm! Дошло!
Написать новою операционку!
Я тут прикинул : Ядро работает в кольце 0, Драйвера и сервисы в кольце 1.
Пользовательские приложения в кольце 2. Отладчики и с ними крякеры в кольце 3.
Ядро обладает зачатками искусственного интеллекта, наблюдает за работой
драйверов, сервисов, программ и по мере необходимости оптимизирует их
( процессор определит, памяти тоже знает сколько и т. д.).
Следит за работой пользователя и через некоторое время само
за пользователя начинает нажимать нужные кнопки. Вот только
реализовать Ява машину, а на ней графический интерфейс
или следуя духу рассылки все реализовать на Asm?
Чтобы сильно не ругались, ставлю магический знак ::)))) ( потому что в очках).
Если я все это реализую, попаду ли я тогда в средний класс программистов ?



Вопрос отправлен: 22.01.2003, 18:20
Отправитель: konst

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

Отвечает Gibbel

Добрый день, konst!
Ну, если ты сможешь хотя бы Java-машину самостоятельно на асме написать, ты уже можешь себя относить к программерской элите... ;-)
А вообще, почему-то мне винда в спомнилась при словах:
>>Ядро обладает зачатками искусственного интеллекта,
>>наблюдает за работой драйверов, сервисов, программ
>>и по мере необходимости оптимизирует их ( процессор
>>определит, памяти тоже знает сколько и т. д.).
>>Следит за работой пользователя и через некоторое
>>время само за пользователя начинает нажимать нужные
>>кнопки
;-)))

Ответ отправлен: 22.01.2003, 18:50
Отправитель: Gibbel


Отвечает Bob Johnson

Приветствую Вас, konst!
"LSD не сводит тебя с ума, оно позволяет лишь взглянуть на себя по-другому."
При употреблении LSD следует находиться подальше от потенциально опасных предметов, таких как открытые крыши домов или автострады, потому что LSD нарушает пространственную ориентацию. С другой стороны, LSD делает весь мир вокруг добрее, тебе кажется, что все люди - друзья.
------------------------------------------
Ты не первый - у нас все пишут оси. Кто-то на Delphi под ДОС, кто-то на форте, который оптимизирует ассемблер и удаляет взаимопоглащающиеся команды, но есть и те, кто делают это на асме. Наверное, самый перспективный вариант - это сделать virtual java machine in one-chip dual in-line package и впаять ее себе в гипоталамус, чтобы получать истинное удовольствие от общения с операционной системой.
Да, если ты это реализуешь, то попадешь ты в палату № 6.
(Но мы обязательно будем ходить к тебе в гости!)


Ответ отправлен: 23.01.2003, 00:07
Отправитель: Bob Johnson


Отвечает Maverick

Добрый день, konst!
Если ты все ЭТО реализуешь, и все ЭТО заработает, то пора тебе в последние странствие к всевышнему... :)
Кстати я слышал, что Microsoft собирается открыть исходники 98-го, или лажа все это...?


Ответ отправлен: 23.01.2003, 05:19
Отправитель: Maverick


Отвечает masquer

Добрый день, konst!
Угу, попадешь. Хотя сейчас всех лечат.
"И тебя вылечат" (с)
А по теме - поищи другое применение ассемблеру, тем достаточно.

Ответ отправлен: 23.01.2003, 13:19
Отправитель: masquer


Отвечает ASMодей

Добрый день, konst!
Если ты все это реализуешь, то попадешь не в средний класс
программистов, а прямиком к БГ (не Гребенщикову) ;)


Ответ отправлен: 23.01.2003, 16:55
Отправитель: ASMодей


 Вопрос № 2470

Доброго времени суток ! Ассемблер (реальный режим) только начал изучать, отсюда 3 вопроса:
1. Положительным значением для отрицательного двоичного числа 10000000 является 10000000 ?!?! Ведь так не может быть, я где-то ошибся ?
2. Пример регистра(ов), используемых для индикации нулевого результата ?
3. Кроме CX, есть ли ещё регистры для подсчёта числа циклов ?
Спасибо.



Вопрос отправлен: 22.01.2003, 20:25
Отправитель: danich

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

Отвечает vitya

Здравствуйте, danich!
1. на самом деле число -128 не имеет положительного эквивалента: [-128, 127] вот диапазон одного байта. Ноль считается положтельным числом.
2. если результат равен нулю, то ставится флаг в регистре флагов. А руководить кодом, можно с помощью команд jz/jnz
(jump if zero/jump if not zero)
3. насколько я знаю - нет.

Ответ отправлен: 23.01.2003, 08:53
Отправитель: vitya


Отвечает Igoryk

Добрый день, danich!
1. Отрицательное число - инверсия положительного, т.е.
1 - 00000001, -1 - 11111110.
2. Регистров таких не бывает, но есть флаг ZF.
3. Можно построить цикл слюбым регистром, только увеличивая его, а затем проверяя не вышел ли счетчик за пределы.

Ответ отправлен: 24.01.2003, 18:24
Отправитель: Igoryk


Отвечает Portnov

Добрый день, danich!
1. Ну, положительное значение отрицательного числа - это чушь собачья... Я так понял, вы имели ввиду дополнительный код. Да, дополнительный код числа 10000000b - это 10000000b. Почему? Так задумано :).
2. Обычно для этого используют бит ZF регистра Flags/EFlags. Чкм он хорош, при нулевом результате он устанавливается сам, при ненулевом - сам сбрасывается, так процессор устроен. Примерчик в приложении.
3. Можно использовать практически любой другой... Только разница в том, что CX используется некоторыми инструкциями и префиксами (например, loop, repne, и т.д.), которые сами создают циклы и управляют ими, а циклы с другими регистрами надо организовывать самому. Примерчик тоже в приложении.
C уважением, Portnov.

Приложение:

Ответ отправлен: 23.01.2003, 15:56
Отправитель: Portnov


Отвечает Bob Johnson

Приветствую Вас, danich!
1. У этого отрицательного числа нет положительного аналога... Он просто не вместился бы в регистр. Потому что для 8 бит можно сохранить 256 различных чисел, в знаковых чисел это: -128 ... 127.
2. ???
3. Ты можешь использовать любой регистр, например:
mov bp, 100
@@m:
тело цикла, не изменяющее bp
dec из
jnz @@m


Ответ отправлен: 23.01.2003, 00:07
Отправитель: Bob Johnson


Отвечает Den

Приветствую Вас, danich!
1. 0 не иимеет знака (учи математику)
2. Для индексации НУЛЕВОГО результата не используется регистр, а используется ФЛАГ Zf
3. С мозгами (твоими), любой регистр общего назначения.

Ответ отправлен: 23.01.2003, 03:53
Отправитель: Den


Отвечает Maverick

Приветствую Вас, danich!
3.Да практически любой...
........
mov dx,4
_loop:
dec dx
jnz _loop
........

Ответ отправлен: 23.01.2003, 05:19
Отправитель: Maverick


Отвечает masquer

Здравствуйте, danich!
2. Каких, блин, еще регистров? Для определения 0 в регистре используется команда, которая будет ZF устанавливать (cmp, test, и некоторые другие)
3. Окромя ip/eip - любой другой.

Ответ отправлен: 23.01.2003, 13:25
Отправитель: masquer


Отвечает Ayl

Добрый день, danich!
1. Ты не ошибся. Для однобайтовых целых чисел со знаком предусмотрен диапазон от -128 до 127. Как видишь, он не симметричен относительно 0. Соответственно, числу -128 (10000000 в машинном представлении) НЕ СООТВЕТСТВУЕТ положительное число! Оно отображается само на себя. При выполнении команды NEG для этого числа оно не изменяется, но выставляются флаги переполнения и переноса.
2. Что-что? Какие такие регистры? Для индикации нулевого результата используется флаг ZF регистра флагов.
3. Нет. Если ты имеешь в виду команду LOOP или использование префиксов повторения для строковых команд. Но тебе никто не мешает использовать любой регистр для счетчика циклов по принципу:
mov reg, кол-во циклов
A:
...
dec reg
jnz A


Ответ отправлен: 23.01.2003, 15:58
Отправитель: Ayl


Отвечает ASMодей

Здравствуйте, danich!
1. Для этого отрицательного числа нет такого же положительного,
не вмещается оно в 1 байт. Ведь байт может принимать значения
от -128 до +127. Так что число 10000000b - это или -128 или
128, в зависимости от того со знаком оно или без.
2. Результат можешь заносить в любой регистр, но обычно используют
регистр AX
3. Если используешь префикс REP или команду LOOP, то они могут
использовать в качестве счетчика только регистр CX, а если ты
делаешь свой цикл, то можешь использовать любой регистр.


Ответ отправлен: 23.01.2003, 16:56
Отправитель: ASMодей


 Вопрос № 2471

Добрый день всем!!!
Разъясниете для чего в этом коде сделали именно так...
db 0E9h,0,0
start:
mov bp, sp
int 0003h
@@telo:
mov bp, ss:[bp-6]
sub bp, offset @@telo
...
Первая строка дает прыжок на старт. А на фига?
В следующих двух зачем ставят ставят брэкпоинт? А на фига?
А с последующими можно поподробнее. Как-будто я только
первый раз за сам сел (ну это почти правда...).
И еще вопрос... Для чего нужно DTA и с чем его едят?



Вопрос отправлен: 22.01.2003, 20:56
Отправитель: boot

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

Отвечает Maverick

Приветствую Вас, boot!
Это вроде как начало от вируса.
2. Для гроханья отладчиков реального режима.
3. Определяют дельта смещение.
4. Много для чего...например после поиска файла, там много интересного, размер, путь и т.д. Вот вири этим и пользуются.


Ответ отправлен: 23.01.2003, 05:19
Отправитель: Maverick


Отвечает masquer

Доброе время суток, boot!
На фига? А дельта-оффсет вычисляет. А нафига дельта-оффсет вичисляет? Ну х.з., может вирус или троян какой, а может пакер/протектор (больше похоже, потому как int 3).
Вобщем, мало информации, чтобы что-то сказать. На защиту какую-то похоже...

Ответ отправлен: 23.01.2003, 13:31
Отправитель: masquer


 Вопрос № 2473

Здравствуйте уважаемые эксперты.
Помогите заблудившемуся путнику, запутавшемуся в сетях сомнений и грустных раздумий о различных языках и людях с ними связанных. Многие восхваляют Ассемблер, но зачем? Я искал истину в этом языке, но теперь перешел на С. Зачем говорить "ассемблер - это круто", когда нужно использовать каждый язык для достижения соответствующих целей? Пресытившись четким описанием команд Ассемблера я понял, что мне нужна гибкость С. Но не забывая об Ассемблере. Ламеры со своим Delphi возмущают меня, и я не понимаю, что в нём есть? Он как игра, программировать на нём - сплошное удовольствие, но в нём есть своя тёмная сторона - коммерциализация. Разрабатывать программы со скоростью несусветной - разве это есть хорошо? Они громоздкие, тормозные(может я не прав?). От Visual Basic меня ваще тошнит - нафига он нужен? Для чего он?
Короче вопрос мой в том: для чего эти языки могут-то применяться(Delphi, VB)? И мне кажется, что истинный человек не будет использовать эту лабуду. В чём же я не прав?
Простите за невтемачность вопроса, просто хотелось бы провести сравнение языков, не у кого спросить, а сам я считаю, что Delphi - на ламеров, ведь он основан на языке Pascal, а тот, насколько я знаю был разработан лишь в учебных целях.
На правильном ли я пути? C language is the best?!



Вопрос отправлен: 23.01.2003, 02:10
Отправитель: DestRUct0S (alsou52@rambler.ru)

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

Отвечает Igoryk

Приветствую Вас, DestRUct0S!
Иногда бывает нужно сдлеать программу сиюминутно, т.е. нет времени на просмотр документаций и т.п. тогда на помощь приходит VB и Delphi. На ассемблере программируют професионалы. В ряд ли кто-то скажет, что программы, написанные на ассемблере тормозные!!

Ответ отправлен: 24.01.2003, 18:24
Отправитель: Igoryk


Отвечает vitya

Приветствую Вас, DestRUct0S!
Ты же сам ответил на свой вопрос. Бывает, что нужно выпускать программы со скоростью света, а не работающие с такой скоростью. Когда ты пишешь звонилку в интернет, например, какая тебе разница она работает пол секунды или две, для тебя это незаметно...
Дельфи в настоящее время имеет черезчур много отличий от паскаля, чтобы серьезно рассматривать их, как одинаковые языки. Только синтаксис общий.
Сам я пишу на ц++, но сколько языков ты знаешь столько раз ты человек! :)

Ответ отправлен: 23.01.2003, 08:45
Отправитель: vitya


Отвечает Beeblebrox

Приветствую Вас, DestRUct0S!
Извечная тема - С vs Pascal, чья пиписька длиннее и т.п. :)
Есть такая байка, что Керниган и Ричи построили языки B и C на основе Паскаля и создали синтакс С максимально запутанным, чтобы распространить этот язык на территории СССР и развалить его тем самым :)
Такие вопросы поднимаются в основном теми, кто только начал постигать дзен.
Мой ответ такой: пишешь по-русски без ошибок - честь тебе и хвала. Удобно тебе писать на С - ради Бога. Я могу лишь сказать о себе, ни в коем случае не призывая других поступать так же. Я начал изучение языков с Бейсика и ассемблера i8080, потом в университете были Фортран и С, с тех пор я лет 8 примерно в равной степени использовал С и ассемблер x86 (который изучил самостоятельно). Теперь же, лет 5, наверное, я в 99 процентах случаев обхожусь асмом, потому что пишу на нем быстрее и эффективнее, чем на С. Лишь изредка рисую графики функций на бейсике :)
Так что пользуйся тем, чем тебе удобнее, happy coding!

Ответ отправлен: 23.01.2003, 09:56
Отправитель: Beeblebrox


Отвечает DiGiT[old]

Здравствуйте, DestRUct0S!
Ты не прав во всех отношениях. Такая категоричность присуща только молодому возрасту :)) Я сам так думал года два назад.
Но каждый язык имеет свои преимущества и область применения, при всей своей нелюбви к делфи, мне приходится признавать его преимущества, например зачем изобретать велосипед если есть готовый ??? К тому же COM технология хороша если понять её концепцию и надо ее применять(ну кому не нравится пусть будет CORBA). Язык C хоть zя его люблю, но проги приходится писать на С++ к тому же c MFC. Это если под винды, а под никсы, если приходится, то только на с++.
Delphi не язык для ламеров, а просто такая среда для разработки небольших приложений.
Пример у тебя есть дома в гараже грузовик и спортивный автомобиль, что ты выберешь, чтобы съездить в инст ?? Разве грузовик, так как на нем можно перевезти тяжелые вещи ?? нет ты поедешь на спортивном, так как такие цели.
Вот и С++ очень мощный и гибкий язык, но не везде его нужно пихать. А VB ну раз Microsoft его продвигает значит надо.
Вообще как MS не ругают это прогрессивная фирма, в которой много профессиональных программистов и дизайнеров, это приходится признавать при всей своей любви к никсам :(.
К тому же не все программисты могут быть профессиональными (из за склонности человека), а нехватка профессионалов ощущается во всем мире, и зачем тянуть профессионального программиста для разработки примитивной программы, когда дашь юзеру простой инструмент и он сам это сделает.
Информационная наука очень динамична, поэтому мы не можем сидеть на старых инстурментах иначе не будет никакого прогресса, взять асм, если бы он был стандартом разработки приложений, мы бы никогда не начали делать роботов, распознавать образы и многие методы искусственного интелекта.
Поэтому чем раньше ты это поймешь тем будет лучше.
ЗЫ. Надо брать штатовские учебники и изучать их а потом уж свое разрабатывать, ибо наше отставание пока велико :((

Ответ отправлен: 23.01.2003, 03:52
Отправитель: DiGiT[old]


Отвечает Den

Доброе время суток, DestRUct0S!
Да пребудет ВЕЛИКАЯ CИЛА С+C++ ТОБОЙ БРАТ!!!!++
Ты прав.
Но Delphi, тоже не плох. Для своих задач,
как то базы данных и т.д. и т.п.

Ответ отправлен: 23.01.2003, 04:05
Отправитель: Den


Отвечает Илья

Здравствуйте, DestRUct0S!
Вообще, есть такая хорошае вещь, как форум. Там можно на эту тему пообщаться не засоряя рассылку. Да я не ошибся - засоряя! Так как данный вопрос поднимается почти каждым программистом, и ответ на него сугубо субъективен. Да Си(++) хорош. Асм тоже. Pascal - для студентов. Delphi - для лохов. Но это только твое мнение. Вообще лучшие языки - COBOL, ADA, PROLOG, OBERON.
А The Bat ты используешь? Он ведь написан на Delphi(возможно Builder). А как насчет тех прог, которые создают студенты для облегчения своей жизни (минимизация булевых функций, рассчет всяких там строительных балок...)? Ну если первое еще понятно (ток кому это надо обычно хорошо знает программуху), то во втором случае, ты можешь себе представить строяка, который для автоматизации рассчета поднимет Си? VB - лучший выход, так как ему не важно, сколько времени уйдет на рассчет, так как время разработки гораздо больше времени самого рассчета.
А если ты, примерный студент, решивший воплотить в жизнь тему своего курсача по какой-нибудь схемотехнике, решил все спаять, но запаролся на том, что не можешь запрограмировать простой EEPROM, потому, что ты пытаешся сделать это на Си, и твоя прога не влазит в ПЗУ? Неужели ты ради гибкости Си возьмеш и переделаешь все схему?
З.Ы. Я тоже люблю Си, особенно обожаю Си++, но недавно посмотрел на Си#, так он мне еще больше понравился :)))))

Ответ отправлен: 23.01.2003, 04:52
Отправитель: Илья


Отвечает Bob Johnson

Здравствуйте, DestRUct0S!
Ну вот, опять...
> Ламеры со своим Delphi возмущают меня
Эмоции надо сдерживать.
> Разрабатывать программы со скоростью несусветной - разве это есть хорошо
Да, потому что тебе платят за готовую (работающую) программу, а не за число строчек исходного файла.
> И мне кажется, что истинный человек не будет использовать эту лабуду. В чём же я не прав?
Практически во всем...
Delphi основывается на языке pascal, но delphi - это не pascal, это - object pascal. Он не многим отстает от С++, а иногда даже имеет больше заморочек (например, виртуальные конструкторы, хотя я так и не понял, зачем они вообще нужны). Если ты решаешь серьезную задачу, где тебе нужно сделать и функциональную прогамму, и интерфейс пользователя и надежность и т.д., то какой язык ты выберешь? Нет, даже не так, какую среду программирования ты выберешь? MS VC++? Но интерфейс-то на delphi проще сделать - в Delphi уже встроены компоненты, которые выполняют эту работу за тебя. Потому что незачем забивать себе голову, как реализовать интерфейс, когда можно (и нужно) думать над алгоритмом решения задачи.
Можешь еще воспользоваться Borland C++ Builder - это тоже Delphi, но только с языком С++.


Ответ отправлен: 23.01.2003, 13:46
Отправитель: Bob Johnson


Отвечает masquer

Приветствую Вас, DestRUct0S!
Помогите путнику? Вообще-то спасение утопающих, дело рук самих утопающих...
Хехе, почитал ответы. У beeblebrox-a почти такая же точка зрения как и у меня (what a coincidence :))).
На ВБ мне с базами работать приходится, а на всех остальных языках это больно геморойно сделано.
А вообще программирование от языка не должно сильно зависеть. Оптимизированный код на бейсике будет быстрее выполняться, чем на асме.
А дельфи (как и все борландовское) - имхо, отстой, как компилятор, так и междумордие...

Ответ отправлен: 23.01.2003, 14:05
Отправитель: masquer


Отвечает Portnov

Здравствуйте, DestRUct0S!
Во многом вы правы..
Я на форуме говорил, каждый язык надо применять с своих задачах. Где-то лучше Си, где-то Асм... Только вот "гибкость Си" - это уж ерунда. Он, может, погибче Паскаля, но никак не гибче Асма!
VB в его нынешнем виде можно применять разве что для обучения программированию на непрограммерских специальностях. Пока что у него слишком много недостатков. Может, в далеком будущем...
Да, Паскаль создавался в учебных целях, но вырос в очень мощьный ObjectPascal и еще несколько еще более мощных диалектов (попробуйте TMTPascal for Win32). Конечно, у Delphi куча недостатков - программы громоздкие, медленные, плюс еще невероятные какие-то глюки компилятора (а оптимизацию лучше сразу раз и навсегда отключить, иначе глюк будет на каждой строчке кода)... Но тем не менее, у Delphi есть своя область применения - быстрое создание программ, к которым предъявляются не слишком высокие требования по качеству. В качестве примера можете посмотреть мой AssemblerEditor, выложен на portnov84.narod.ru/portiv.htm.
С выражением "C the best" вы точно неправы. Я уже сказал - для каждой задачи - свой язык. Си подходит для многих задач, но далеко не для всех.
С уважением, Portnov.

Ответ отправлен: 23.01.2003, 16:10
Отправитель: Portnov


Отвечает Ayl

Добрый день, DestRUct0S!
Из всего вышенаписанного здравая мысль только одна - каждый язык нужно использовать для достижения своих целей.
Ассемблер - это круто, потому что это единственный язык, позволяющий достичь всего, на что только способен комп. И ничего более. Никто не призывает писать на нем многомегабайтные проекты. Он должен использоваться там, где использование ЯВУ невозможно или приведет к плохим результатам.
Насчет Паскаля и Си. Лично я приверженец Паскаля. Не могу точно объяснить, почему. Может, из-за гороскопа :-) или из-за обучения Си на основе Quick C 2.5 (вот что может убить в человеке желание писать на Си!). По крайней мере Borland Pascal 7.0 по своим возможностям не уступал Си.
По поводу Delphi и вообще всех визуальных сред. А что делать? Хотите простоту разработки - платите скоростью и размером. Ну нет пока компилятора, способного создать оптимальный код. В т.ч. и для Си.
Для чего могут применяться? Delphi часто исползуется для создания приложений, работающих с базами данных. По крайней мере, ИМХО, чаще, чем Си. Многие говорят, что Delphi для этих целей использовать проще.
VB - лично для меня загадка. Не знаю. По крайней мере кроме как в офисных приложениях я его не встречал.
Кстати, делить языки на ламерские и не ламерские - это, не в обиду будет сказано, признак ламерства. Язык сам по себе таковым быть не может. У него может быть ограниченная область применения, он может быть менее приспосбленным для решения определенной задачи и т.п.
В конце концов все зависит от программиста. Хороший программист и на VB напишет более качественную программу, нежели плохой на Си.
На своем опыте могу сказать, что в данное время на работе я использую PL/SQL для Oracle и родные тулсы для нее. Кроме этого, применяется Delphi. Для души я использую связку Паскаль + ассемблер для ДОС, т.к. писать виндовые приложения у меня рука не поднимается (все-таки, работаю для души :-) ). Си же не мспользую уже очень давно.


Ответ отправлен: 23.01.2003, 17:06
Отправитель: Ayl


Отвечает keleb-glin

Здравствуйте, DestRUct0S!
А истина в ассемблере есть. Ведь ассемблер ближе всего к машинным кодам, а именно они - абсолют. Вот где в Си есть команда lgdt? Программист на Си привязан к конкретному компилятору. Программист на асме легко может писать и код, работающий без ОС, и под ОСь ( конечно, если ОСь не требует глубоко специфичного кода ).


Ответ отправлен: 26.01.2003, 19:42
Отправитель: keleb-glin


 Вопрос № 2474

Привет, эксперты!
Не подскажите ли вы мне, как в СофтАйс пошагово выполнять? В смысле, не StepInto, а StepOver.
TIA



Вопрос отправлен: 23.01.2003, 09:33
Отправитель: Svin

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

Отвечает masquer

F10

Ответ отправлен: 23.01.2003, 11:19
Отправитель: masquer


 Вопрос № 2475

Пришлите, пожалуйста, у кого есть, архив рассылки Калашникова(первые 31 урок про кодинг для DOS). Просто сайт http://asm.kalashnikoff.ru куда-то подевался, а асм очень хочется изучать.



Вопрос отправлен: 23.01.2003, 11:08
Отправитель: Marouder (marouder@list.ru)

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

Отвечает Ayl

Доброе время суток, Marouder!
http://subscribe.ru/catalog/comp.prog.assembler - там есть архив рассылки

Ответ отправлен: 23.01.2003, 17:18
Отправитель: Ayl


Отвечает Maverick

Здравствуйте, Marouder!
Есть архив на субкрайбсе, но его неудобно качать.
Просите эксперта Bob Jonson, чтоб на свой сайт выложил.
Хей, Bob, прислушайся к людям, глас народа-глас Божий :)

Ответ отправлен: 27.01.2003, 05:03
Отправитель: Maverick


 Вопрос № 2476

Я новичок, но уже немного понимаю, просто напросто нехватает
настовления знающих людей в этой области программирования. А именно меня интересует Разбор программ, что там откудо вызывается и откудо там читается и.т.п.
Зарание благадарю - Sandro



Вопрос отправлен: 23.01.2003, 12:18
Отправитель: Sandro

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

Отвечает masquer

Приветствую Вас, Sandro!
О, меня тоже интересует, и, как настоящий профессинал, расскажу тебе по секрету, что именно оттуда все вызывается и туда же и читается.
Да, в добавок, научись сначала вопрос задать, если ответ хочешь получить...

Ответ отправлен: 23.01.2003, 12:41
Отправитель: masquer


Отвечает Eugene

Добрый день, Sandro!
Читается откудо надо. То есть, откуда программер захочет, оттуда и прочитается. А вообще я смотрю ты мастак вопросы задавать. Разбор каких программ ты имел ввиду. Может быть тот проект, над которым я сейчас работаю?

Ответ отправлен: 23.01.2003, 12:50
Отправитель: Eugene


 Вопрос № 2477

ДА, да , я знаю что мой 1 вопрос показался смешным, но вы меня неправилно понили или действительно он таков? За Русский извеняюсь - до этого жил в Германии. А по поводу вопроса: Я Какбы, в той или инной степени Крэкер (не печенье:)))), и мне просто напрсто , хочется усвоить технику обхода разного рода, защит с помощью Асемблера. Если есть токая документация, то где её скачать-кто знает?
Да и я неповерю, что вы не разу и непробовали этим занятся - даже ради любопытства!!! И неудевлбюсь если вы этим и занимаетесь , ради себя -Вообщем можете или нет поделится опытом? Если Нет - то Почему?


Приложение:


Вопрос отправлен: 23.01.2003, 14:19
Отправитель: Sandro (sandro_19@front.ru)

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

Отвечает masquer

Приветствую Вас, Sandro!
Это немцы с полпинка на вопрос "что и откуда вызывается" отвечают? Никогда бы не подумал. А таких "какбы крэкеров" сейчас пруд пруди. Хотя это уже несколько более конкретный вопрос, чем предыдущий. Но все равно, как ты представляешь себе ответ на вопрос "а как сломать?". Я бы ответил "молча". Люблю я намеками говорить в последнее время.

Ответ отправлен: 23.01.2003, 14:40
Отправитель: masquer


Отвечает Eugene

Доброе время суток, Sandro!
Это уже более конкретный вопрос. В инете полно информации по этой теме. Можешь начать с www.reversing.net. Потом пойти по линкам, которые находятся там же.

Ответ отправлен: 23.01.2003, 14:46
Отправитель: Eugene


Отвечает Broken Sword

Доброе время суток, Sandro!
www.reversing.net
fravia.anticrack.de
кстати, это вам лучше знать, где скачать, т.к. чуть ли не 80% сайтов про крякерство заканчиваются на .de


Ответ отправлен: 23.01.2003, 16:15
Отправитель: Broken Sword


 Вопрос № 2478

Здравствуйте уважаемые эксперты.
Я исследовал одну программу для Win32 (WinSniffer),
но почему-то дизассемблер (IDA Pro 4.15) при попытке загрузки экзешника выдал:
"The imports segment could be destroyed (uncheck 'make imports section' at the loading time"
и после этого не стал проводить анализ программы.
С чем это связано? Я подумал, что эта программа упакована или защищена от дизассемблирования каким-то образом, но распаковщики выдают #GPF.
Если программа действительно запакована, можно ли как-то определить тип программы-упаковщика?
Заранее благодарен, Sl@vyan.



Вопрос отправлен: 23.01.2003, 14:31
Отправитель: Sl@vyan (slavyan@omskmail.ru)

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

Отвечает masquer

Приветствую Вас, Sl@vyan!
Можно, я "на глаз" штук 15-20 наиболее полулярных определю. На протулзах есть утилиты, которые выдают инфу по пакерам, протекторам, компиляторам.

Ответ отправлен: 23.01.2003, 15:09
Отправитель: masquer


Отвечает Maverick

Здравствуйте, Sl@vyan!
Погляди ее в Hex-редакторе, многие паковщики оставляют после себе копирайты, обычно в начале.


Ответ отправлен: 27.01.2003, 05:03
Отправитель: Maverick


 Вопрос № 2479

Здравствуйте эксперты !!!
Я практически ничего не знаю на ассемблере, но мне всё же интересно узнать следующую вещь: я слышал, что в оперативной памяти старенького ZX Spectrum выделяется место под картинку, которая выводится на экран, т.е. в принципе не нужно знать работу видео карты (или подобного устройства выведения информации на экран), а просто заносить в память по порядку цвета всех пикселей. Так вот мой вопрос: как осуществляется вывод графики на экран IBM PC ? Сохранилась ли эта структура ? И заранее ОГРОМНОЕ СПАСИБО !!!!!



Вопрос отправлен: 23.01.2003, 16:19
Отправитель: Олег (kirillovoleg@narod.ru)

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

Отвечает Igoryk

Здравствуйте, Олег!
В сегменте A000 нужно расположить байты которые поочередно определяют цвет пиксела на экране начиная с левого верхнего и заканчивая правым нижним.

Ответ отправлен: 24.01.2003, 18:25
Отправитель: Igoryk


Отвечает AlX1024

Приветствую Вас, Олег!
Нет, структура видеопамяти другая. На "Спеке" видеопамяти - 6КБ + 768 байт, а в IBM - зависит от видеорежима. От 4-х КБ в текстовом режиме до десятков мегабайт в графическом SVGA. А структура, повторюсь, другая: на Спектруме видеопамять состоит из трех кусков при довольно оригинальном чередовании строк, то на ИБМ - обычно строки идут друг за другом, и состоят из чередования "...символ, атрибут, символ, атрибут..." в текстовом режиме, а в графическом - только идущие друг за другом "атрибуты". Да и режимов - не один "атрибутно-графический", а есть только чисто текстовые и чисто графические.
А насчет того, что "не надо знать работу видеокарты", я не совсем согласен. Знание работы никогда не помешает... А ведь в ZX нет "видеокарты" :-). Тем более, там есть свои особенности, например, вывод желателен после прерывания от таймера (а в некоторых наших клонах это прерывание было "сбито"), да и еще много чего...
А вывод, все-таки, может осуществляться прямой записью в память, только есть еще способы вывода через BIOS, через сервис ОС и т.д. Хотя, вообщем-то там было некое подобие этого.
Пусть в форуме не ругают меня за "ламерский ответ".

Ответ отправлен: 25.01.2003, 19:47
Отправитель: AlX1024


Отвечает Bob Johnson

Доброе время суток, Олег!
В ZX-Spectrum видеобуффер физически находился в основной памяти и видеоконтроллер оттуда считывал видеоданные. В PC видеобуффер физически находится в видеокарте и, в принципе, процессор к ней прямого доступа не имеет. Но видеокарты позволяют устанавливать отображение своей памяти на адресное пространство процессора, что позволяет ему получить такой доступ (т.е. это возможно!). Но это далеко не всегда самый лучший способ вывода графики - т.к. все современные видеокарты умеют сами что-то рисовать в этом видеобуфере и обычно это получается быстрее, чем если бы рисовал процессор (а процессор в это время может что-то еще делать). Более того, 3D ускоритель, специалированный для прорисовки треугольников будет делать это в десятки (!) раз быстрее, чем центральный процессор с таким же качеством (интерполяция и т.д.).


Ответ отправлен: 24.01.2003, 12:00
Отправитель: Bob Johnson


Отвечает Gibbel

Добрый день, Олег!
"Сохранилась" - слегка некорректное выражение, так как ZX Spectrum и IBM PC - разные платформы.
В семействе IBM PC так же, как и во всех других, вывод плоской(2D)графики на экран осуществляется записью соответствующих данных в видео память. Структура видиопамяти различна как на различных платформах, так и на разных моделях видеокарт одной платформы (у Speccy различия проявлялись в 48/128 режимах, когда были доступны соответственно 1/2 страниц видеопамяти, на IBM PC же различия более глубокие - как в количестве страниц, так и в принципах кодирования цвета).
У последних существует множество "стандартов" таких как CGA, EGA, VGA, SVGA, XGA, etc... Наиболее простое программирование 256-цветных "VGA-режимов", так как в них на каждую точку приходиться один байт видеопамяти...
Можно еще долго распространяться на эту тему, но я позволю это сделать остальным экспертам... Скажу лишь, что информации по программированию графики в интернете море... Даже океан...

Ответ отправлен: 23.01.2003, 16:49
Отправитель: Gibbel


Отвечает Andrew Vext

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


Ответ отправлен: 23.01.2003, 16:59
Отправитель: Andrew Vext


Отвечает Ayl

Здравствуйте, Олег!
Во-первых, что значит - сохранилась ли? IBM PC и ZX Spectrum - две абсолютно разные машинки, соответственно, и сохранится ничего не может. Может быть аналогично реализовано. Прошу прощения за критику, просто я люблю корректные формулировки.
Теперь, собственно, по графике. Видеопамять в IBM PC расположена на видеокарте. Но она отображается на диапазон адресов A000:0000 - B000:FFFF.
Видеорежимов существует довольно много. Если рассматривать только режимы VGA (для современных адаптеров просто нет стандарта), то они следующие (см.Приложение).
В зависимости от режима меняется структура видеопамяти (принцип отображения информации из нее на экран), способы работы с ней и базовый адрес. Тебе лучше всего найти какую-нибудь книжку по эотму поводу или поискать в инете. Ссылок дать, к сожалению, не могу - у меня книжки есть.
Могу просто привести общие характеристики режимов.
1-3 - текстовые режимы. Базовый адрес - B800:0000. Каждый символ занимает в видеопамяти 2 байта. По четному адресу - собственно, код символа, по нечетному - его атрибут, то есть коды цветов символа и фона (каждый по 4 бита). Экран заполняется по строкам без разрывов. Т.е. сначала 80 (160) байт для первой строки, потом столько же для второй и т.п. до 25-й. Так как памяти выделено 16К, а на 1 экран уходит или 2000 байт (режимы 0-1) или 4000 байт (режимы 2-3), то есть возможность использования, соответственно, 8 или 4 видеостраниц.
7-й - тоже, что и выше, только базовый адрес равен B000:0000
4 и 5-й - графические. Базовый адрес B800:0000. Каждый байт содержит описание 4-х точек (по 2 бита на точку). Одна строка содержит 320 точек, т.е. 80 байт. Кроме этого, строки в видеопамяти располагаются через одну. А именно, все четные строки (с номерами 0,2,4,...,198) располагаются подряд, начиная с адреса B800:0000. Все нечетные (1,3,5,...,199) - с адреса B800:8000.
6-й - аналогично предыдущим, но только в каждом байте расположена информация о 8-ми точках.
13-й - графический (только для адаптеров VGA и SVGA). Базовый адрес - A000:0000. Один байт отвечает за 1 точку. Строки хранятся подряд, без разделения на четные/нечетные.
0d-12 - графические. 11 и 12 только для VGA и SVGA, остальные также и для EGA. Начальный адрес - A000:0000. Память организована очень хитро, без поллитра не понять :-) В общем, все дело в том, что один адрес видеопамять содержит 4 байта. Круто, да? В результате, информация о цветах 8-ми точек сохраняются по одному адресу и каждая точка при этом может иметь 1 из 16 цветов.
В общем, ищи книжки

Приложение:

Ответ отправлен: 23.01.2003, 18:04
Отправитель: Ayl


Отвечает vitya

Приветствую Вас, Олег!
Под дос именно так оно и есть.
Начиная с адрес B800:0000 начинается видеопамять. В текстовом режиме 1 байт под символ, второй байт под аттрибут (цвет символа/цвет фона).
Кроме того в графическом режиме VGA используется начальный адрес A000:0000... хотя тут я скорее всего ошибаюсь (никогда не пользовался :) ), но можно посмотреть в справочных системах.

Ответ отправлен: 23.01.2003, 18:17
Отправитель: vitya


Отвечает Топор

Добрый день, Олег!
Да в общем так же. Текстовая видеопамять в реальном режиме начинается с сегментного адреса 0B800h, графическая (не соврать бы...) - с 0A000h. Хотя иногда с видеоконтроллером приходится повозиться на предмет правильного понимания данных в видеопамяти.


Ответ отправлен: 24.01.2003, 12:02
Отправитель: Топор


 Вопрос № 2480

Приветствую Вас, ув. Эксперты!
Несколько дней тому назад я задавал вопрос касательно исходников Windows. Практически все ответили негативно. Несмотря на столь убедительное единогласие, я провел еще несколько дней в поисках нужной мне информации (в свете новых событий из прессы, разумеется) и наткнулся на сайт http://barygrp.angelcities.com/ ,где, насколько я понял, некие "программисты" якобы дизассемблировали и откомментировали рабочий код Windows. Кроме того, я скачал оттуда демо-куски откоментированного виндового кода (действительно, откоментарено достаточно ясно - я даже в своей рабочей винде с отладчиком над этим кодом побаловался!). Однако, они за свою работу+"поддержку" просят бабки - 20 баксов. А вдруг это кидалово? Может кто из Вас уже натыкался на этот сайт? Если да, то посоветуйте что-нибудь.
Заранее благодарен.



Вопрос отправлен: 23.01.2003, 16:20
Отправитель: Alex (alexey@tradeline.com.ua)

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

Отвечает Igoryk

Добрый день, Alex!
Не знаю, не знаю - было бы все так как ты говришь этот сайт уже давно бы прикрыли.

Ответ отправлен: 24.01.2003, 18:25
Отправитель: Igoryk


Отвечает Gibbel

Здравствуйте, Alex!
Ну, во-первых... Дизассемблирование кода Windows, это наказуемое деяние, посему вряд ли кто-нить будет этим заниматься... К тому же, слишком уж все там запутано...
А так, есть радостная весть - мелкософт согласилась предоставить исходники виндов соответствующим спецслужбам всех государств, которые это потребуют... Так что, ожидайте в скором времени на пиратских дисках ;-)

Ответ отправлен: 23.01.2003, 16:55
Отправитель: Gibbel


Отвечает Andrew Vext

Здравствуйте, Alex!
Так вы спокойно сами можете дизассемблировать и откомментарить код. К сожалению исходя из представленных кусков нельзя сказать действительно ли дизассемблировали все (я честно говоря сомневаюсь - это куча работы).
Вообще-то Windows, как и Linux, пишут не на ассемблере а на С.

Ответ отправлен: 23.01.2003, 17:11
Отправитель: Andrew Vext



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (39)
C / C++ (30)
Perl (7)
Delphi (17)
Pascal (23)
Basic / VBA (13)
Java / JavaScript (12)
PHP (9)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (38)
Windows NT/2000/XP (30)
"Железо" (35)
Поиск информации (20)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (14)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (5)
КоАП (4)

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




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

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


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

В избранное