Вопрос № 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