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

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


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

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

Выпуск № 536
от 05.09.2006, 12:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 342, Экспертов: 28
В номере:Вопросов: 5, Ответов: 6


Вопрос № 53792: Доброго дня! Консоль дает: C:MASM611BIN>ML.EXE Prog06.asm /AT Microsoft (R) Macro Assembler Version 6.11 Copyright (C) Microsoft Corp 1981-1993. All rights reserved. Assembling: Prog06.asm error A4910: can...
Вопрос № 53801: Здравствуйте. У меня такой вопрос : как с помощью команды outs вывести данные на принтер, если он подключен к USB ? И вообще как узнать номер порта USB ?...
Вопрос № 53815: Меня интересует вопрос как запустить MASM 6.1 закачанный с сайта Калашникова Сам MASM.exe открываться отказывается, открывается только CREF.exe - все остальное мелькнув пропадает. Мне нужно ассемблировать код - все по вашей книге, но непонятн...
Вопрос № 53834: Здравствуйте. Пишу звуковой редактор, а в нем работа с микрофоном и все такое, вот только звуковая карта у меня в шине PCI а как с неи работать не знаю.Подскажите как получить доступ к шине PCI и к ее портам....
Вопрос № 53863: Ассемблер изучил благодаря статьям Олега Калашникова! Выражаю за это ему великую длагодарность! С помощью статей также научился исследовать программы в отладчике (OllyDBG,Turbo Debuger). Но вот какие команды я могу задавать в командной ст...

Вопрос № 53.792
Доброго дня!

Консоль дает:

C:MASM611BIN>ML.EXE Prog06.asm /AT
Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.

Assembling: Prog06.asm
error A4910: cannot open file: C:MASM611BINML.err
fatal error A1020:
вот такая ошибка. Wind XP home. код писал под TASM. в нем всё идет.

попробовал так:

C:MASM611BIN>masm.exe Prog06.asm
Microsoft (R) MASM Compatibility Driver
Copyright (C) Microsoft Corp 1993. All rights reserved.

Invoking: ML.EXE /I. /Zm /c /Ta Prog06.asm

Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.

Assembling: Prog06.asm

C:MASM611BIN>

объектный файл создался. Но я так понял что для этой версии linkera отдельного нет?
А вот почему ml.exe перманентно выдает вышеуказанную ошибку?

