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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 358
от 31.01.2006, 21:30

Администратор:Калашников О.А.
В рассылке:Подписчиков: 252, Экспертов: 22
В номере:Вопросов: 4, Ответов: 9


Вопрос № 34108: После прочтения 8 и 9 глав книги возник такой вопрос: В этих главах идет описание процедур по работе с файлами. Что означает "открыть файл", который мы впоследствии закрываем? Т.е. если я введу путь к какому-то текстовому файлу, то где ...
Вопрос № 34130: И всё-таки объясните мне пожалуйста по-подробнее, нафига нужен виндовый асм если всю работу можно сделать на VC++ (VC++ .NET) при необходимости с __asm{вставками}?...
Вопрос № 34155: Zdravstvuyte.Prostite za translit,ya vinujden.Nachal uchit Assembler,chitayu pro 'debug',pitayus vivesti luboy simvol ASCII ili ANSI ne pomnu uje,no pri popitke zapuska "G", Windows vivodit okoshko s knopkami "close","ignor&q...
Вопрос № 34174: ОбЪясните, как пользоваться отладчиком AFDPRO ...

Вопрос № 34.108
После прочтения 8 и 9 глав книги возник такой вопрос:
В этих главах идет описание процедур по работе с файлами. Что означает "открыть файл", который мы впоследствии закрываем? Т.е. если я введу путь к какому-то текстовому файлу, то где он должен открыться? Что значит открыть файл для "записи"? Как я могу изменить файл если он не открывается явно?
Отправлен: 25.01.2006, 22:25
Вопрос задал: Еrshik (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Карандашов Сергей
Здравствуйте, Еrshik!
После того как файл открыт можно в него писать/читать информацию (в зависимости от режима открытия), так же можно его проецировать в память, т.е. к нему можно обращаться как к участку памяти. Вобще при помощи "открыть файл" можно открывать доступ не только к файлам, но и другим ус-вам не имеющим к файлу ни какого отношения. Кстати, "открыть файл" не есть именно открыть: CREATE_NEW - создать файл, если он есть, то ошибка CREATE_ALWAYS - создать ф-л даже если он есть OPEN_EXISTING - открыть ф-л, если нет, то ошибка OPEN_ALWAYS - открыть, если нет, то создать TRUNCATE_EXISTING - открыть и усечь его до нуля.
Система после Вашего открытия подготавливает среду для работы с этим файлом (в частности буфер в памяти), а после закрытия освобождает ресурсы.
Для прочих пр-м открытый Вами файл может быть полностью/частично недоступен, при закрытии он опять свободен
Без "открыть файл" система Вам не даст его изменить
Ответ отправил: Карандашов Сергей (статус: 1-ый класс)
Отправлен: 26.01.2006, 06:54

Отвечает: Sager
Здравствуйте, Еrshik!
Ты в данном случае неправильно понимаешь слово открыть. Открыть файл - это не значит нажать (напр в винде) на него правой кнопкой и выбрать открыть с помощью (напр Блокнота) и он откроется в блокноте. В данном случае происходит следующее: запускается Блокнот, ему передается параметр(-ы), в качестве имени файла, кот хочешь просмотреть, Блокнот берет и открывает этот файл, т.е. получить доступ к файлу, чтобы система подготовила ресурсы для его использования и выдала хэндл, по кот ты можешь "различать" файлы. Затем Блокнот считывает инфу из файла и выводит ее на экран. Файлы можно открывать для записи, чтения, чтения/записи. Если ты откроешь его для записи, то сможешь записывать в файл любую инфу. А если откроешь для чтения, то сможешь читать из файла любую инфу, а вот если напр захочешь что-нибудь записать - то ничего не получится.
Если под словом явно ты имеешь ввиду "показывание файла в блокноте", то думаю теперь все уже понятно. И изменять можно так, как показано в рассылке!
Ответ отправил: Sager (статус: Студент)
Отправлен: 26.01.2006, 10:49
Оценка за ответ: 5

Отвечает: newinfo2005
Здравствуйте, Еrshik!
1)"открыть файл" - означает, что впоследсвие ты можешь обращаться к этому файлу через определенный его индефикатор.
2) без разницы к какому файлу. остальное я сказал в пункте 1.
3) "запись" - означает что будем только туда записывать(AL=1)
4) открывай файл для чтениязаписи (AL=2)


---------
"Спасибо" - нет такой валюты.
Ответ отправил: newinfo2005 (статус: 6-ой класс)
Отправлен: 26.01.2006, 12:24
Оценка за ответ: 5


Вопрос № 34.130
И всё-таки объясните мне пожалуйста по-подробнее, нафига нужен виндовый асм если всю работу можно сделать на VC++ (VC++ .NET)
при необходимости с __asm{вставками}?
Отправлен: 26.01.2006, 09:30
Вопрос задал: Яковлев Сергей Павлович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Яковлев Сергей Павлович!
На вкус и цвет товарища нет :)
Кому-то достаточно С++, а кто-то хочет сам все написать, и чтобы было компактно,
тем более, что все-равно приходится вызывать стандартные API-шные функции,
так что задача стоит практически в том, чтобы более рационально увязать
между собой стандартные "кирпичики".
Кроме того, существует класс задач, которые эфективнее реализовывать
только на АСМ-е, например, драйвера, защита, да мало ли еще что!
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Отправлен: 26.01.2006, 10:01

