Вопрос № 98443: Народ! Давно хотел научиться программировать на ассемблере и вот наконец нашел довольно интересный сайт Олега Калашникова. Собственно у меня вопрос такой по первой части книги первому заданию и даже не один:
1: в строке mov ax, 9 мы пишем именн...Вопрос № 98445: А где лучше компилировать виндовые проги, написанные на асме? Assembler constructor не компилирует, Source Insight там вообще такого слова нет "compile". Только MASM если можно не предлагайте. Мне нужно, чтобы одну кнопку нажал - и текст на...Вопрос № 98458: Доброе время суток, уважаемые эксперты. Помогите разобраться. Я разобрался как работает lpt порт,
узнал его адрес. Но на компьютере есть ещё много портов i/o. Подскажите где взять оффициальную документацию на них, чтоб узнать по какому адресу к ним о...Вопрос № 98459: Доброе время суток, уважаемые эксперты. Подскажите в чём проблема. Написал прогу для работу с lpt портом нормально работает в 98, а в 2000 выкидывает. В чём прикол? Спасибо....Вопрос № 98479: Первая программа в книге
Калашникова"Ассемблер это просто"с выводом 'Hello,world'получаютолькоL1asm.objComфайла,нет,получаю"Assembling:L1.ASMfatal,errorA1020:cannotfindLink.exe'операциционкXPпытался(пуск выполнить,cmd)в,этомокнетоже...
Вопрос № 98.443
Народ! Давно хотел научиться программировать на ассемблере и вот наконец нашел довольно интересный сайт Олега Калашникова. Собственно у меня вопрос такой по первой части книги первому заданию и даже не один:
1: в строке mov ax, 9 мы пишем именно 9? И почему при замене на, к примеру, 10 строка не выводится?
2: в строке с сообщением и ежу все понятно, только вот что означают буквы "db"? :)
Заранее благодарен! :-)
Отправлен: 15.08.2007, 05:51
Вопрос задал: Yoyo (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Yoyo!
1)это две разные функции(номер функции определяется регистром АН)
Функция DOS 09h — Записать строку в STDOUT с проверкой на Ctrl-Break
Ввод: АН = 09h
DS:DX = адрес строки, заканчивающейся символом $ (24h)
Вывод: Никакого, согласно документации, но на самом деле: AL = 24h (код последнего символа)
Функция DOS 0Ah — Считать строку символов из STDIN в буфер
Ввод: АН = 0Ah
DS:DX = адрес буфера
Вывод: Буфер содержит введенную строку
2)это директивы компилятора позволяющие включить данные в программу:
DB — определить байт;
DW — определить слово (2 байта);
DD — определить двойное слово (4 байта);
DF — определить 6 байт (адрес в формате 16-битный селектор: 32-битное смещение);
DQ — определить учетверенное слово (8 байт);
DT — определить 10 байт (80-битные типы данных, используемые FPU).
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
А где лучше компилировать виндовые проги, написанные на асме? Assembler constructor не компилирует, Source Insight там вообще такого слова нет "compile". Только MASM если можно не предлагайте. Мне нужно, чтобы одну кнопку нажал - и текст на асме скомпилировался в exe. Меня не интересуют obj-файлы и т. п. Radasm например подойдет для этого?
Отправлен: 15.08.2007, 06:40
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Blackie!
Посмотрите на WASM.RU компилятор FASM ( встроенная среда разработки ), синтаксис несколько отличается от интеловского, но можно писать 16-ти и 32-х битные программы.
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Отвечает: IceWolf
Здравствуйте, Blackie!
Среды разработки они же IDE: Наиболее распространённая -RadAsm www.radasm.com ,также присмотритесь к WinAsm www.winasm.net ,Chrome http://perso.orange.fr/franck.charlet/ , qeditor из MASM32, MasmBuilder http://mbuilder.jino-net.ru/
Все эти программы имеют возможность компиляции в один клик, даже QEditir, который входит в пакет MASM32 (лежит в папке /masm32). Ну и конечно же редактор FASM'а если вы выберете именно этот ассемблер.
Как видите, выбор есть, главное подобрать наиболее удобную для себя IDE.
Удачи!
--------- И да поможет вам F1, и да сохранит вас F2!
Ответ отправил: IceWolf (статус: 10-ый класс)
Ответ отправлен: 16.08.2007, 00:24 Оценка за ответ: 5
Вопрос № 98.458
Доброе время суток, уважаемые эксперты. Помогите разобраться. Я разобрался как работает lpt порт, узнал его адрес. Но на компьютере есть ещё много портов i/o. Подскажите где взять оффициальную документацию на них, чтоб узнать по какому адресу к ним обращаться. Или посоветуйте книжку. Спасибо.
Отвечает: Dr.Alex
Здравствуйте, Александр Михайлович!
Почитай книжку "Робер Журден. Справочник программиста на персональном компьютере фирмы IBM" есть на lib.ru. Это классика. Я думаю ты найдешь там многое.
Ответ отправил: Dr.Alex (статус: 10-ый класс)
Ответ отправлен: 15.08.2007, 10:24
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Александр Михайлович!
Доброе время суток, уважаемые эксперты. Подскажите в чём проблема. Написал прогу для работу с lpt портом нормально работает в 98, а в 2000 выкидывает. В чём прикол? Спасибо.
Отвечает: Dr.Alex
Здравствуйте, Александр Михайлович!
Все NT-подобные системы (2000, XP ,Vista) в качестве защиты не позволяют напрямую обращаться к портам ввода-вывода, будь то LPT или COM. Для прямого обращения есть в сети куча бесплатных библиотек. Правда для Дельфина, но они с исходниками и можно посмотреть как это делается. Например DirectPort или DlPortIo.
Ответ отправил: Dr.Alex (статус: 10-ый класс)
Ответ отправлен: 15.08.2007, 10:17
Отвечает: IceWolf
Здравствуйте, Александр Михайлович!
В приложении код для работы с LPT портом. Пример взял отсюда (URL ftp://ftp.radio.ru/pub/2006/03/cpuhl.zip) и убрал лишнее.
Удачи!
Приложение:
--------- И да поможет вам F1, и да сохранит вас F2!
Ответ отправил: IceWolf (статус: 10-ый класс)
Ответ отправлен: 16.08.2007, 01:16
Вопрос № 98.479
Первая программа в книге Калашникова"Ассемблер это просто"с выводом 'Hello,world'получаютолькоL1asm.objComфайла,нет,получаю"Assembling:L1.ASMfatal,errorA1020:cannotfindLink.exe'операциционкXPпытался(пуск выполнить,cmd)в,этомокнетожесамое
Отвечает: IceWolf
Здравствуйте, Юрченко Павел Александрович!
Можно, например, скопировать link.exe в ту папку, из которой запускаете masm (та что в приглашении cmd.exe, где вводите команды).
Много раз уже задавались в рассылку подобные вопросы. Пользоваться поиском люди так и не научились...
http://rusfaq.ru/?Step=search&ID0=&String=cannot+find+link.exe&ID=
http://rusfaq.ru/?Step=search&ID0=5&String=ассемблирование&ID=