Инсталяцию проводил под Windows NT. Mожет попробовать переставить масм?
Отправлен: 30.08.2006, 17:35
Вопрос задал: Эдвардас (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Волков Павел Юрьевич
Здравствуйте, Эдвардас!
error A4910: cannot open file: C:MASM611BINML.err
в папке нет этого файла, вот мой (http://slil.ru/23073396) из masm7, положите в папку с компилятором.
---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 7-ой класс)
Ответ отправлен: 30.08.2006, 18:07


Вопрос № 53.801
Здравствуйте. У меня такой вопрос : как с помощью команды outs вывести данные на принтер, если он подключен к USB ?
И вообще как узнать номер порта USB ?
Отправлен: 30.08.2006, 18:38
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Xaud
Здравствуйте, Whitemen!

Если принтер подключен к USB, то так просто вывести данные на принтер не получится.
Использовать USB принтер под DOS маловероятно (врят ли у вас есть такие драйверы), а под Windows, если NT - произойдет исключение (т.к. команды outs и ей подобные запрещены для рядовых приложений), если 9х - то ничего дельного не выйдет.
Дело в том что для каждого принтера USB кроме определнных правил передачи данных через интерфейс (USB) - существуют свои прикладные протоколы, известные только разарботчикам, принтеру и его драйверам. Поэтому, даже найдя в DOS'е нужный номер порта USB, принтер ничего дельного не выдаст, собственно как и в Windows 9x.
Вообще для любого Windows'a все делается без заморочек и гораздо проще:

Вариант 1:
1. Создаем новый DC, ассоциированный с соответтсвующим принтером,
2. Определяем возможнотси принтера (может печатать только текст, еще и графику и пр.)
3. Рисуем на нем все, что хотим, или что принтер сможет отобразить
4. Отправляем на принтер (указываем разбиение на странички, выравнивание и т.п.)
5. Удаляем DC

Вариант 2:
1. Запрашиваем DC нужного принтера у Windows,
2. Определяем возможнотси принтера,
3. Рисуем на DC и пр.
4. Печатаем.
5. Освобождаем DC.
Ответ отправил: Xaud (статус: 1-ый класс)
Ответ отправлен: 30.08.2006, 21:48

Отвечает: EPDSota
Здравствуйте, Whitemen!

Командой outs вывести на USB ничего нельзя... Через порты компьютера можно только настроить сам USB порт... А все передаваемое внешним устройствам находиться в ОЗУ...
Номер порта USB можно узнать только:
1. Если устройство единственное, то просмотреть порты на присутствие какого-либо устройства (прочитать регистр статуса (обычно по адресу адрес USB платы на PCI шине+0x40+номер порта*4))...
---------
Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 01.09.2006, 09:45


Вопрос № 53.815
Меня интересует вопрос как запустить MASM 6.1 закачанный с сайта Калашникова
Сам MASM.exe открываться отказывается, открывается только CREF.exe - все остальное мелькнув пропадает.
Мне нужно ассемблировать код - все по вашей книге, но непонятно все равно как это сделать если проги не желают открываться.
Посоветуйте что-нибудь или подробно как сделать.
Заранее спасибо.
P.S. У меня Windows XP
Отправлен: 30.08.2006, 21:44
Вопрос задал: Destroyer (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Xaud
Здравствуйте, Destroyer!

Судя по вашему описанию проблемы, дело даже не в том, что файлы не открываются, или не запускаются программы, а в том, что эти программы консольные.

Для ХР это значит, что программе выделяется динамически консоль, после отображения информации в которую, программа завершается, а эта консоль более никакими другими приложениеми не используется, потому Windows и закрывает ее.

Для того, чтобы избежать таких проблем, нужно в начале запустить командный интерпретатор (CMD.EXE или можно COMMAND.COM из %каталог_Windows%system32), а уже в появившейся консоли набарть путь и имя требуемой программы.

Или проще, в FAR или Total Commander в командной строке пишем "cmd /k " (обязательно с пробелом после /k), наводим курсор в файловой панели на нужную программу и нажимаем CTRL+ENTER, потом просто ENTER и наслаждаемся результатом.
Ответ отправил: Xaud (статус: 1-ый класс)
Ответ отправлен: 01.09.2006, 16:16


Вопрос № 53.834
Здравствуйте. Пишу звуковой редактор, а в нем работа с микрофоном и все такое, вот только звуковая карта у меня в шине PCI а как с неи работать не знаю.Подскажите как получить доступ к шине PCI и к ее портам.
Отправлен: 31.08.2006, 02:13
Вопрос задал: Alex8711 (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: EPDSota
Здравствуйте, Alex8711!

Вывод данных в регистр платы на PCI шине:

mov dx,0cf8h;регистр конфигурации PCI
mov eax,080000000h+(BUS shl 16 - шина, где расположено устройство)+(DEV shl 11 номер устройства)+(FUNC shl 8 номер йункции устройства для многофункциональных плат)+(адрес данных для записи на PCI заголовке устройства);
out dx,eax
mov eax, (данные для записи)
mov dx,0cfch;регистр данных PCI
out dx,eax

Чтение данных устройства с PCI шины:

mov dx,0cf8h;регистр конфигурации PCI
mov eax,080000000h+(BUS shl 16 - шина, где расположено устройство)+(DEV shl 11 номер устройства)+(FUNC shl 8 номер йункции устройства для многофункциональных плат)+(адрес данных для записи на PCI заголовке устройства);
out dx,eax;Настроим адрес для приема
mov dx,0cfch;регистр данных PCI
in eax,dx;принять данные

---------
Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 01.09.2006, 10:05
Оценка за ответ: 5


Вопрос № 53.863
Ассемблер изучил благодаря статьям Олега Калашникова!
Выражаю за это ему великую длагодарность!
С помощью статей также научился исследовать программы в отладчике (OllyDBG,Turbo Debuger).
Но вот какие команды я могу задавать в командной строке, как ставить брейкпоинты в Olly, я увы не знаю. Хотелось бы узнать подробнее по работе этого отладчика!
Вопрос: Какую книгу мне необходимо купить или скачать с сайта статью о подробном описании работы замечательного отладчика OllyDBG?
Олег помоги!
За раннее буду Вам благодарен!!!
Николай г.Волгоград
Отправлен: 31.08.2006, 11:31
Вопрос задал: Луковкин Николай Иванович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Волков Павел Юрьевич
Здравствуйте, Луковкин Николай Иванович!
Команды в OllyDbg соответствуют командам в отладчике SoftIce.

Перевод на русский для OllyDbg:
http://cracklab.ru/download.php?action=list&n=MjU=

На русском для SoftIce:
http://rapidshare.de/files/31505216/si_ug_ru.rar.html
979 KB
[если надо залить через другой обменник, пишите в ПМ ]



---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 7-ой класс)
Ответ отправлен: 01.09.2006, 07:13


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное