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

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


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

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

Выпуск № 750
от 14.05.2007, 17:05

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


Вопрос № 86062: Здравствуйте. Подскажите, пожалуйста, где можно скачать справочник по всем коммандам блока XMM (расширения SSE/SSE2) с достаточным описанием каждой комманды?...
Вопрос № 86070: Необходимо работать с файлом, имя которого вводится с клавиатуры. В приложении я привел фрагмент моей программы, в которой я пытаюсь вводить с клавиатуры это имя. Но программа работает не так как ожидается. Мне не понятно, почему не происходит ожидан...
Вопрос № 86119: Здраствуйте уважаемые эксперты. Мой вопрос состоит в следующем: Как считать информацию с текстового файла, и записать её в массив?...

Вопрос № 86.062
Здравствуйте.
Подскажите, пожалуйста, где можно скачать справочник по всем коммандам блока XMM (расширения SSE/SSE2) с достаточным описанием каждой комманды?
Отправлен: 08.05.2007, 20:49
Вопрос задал: John Paramol (статус: 8-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, John Paramol!

Описание команд XMM можно найти в книгах Зубкова:Ассемблер или Юрова:Учебник
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 10.05.2007, 10:48
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Однако в первой книге нет ни слова про XMM. Юров - то, что надо. Но я уже нашел более подходящий вариант, правда без картинок. Думаю, возьму картинки из Юрова.


Вопрос № 86.070
Необходимо работать с файлом, имя которого вводится с клавиатуры. В приложении я привел фрагмент моей программы, в которой я пытаюсь вводить с клавиатуры это имя. Но программа работает не так как ожидается. Мне не понятно, почему не происходит ожидания пока пользователь не введет строку. Предполагается, что после кода в приложении должно выполниться что-то вроде

mov ax,3d00h
mov dx,offset path
int 21h
Как нужно изменить код, чтобы по смещению path получить строку (вводимую пользователем) с путем файла, чтобы его потом открыть?

Приложение:

Отправлен: 08.05.2007, 22:07
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sov
Здравствуйте, Blackie!
Вот пример работы с файлами, переделаете как вам нужно
data db 100,?,102 dup(0);длина имени не должна превосходить 100 символов
реально введеная длина строки содержится во 2-м байте. Собственно введеный текст содержится начиная с 3 байта. Функция 3d (да и другие) для работы требует строку с именем файла, которая заканчивается 0. Поэтому переменную data использовать нельзя. Просто из data начиная с 3 байта копируем информацию в path и далее работаем с этим массивом

Приложение:

Ответ отправил: Sov (статус: 2-ой класс)
Ответ отправлен: 09.05.2007, 06:39
Оценка за ответ: 4
Комментарий оценки:
Ваш код можно оптимизировать. Вместо цикла можно написать для добавления нуля:
xor cx,cx
mov cl,data+1
mov bx,offset data
add bx,cx
add bx,2
mov byte ptr [bx],0
(либо инициализировать строку нулями при описании сегмента данных)
И затем открывать файл:
mov ax,3d00h
mov dx,offset data
add dx,2


Вопрос № 86.119
Здраствуйте уважаемые эксперты. Мой вопрос состоит в следующем:
Как считать информацию с текстового файла, и записать её в массив?
Отправлен: 09.05.2007, 09:47
Вопрос задал: Серов Игорь Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: IceWolf
Здравствуйте, Серов Игорь Владимирович!
Чтож, Windows так Windows.
Для считывания информации из тестового файла(и не только текстового и не только файла)применяется API-функция ReadFile/ReadFileEx. Приведу прототипы обоих:
BOOL ReadFile(

HANDLE hFile, // хэндл читаемого файла
LPVOID lpBuffer, // адрес буфера для считанных данных
DWORD nNumberOfBytesToRead, // количество читаемых байт
LPDWORD lpNumberOfBytesRead, // адрес DWORD'а куда будет помещено количество дествительно прочитанных байт
LPOVERLAPPED lpOverlapped // адрес структуры OVERLAPPED
);
Аналогично:
BOOL ReadFileEx(

HANDLE hFile, // handle of file to read
LPVOID lpBuffer, // address of buffer
DWORD nNumberOfBytesToRead, // number of bytes to read
LPOVERLAPPED lpOverlapped, // address of offset
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine // address of completion routine
);
Функция ReadFileEx является более современной.
Как всем этим пользоваться почитайте у Iczelion'а:
http://wasm.ru/article.php?article=1001012
Встроенных же средств для работы с тестовыми файлами в ассемблере(в отличие, например, от дельфи) нет.
Удачи!
---------
Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!
Ответ отправил: IceWolf (статус: 8-ой класс)
Ответ отправлен: 10.05.2007, 19:01


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное