Вопрос № 51998: Здравствуйте, начал изучать ассемблер из Калашникова.
Никак не получается ассемблировать программу которую набрал потому что не знаю даже куда там нажимать. Может что нибудь подскажете, или может это все уже устарело и может есть какие-нибудь нов...Вопрос № 52020: Здравствуйте. Хотел бы у Вас спросить про регистр DS. В DS у нас содержится сегмент(текущий- к примеру 1234h). После перехода на сегмент 0BF00h мы достаём(pop DS) из стека уже сегмент 0BF00h, хотя мы его не сохраняли. Я нигде не вижу комманды push ds...Вопрос № 52040: Здравствуйте!Интересует вопрос программирования частотного модулятора звуковой карты.В инете нашёл только немного про AdLib.
Может есть исходник,как извлеч звук.У моей вроде 388h и 389h порты.
И ещё,можно ли немного про драйвера звуковых карт...
Вопрос № 51.998
Здравствуйте, начал изучать ассемблер из Калашникова.
Никак не получается ассемблировать программу которую набрал потому что не знаю даже куда там нажимать. Может что нибудь подскажете, или может это все уже устарело и может есть какие-нибудь новые программы с более удобным интерфейсом.
P.S. я новичок в этом деле
Отправлен: 13.08.2006, 13:29
Вопрос задал: ALEX1 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Волков Павел Юрьевич
Здравствуйте, ALEX1!
Вы можете скачать TASM (http://offffh.narod.ru/TASM5.ZIP, версия для DOS и Windows), но этот проект уже не развивается, поэтому возникнут трудности с использованием новых инструкций (и API функций для Windows), но для компиляции программ из рассылки Калашникова подойдет.
Также развивается очень удобный компилятор FASM (http://flatassembler.net/), приемущества: постоянно развивается, есть версия для DOS, Windows и семейства Unix, компактный, распространяется с исходниками, при создании программ для Windows совмещает в себе компилятор и линкер, при этом позволяя получить "объектный файл" для включения в другие проекты, последующей линковки. При этом, для выбора выходного формата достаточно указать это в исходнике (все настройки пишутся в исходнике). В пакете для Windows
добавлена документация на английском в формате PDF и небольшой редактор, выполняющий роль IDE. Вообщем куча приемуществ, выбор за Вами.
Вы не сообщили: каким компилятором пользуетесь. Не показали программу, которую пытаетесь компилировать или возникающие ошибки.
Процесс создания программ на ассемблере следующий:
1) создаем текст программы, в синтаксисе выбранного ассемблера, в любом текстовом редакторе в формате Plain Text, т.е. текст без форматирования.
2) в командной строке указываем параметры компилятора, подавая на вход исходный текст программы.
3) при создании EXE файлов проводим линковку, указав в параметрах полученный .OBJ файл.
Для автоматизации этого процесса можно создать .BAT или .CMD файл.
(Привожу фрагмент своего, для создания .com файлов в TASM 4.1)
Например, создаем файл build.cmd следующего содержания:
set name=%1
tasm /ml /la /z /m9 %name%.asm
tlink /t %name%.obj
del %name%.tr
del %name%.map
del %name%.obj
После этого, для компиляции исходника с именем urok1.asm, набираем: build urok1, т.о. вводим только имя файла, которое потом подставляется при компиляции и линковке.
--------- Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 6-ой класс)
Ответ отправлен: 13.08.2006, 14:51
Отвечает: EPDSota
Здравствуйте, ALEX1!
Можно использовать Fasmw (с www.flatassembler.net)... Хороший удобный ассемблер, правда имеющий чуть измененный синтаксис...
--------- Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 14.08.2006, 09:24
Вопрос № 52.020
Здравствуйте. Хотел бы у Вас спросить про регистр DS. В DS у нас содержится сегмент(текущий- к примеру 1234h). После перехода на сегмент 0BF00h мы достаём(pop DS) из стека уже сегмент 0BF00h, хотя мы его не сохраняли. Я нигде не вижу комманды push ds.Почему тогда в DS новый сегмент? Помогите пожалуйста. (Кусок программы из Калашникова "Virus13.asm")
Приложение:
Отправлен: 13.08.2006, 18:15
Вопрос задал: Chlux (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Басков Олег Владимирович
Здравствуйте, Chlux!
После выполнения jmp dword ptr cs:[off_move] управление передаётся по адресу 0BF00:(Offset Lab_jmp), т.е. CS=0BF00. Далее, команда PUSH CS сохраняет в стэк число 0BF00, а команда POP DS это число извлекает. Поэтому DS и становится равным 0BF00.
--------- Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Басков Олег Владимирович (статус: 1-ый класс)
Ответ отправлен: 13.08.2006, 23:20
Вопрос № 52.040
Здравствуйте!Интересует вопрос программирования частотного модулятора звуковой карты.В инете нашёл только немного про AdLib.
Может есть исходник,как извлеч звук.У моей вроде 388h и 389h порты.
И ещё,можно ли немного про драйвера звуковых карт.Спасибо.
Отвечает: Ковеленов Александр
Здравствуйте, ShinkevichDmitry!
Такие карты не выпускают уже лет десять, в вашем случае можно использовать какой-нибудь эмулятор, например DOSBOX. Вообще в инете мало нормальной информации по программированию аппаратуры, в книге Зубкова об этом есть немного инфы.
Ответ отправил: Ковеленов Александр (статус: 2-ой класс)
Ответ отправлен: 14.08.2006, 15:12