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

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


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

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

Выпуск № 890
от 29.10.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 374, Экспертов: 20
В номере:Вопросов: 2, Ответов: 4


Вопрос № 106546: Уважаемые эксперты, не могли бы Вы мне подсказать как вот эту команду Loop $-10 преобразовать в машинный код. И если можно объясните поподробнее. И еще скажите, пожалуйста, для чего используется знак $ (что он означает?) Спасибочки!!!:-)...
Вопрос № 106634: здраствуйте... я только начиная изучения програмирывания и вот у меня возник вопрос... на какой програме лучше програмирывать асемблер???? и в чём отличие ехе файлов от сом???? ответе срочно..... За рание спасибо!!!! ..

Вопрос № 106.546
Уважаемые эксперты, не могли бы Вы мне подсказать как вот эту команду Loop $-10 преобразовать в машинный код. И если можно объясните поподробнее. И еще скажите, пожалуйста, для чего используется знак $ (что он означает?) Спасибочки!!!:-)
Отправлен: 24.10.2007, 00:24
Вопрос задала: Алена (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: AxeL
Здравствуйте, Алена!
Знак $ обозначает "текущая строка", т.е. вместо знака $ компилятор подставит текущую строку машинного кода.
Преобразовать выражение Loop $-10 в машинный код можно, выражение Loop $-10 означает повторить операторы, начинающиеся на 10 байт машинного кода ранее.

Приложение:

Ответ отправил: AxeL (статус: 1-ый класс)
Ответ отправлен: 24.10.2007, 03:33
Оценка за ответ: 5
Комментарий оценки:
Спасибо,AxeL! Значит Loop $-10 это есть E2EE? Правильно?

Отвечает: Овчинников Алексей
Здравствуйте, Алена!
машинный код этой команды E2F4
E2- код команды loop(цикл)
F4- число которе процессор должен(это отрицательное число=-12)
прибавить k IP.
Коаманда Loop насколько мне известно
оперирует только однобайтовыми операторами.
Т.е. модет адресовать не более чем на 127 ходов.
$- оператор ассемблера всегда равен
адресу того места в программе где он расположен.
Компилятор при компиляции вместо него подставляет текущее значение
в программе.
Вобще не знаю как на других компиляторах,
но но на Fasm эта команда компилилируется
прямо в таком виде как вы написали.
---------
Любая задача имеет бесконечное множество решений
Ответ отправил: Овчинников Алексей (статус: 2-ой класс)
Ответ отправлен: 24.10.2007, 18:17
Оценка за ответ: 5


Вопрос № 106.634
здраствуйте... я только начиная изучения програмирывания и вот у меня возник вопрос... на какой програме лучше програмирывать асемблер???? и в чём отличие ехе файлов от сом???? ответе срочно..... За рание спасибо!!!!
Отправлен: 24.10.2007, 18:34
Вопрос задал: Dimon999 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: AxeL
Здравствуйте, Dimon999!
Компилятор и тип программы выбтрается из потребностей и/или возможностей.
В общем случае используется TASM для 16-ти разрядных приложений, MASM для 32-х разрядных приложений.
EXE файлы от COM отличаются структурой и максимальным размером. COM файлы не могут превышать 64k и по сравнению с EXE файлами имеют меньший размер. В приложении две программы (EXE и COM), выполняющие одно и тоже: выводят строку 'Message' и ждут нажатия клавиши, после чего завершаются. Размеры данных программ: COM - 21 байт, EXE - 1466 байт.

Приложение:

Ответ отправил: AxeL (статус: 1-ый класс)
Ответ отправлен: 25.10.2007, 05:40
Оценка за ответ: 5

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

1) Вам нужен редактор для написания программ:
Notepad++ или PsPad которые поддерживают несколько кодировок в том числе и Dos. Можно обойтись и стандарным блокнотом Windows, но тогда будьте готовы увидеть "крякозяблы" вместо русского текста.

2) Вам нужен компилятор masm 5.10 или masm 6.11 или tasm 4.10, все перечисленное 16-ти битные версии для Dos. Для Windows 32-ух битные версии Вы найдете на www.wasm.ru. Отдельно хочу упомянуть Fasm - один компилятор создает программы и для Dos и для Windows.

3) Вам нужно несколько книг: С. Зубков или тут есть класические труды или тут много разнообразных книг по ассемблеру. Я думаю лутше иметь одну бумажную версию книги т.к. электронные версии иногда бывают не полными.

ЕХЕ-файл отличается от СОМ-файла наличием заголовка программы. Для СОМ-файлов этот заголовок стандарный и его заполняет сама операционная система т.к. используется один сегмент для кода, данных и стека максимум 64 кб. У ЕХЕ-файлов есть специальный заголовок который позволяет настроить сегменты (их может быть несколько) кода и(или) данных (тоже может быть несколько). Windows-программа имеет два заголовка Dos (ещё называемый MZ-заголовок) и Windows (называемый PE-заголовок). Поэтому и размеры ЕХЕ-файлов больше.

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 25.10.2007, 21:20
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное