4. Программный эмулятор (виртуальный пк) Emu8086
Emu8086 сочетает в себе мощный редактор исходного кода, ассемблер, дизассемблер, программный эмулятор (виртуальный ПК) с отладчиком. Эмулятор выполняет программы на виртуальном ПК, который полностью исключает возможность доступа из вашей программы к реальным аппаратным средствам, таким как жесткие диски и память.
Машинный код 8086 полностью совместим со всеми последовавшими за ним поколениями микропроцессоров Intel, включая Pentium III и Pentium. Это делает код 8086 очень привлекательным, так как он выполняется как на старых, так и на современных компьютерных системах.
Использование эмулятора Emu8086.
Напечатайте ваш код программы внутри текстовой области. Чтобы загрузить код в эмулятор, щелкните кнопку "Emulate".
В окне памяти (memory) перечисляют первую строку - смещение, вторая строка - значение hexadecimal, третья строка - десятичное значение, и последняя строка - значение символа ASCII.
Кнопка [Single Step] выполняет команды, один за другим останавливающие после каждой команды.
[Run] кнопка выполняет команды один за другим с задержкой, установленной задержкой шага между командами.
Дважды щелкните на текстовых полях регистра, открывается окно "Extended Viewer " со значением того регистра, преобразованного ко всем возможным формам. Вы можете изменять значение регистра непосредственно в этом окне.
Компиляция кода Ассемблера
Напечатайте ваш код внутри текстовой области и щелкните кнопку [Compile]. Вас спросят, где сохранить откомпилированный файл. После завершения компиляции вы можете щелкнуть кнопку [Emulate] для загрузки откомпилированного файла в эмулятор.
Синтаксис ассемблера
По умолчанию, число в программе воспринимается ассемблером как десятичное. Чтобы обозначить двоичное число, необходимо к нему в конце добавить символ ’b’. Восьмеричное число обозначается аналогично с помощью символа ’o’. Для записи шестнадцатеричного числа эмулятор поддерживает 3 формы записи:
-
перед числом записываются символы ’0x’ (как в C/C++);
-
перед числом записывается символ ’$’ (как в Pascal);
-
после числа записывается символ ’h’. Если шестнадцатеричное число начинается с буквы, необходимо добавить в начале ноль (иначе непонятно, число это или имя метки).