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

Ассемблер? Это просто! Учимся программировать


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 600
от 13.11.2006, 07:35

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


Вопрос № 61657: Здравствуйте, уважаемые эксперты! Объясните мне, неразумному, почему после выполнения такого кода, прога довольно быстро умирает? Остальной код работает нормально и вообще написан на языке высокого уровня. FeatureSet - беззнаковая перемен...
Вопрос № 61691: Доброго времени суток уважаемые эксперты. У меня возникли вопросы по некоторым функциям. FindFirstFile - как я понял 1-ый параметр это маска поиска, а вот второй, чё это такое- lpFindFileData? А у FindNextFile - 1 параметр дескриптор перв...
Вопрос № 61721: Я написал простенькую программу и с помощью MASM сделал ml.exe prog1.asm /AT получился COM файл, а он ограничен 64кб как делать EXE файлы?...

Вопрос № 61.657
Здравствуйте, уважаемые эксперты!
Объясните мне, неразумному, почему после выполнения такого кода, прога довольно быстро умирает?
Остальной код работает нормально и вообще написан на языке высокого уровня.
FeatureSet - беззнаковая переменная (не указатель) 32бита.

Приложение:

Отправлен: 07.11.2006, 18:08
Вопрос задал: Сухомлин Кирилл Владимирович (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Олег Владимирович
Здравствуйте, Сухомлин Кирилл Владимирович!

А Вы уверены, что именно это проблемный код? Здесь ничего криминального нет, разве что вместо pusha и popa можно посоветовать сохранять 32битные регистры: PUSHAD и POPAD
Elfxb!
---------
Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: 6-ой класс)
Ответ отправлен: 07.11.2006, 22:04


Вопрос № 61.691
Доброго времени суток уважаемые эксперты.
У меня возникли вопросы по некоторым функциям.
FindFirstFile - как я понял 1-ый параметр это маска поиска, а вот второй, чё это такое- lpFindFileData?
А у FindNextFile - 1 параметр дескриптор первого найденного файла или что?
А чё надо указывать в FindClose?
Заранее спасибо.
P.S. Если кто напишит, мол читай MSDN - обижусь.
Отправлен: 07.11.2006, 20:48
Вопрос задал: Lonely Wolf (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Вiктор
Здравствуйте, Lonely Wolf / ENS!
lpFindFileData это указатель на структуру WIN32_FIND_DATA. В этой структуре хранится информация о найденном файле или папке. Т.е. это указатель на то место памяти, куда будет записываться информация о найденных файлах и папках.
а 1-й параметр в FindNextFile - это дескриптор поиска. Т.е. когда вы вызываете FindFirstFile, то он возвращает как раз этот самый дескриптор. И его же надо посылать в FindClose.

Дескриптор - это как бы описание поиска. Через дескриптор функция FindNextFile узнаёт в какой папке и что искать, узнаёт какие файлы уже найдены чтобы не повторяться.

Например, если вы ищёте в двух разных папках, то вы 2 раза вызваете FindFirstFile, получаете 2 дескриптора поиска. А когда вы потом будете вызывать FindNextFile, то он будет искать следующий файл по тому из поисков, дескриптор которого вы туда передадите.

Читайте WIN32 SDK. И не обижайтесь. Я вот это в основном оттуда вычитал. Или вы хотите сами не читать, а чтобы вам оттуда читал кто-то другой?
---------
Флаг вам в руки! (sti, stc, etc)
Ответ отправил: Вiктор (статус: 8-ой класс)
Ответ отправлен: 07.11.2006, 23:01


Вопрос № 61.721
Я написал простенькую программу и с помощью MASM сделал
ml.exe prog1.asm /AT
получился COM файл, а он ограничен 64кб
как делать EXE файлы?
Отправлен: 08.11.2006, 00:35
Вопрос задал: Flexdiez (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Lonely Wolf
Здравствуйте, Flexdiez!
Да, COM файл ограничен 64 kb, но поверьте это прилично(для ассемблера), но вообще может показаться маловато. В COM программе все содержится в одном сегменте. EXE программы могут иметь 2 и более сегмента, в зависимости от модели памяти(small,compact,medium,large,huge).
EXE программа, модель памяти small.
;start программы
.model small ;указываем модель памяти
.stack 100h ;размер стека
.code ;начало сегмента кода
start: ;метка старта

mov ax,DGROUP
mov ds,ax ; указываем что ds указывает на данные
;сюда можно писать код

.data ;сегмент данных
; здесь объявление переменных
end start ;всё!!! - гейм овэр, конец программы


---------
Ассемблер FOREVER!!!
Ответ отправил: Lonely Wolf (статус: Студент)
Ответ отправлен: 08.11.2006, 12:20
Оценка за ответ: 5
Комментарий оценки:
спасибо!

Отвечает: Луковкин Николай Иванович
Здравствуйте, Flexdiez!
Создание ехе.файла для MASM
ml/c prog1.asm - создаем obj. файл
link prog1.obj - создаем ехе.файл
---------
Главным критерием эффективности того или иного пути может служить лишь то, достиг или нет крекер конечного результата!!!
Ответ отправил: Луковкин Николай Иванович (статус: 4-ый класс)
Ответ отправлен: 09.11.2006, 11:03


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

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

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

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

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


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


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

В избранное