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

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


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

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

Выпуск № 640
от 26.12.2006, 03:35

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


Вопрос № 67824: Нужно написать драйвер для любого устройства (лучше для мыши, видио, принтера - короче че-нить полегче) Для винды или доса (лучше первое) Может у кого есть что-нить подобное помогите плиз. Так же приветсвуються ссылки на электронные ...
Вопрос № 67895: Приветствую! вопрос по терминологии. Например, есть пакет TASM, в нём программа tasm.exe - это ассемблер. Правильно называть её транслятором или компилятором? Как ещё можно назвать эту программу? ...
Вопрос № 67902: Здравствуйте ! У меня есть два com файла скомпилированные (без ключей) в TASM. Я хочу написать программу , которая склеивает два файла. Тоесть получается файл размером в два предыдущих. Сначала выполняется первый com файл, а за ним сразу второй. Возм...

Вопрос № 67.824
Нужно написать драйвер для любого устройства (лучше для мыши, видио, принтера - короче че-нить полегче)
Для винды или доса (лучше первое)
Может у кого есть что-нить подобное помогите плиз.

Так же приветсвуються ссылки на электронные книги, статьи
и на все что может помоч в этом нелегком деле.

PS. Препод абсолютно ничегог не объяснил и инфы никакой не дал...
PPS я чуть-чуть знаю TASM для доса
Отправлен: 20.12.2006, 12:40
Вопрос задал: ~Steep~ (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Евгений Иванов
Здравствуйте, ~Steep~!

http://eugene-ivanov.narod.ru esearch_mou3.htm


---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 20.12.2006, 12:47

Отвечает: Волков Павел Юрьевич
Здравствуйте, ~Steep~!

http://wasm.ru/docs/1/kmdtut.zip
KmdTut by Four-F
Сборник знаменитых статей Four-F по разработке драйверов на MASM под Windows 2k+. Любой, кто хочет заниматься драйверами под Windows, ОБЯЗАН это прочесть.
Домашняя страница: http://www.wasm.ru
Размер: 396.43 kb
---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 10-ый класс)
Ответ отправлен: 21.12.2006, 06:39


Вопрос № 67.895
Приветствую!
вопрос по терминологии. Например, есть пакет TASM, в нём программа tasm.exe - это ассемблер. Правильно называть её транслятором или компилятором? Как ещё можно назвать эту программу?
Отправлен: 20.12.2006, 21:04
Вопрос задал: Вiктор (статус: 10-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Вiктор!

Это Ассемблер. И ни капли меньше.

Он преобразует исходник в объектный файл.

С натяжкой можно его причислить к компилятору.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 20.12.2006, 21:10

Отвечает: ~Steep~
Здравствуйте, Вiктор!

Это Ассемблер!
tasm.exe - компилятор
link.exe линкер

компилятор преобразует текст программы в машинные коды, затем линкером можно сделать приложение
транслятор же сразу запускает созданное приложение (из кодов), но скорость работы программы от этого страдает
---------
Все всегда делаеться к Лучшему!
Ответ отправил: ~Steep~ (статус: 2-ой класс)
Ответ отправлен: 21.12.2006, 15:49

Отвечает: Брона Вячеслав
Доброго дня, Вiкторе!

Я-би радше називав TASM і MASM трансляторами. Вони-бо тільки виконують "переклад" з буквенного або символічного написання команд (що врешті і є суттю асемблера) в машинні коди.
Звичайно, і TASM і MASM виконують дещо більше ніж трансляцію і їх функціональність набагато ширша ніж в трансляторах з Асемблера ЄС-ок - от ті, так дійсно нічого більше крім трансляції команд не виконують.
А компіляторами я-би називав більш інтелектуальні засоби. Які, наприклад, здійснюють "переклад" з мов "високого рівня" в машинний код.
Ответ отправил: Брона Вячеслав (статус: 1-ый класс)
Ответ отправлен: 21.12.2006, 21:08


Вопрос № 67.902
Здравствуйте ! У меня есть два com файла скомпилированные (без ключей) в TASM. Я хочу написать программу , которая склеивает два файла. Тоесть получается файл размером в два предыдущих. Сначала выполняется первый com файл, а за ним сразу второй. Возможно ли это осуществить ? Я пробовал просто дописать код второго файла в конец первого, но при запуске выполняется только первый файл.
Отправлен: 20.12.2006, 21:59
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Евгений Иванов
Здравствуйте, Whiteman!

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

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 20.12.2006, 22:37
Оценка за ответ: 4
Комментарий оценки:
Ниче не понял

Отвечает: IceWolf
Здравствуйте, Whiteman!
В принципе возможно, но:
1. В одной программе может быть несколько точек выхода, т.е. передаёте управление первому файлу, а он выполняет int 20h /fn 00h int21h /fn 4ch int 21h /sp=0fffeh ret
Решение:перехватывать соответствующие прерывания.
2. Смещения в .com рассчитываются исходя из того, что адрес загрузки-CS:100h
Решение:после выполнения перевой программы записать поверх неё вторую и передать ей управление.
Предлагаю сразу после первой программы поместить вторую, просле второй-наш код. А первые байты первой программы(естественно, предварительно сохранив их) заменяем на jmp на наш код. Там перехватываем прерывания, восстанавливаем байты и jmp на код первой проги. Когда она завершится управление перейдёт к нашему обработчику(его также помещаем в конце, после двух программ), он копирует код второй программы на место первой(CS:100h), восстанавливает векторы прерываний и передает управление на CS:100h.
Не забывайте про суммарный размер-64kb, а также про стек, что рестет снизу, и может затереть наш код.
Как видете, не всё так просто, как кажется на первый взгляд.
План действий я наметил, дальше, надеюсь, справитесь.
С уважением, IceW0|f.

---------
Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!
Ответ отправил: IceWolf (статус: 5-ый класс)
Ответ отправлен: 22.12.2006, 02:24


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

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

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

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

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

В избранное