Отвечает: Карандашов Сергей
Здравствуйте, Яковлев Сергей Павлович!
"нет плохих языков, есть плохие программисты". То что я увидел в асме хорошее:
- логика мышления развивается быстрее чем на остальных языках: проще изучить асм, потом можно браться за почти любой язык. на оборот получается со "скрипом"
- изучение заняло меньше времени (!): на асме реально испульзуется пару десятков команд + справочник по API. Для С нужен тот же справочник API + знание почти 1000 команд
- почувствовать власть над компом опять же проще всего только на асме, а это не передоваемые очучения
- Попробуйте решить на С формулу Ламе численным методом: числа длиной до 1000 знаков (дробные), сложений около 20, вычитаний столько же, умножений ~10 и 2 деления. всё это надо 20000 раз в секунду провернуть. При чем, все цифры значимые!.
- По скорости написания: если делать что нить серьезное, маленький язык программирования например, опять же ЯВУ поставят много гвоздей, а асм полностью без костей. все это делал сам
...
и еще много всего. просто мне асм понравился больше, а так каждому свое
Ответ отправил: Карандашов Сергей (статус: 1-ый класс)
Отправлен: 26.01.2006, 10:20

Отвечает: Sager
Здравствуйте, Яковлев Сергей Павлович!
Ты знаешь, если начать размышлять, то можно прийти к выводу, что в принципе-то и не нужен и привести кучу аргументов. И в ЯВУ можно обойтись вставками. НО! Ты знаешь мне это чем-то напоминает Linux vs Windows(Assembler vs ЯВУ). Должна быть свобода выбора - кому-то нравится ассемблер и его полностью устраивают те преимущества и недостатки, кот в нем имеются. Тоже самое и в ЯВУ. Но ведь это не означает, что нужно специально избавиться например от ассемблера(я бы с радостью избавился от Делфей). Чем больше у тебя возможностей, тем свободнее ты себя чувствуешь. Вот представь можно сказать так: зачем другие графические пакеты, если фотошоп рулез форева, все остальное в трэш, уничтожить и забыть и не вспоминать! Возможно немного грубое сравнение. Но все же.
Да и еще хочу добавить, что при низкоуровневом кодинге твоя прога на С будет одной большой асм-вставкой(или большая асм-вставка с "С-вставками":-))(особенно при кодинге ОС, некот драйверов). Да и ошибки искать в винегрете асма-С намного сложнее - особенно при отладке. + На асме можно писать самые маленькие проги(самый маленький PE-файл выводящий MessageBox размером 153(!) байта)+ вирусы и крэки пишут на асме. И Crackme тоже на чистом асме - чтобы новичкам было легче постигать азы крэкинга.....
Ответ отправил: Sager (статус: Студент)
Отправлен: 26.01.2006, 11:09


Вопрос № 34.155
Zdravstvuyte.Prostite za translit,ya vinujden.Nachal uchit Assembler,chitayu pro 'debug',pitayus vivesti luboy simvol ASCII ili ANSI ne pomnu uje,no pri popitke zapuska "G", Windows vivodit okoshko s knopkami "close","ignor" i tekstom:"Command Prompt - DEBUG
The NTVDM CPU has encountered an illegal instruction.
CS:0000 IP:0077 OP:f0 37 05 14 02 Choose'Close'...".Kak ya ponimayu problema s processorom.Pomogite plz.Zaraneye blagodaru.(pentium4 '2.4',WinXPpac2,RAM512,cho yesho tam ???YESHO RAZ SORRY ZA TRANSLIT!!!

Приложение:

Отправлен: 26.01.2006, 15:14
Вопрос задал: Zuli (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Seamanmur
Здравствуйте, Zuli!
Под Виндой разрешены далеко не все инструкции.
Она тебе и написала, что ты выполняешь запрещенную инструкцию. Какую конкретно - нужен код программы. Но вообще запрещены выводы в порты, многие инструкции защищенного режима.
NTVDM - это виртуальная машина ДОС, работающая под XP
Ответ отправил: Seamanmur (статус: 2-ой класс)
Отправлен: 26.01.2006, 16:07


Вопрос № 34.174
ОбЪясните, как пользоваться отладчиком AFDPRO
Отправлен: 26.01.2006, 20:31
Вопрос задал: Kont kontovich (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Kont kontovich!
http://ermak.cs.nstu.ru/makarpage/asm/afdpro.zip
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Отправлен: 26.01.2006, 21:10
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо!

Отвечает: Sager
Здравствуйте, Kont kontovich!
А что непонятного-то? Там же все просто. F1 - пошаговая трассировка с заходом в прерывания и процедуры, F2 - тоже самое, но без захода в процедуры и прерывания. Вверху находятся регистры общего назначения. Чуть правее отображается состояние стека(что в нем лежит), еще правее находится регистр флагов, где отображается состояние того или иного флага(напр ZF - флаг нуля), справа и сниху находятся дампы памяти. Тута можешь посмотреть что находится в памяти по определенному сегменту и смещению. Чтобы перемещаться и изменять, напр регистры, дамп памяти, используй клавиши F7(вверх), F8 (вниз),F9(влево),F10 (вправо). Если хочешь увидеть,например, надпись Hello World(предварительно создав такую и запустив под отладчиком), то посмотри, что заносится в dx перед вызовом int 21h, нажми F8 и после ds укажи это число и правом нижнем углу увидишь Hello World. Чтобы выйти из отладчика, введи quit и нажми . Все, это основы, есть еще и команды, но тебе и этого сполна хватит.
И еще это почитай:
http://kis-kiev.narod.ru/lab/tasm/tsm1.htm
Ответ отправил: Sager (статус: Студент)
Отправлен: 27.01.2006, 11:00
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо! Разобрался. И адрес помог


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное