Главная страница
Навигация по странице:

  • Number Convertor - преобразователь чисел

  • 8-ми битовыми

  • 32 битов

  • 0FFFFFFFFh

  • Signed

  • Number Convertor

  • Single Step

  • Ctrl + C

  • Emu8086 Запускаем программу Emu8086 и создаём новый файл через меню file new com template (Файл Новый Шаблон файла com). В редакторе исходного кода после этого мы увидим следующее Рис. Создание нового файла в Emu8086


    Скачать 251.21 Kb.
    НазваниеEmu8086 Запускаем программу Emu8086 и создаём новый файл через меню file new com template (Файл Новый Шаблон файла com). В редакторе исходного кода после этого мы увидим следующее Рис. Создание нового файла в Emu8086
    Дата05.04.2018
    Размер251.21 Kb.
    Формат файлаdocx
    Имя файлаEmu8086.docx
    ТипДокументы
    #40430
    страница2 из 10
    1   2   3   4   5   6   7   8   9   10

    Системы счисления


    В Emu8086 имеются некоторые удобные инструменты для преобразования чисел и вычисления любых числовых выражений. Все их можно увидеть, выбрав пункт меню Math: 

    преобразование в emu8086

    Number Convertor - преобразователь чисел позволяет вам преобразовывать числа из любой системы в любую систему. Просто напечатайте значение в любом текстовом поле и это значение будет автоматически преобразовано во все другие системы. Вы можете работать как с 8-ми битовыми, так и с 16-ти битовыми значениями. 

    Expression Evaluator - вычисление выражений может быть использовано для вычислений выражений, в которых имеются числа, представленные в различных системах счисления, и преобразования чисел из одной системы в другую. Напечатайте выражение и нажмите ENTER. Результат появится в выбранной системе счисления. Вы можете работать со значениями до 32 битов. Если установлен флажок Signed, то программа будет считать все значения знаковыми (+ или -), кроме десятичных чисел и двойных слов. Двойное слово всегда расценивается как знаковое значение, поэтому 0FFFFFFFFh преобразуется в -1.
    Например, вы хотите вычислить: 0FFFFh * 10h + 0FFFFh (максимальное местоположение памяти, доступное процессору 8086). Если вы установите флажки Signed и Word, вы получите -17 (потому что выражение будет вычислено как (-1) * 16 + (-1) . Чтобы выполнить вычисления без знака, уберите флажок Signed, тогда выражение будет вычислено как 65535 * 16 + 65535 и вы должны получить 1114095
    Вы можете также использовать Number Convertor для преобразования не десятичных чисел, знаковых десятичных значений, и выполнять вычисления с десятичными значениями (если это для вас проще). 

    Эти операции поддерживаются:


    НЕ (инвертирует все биты).

    * умножение.

    / деление.

    % модуль.

    + сумма.

    - вычитание (и унарный минус).

    << сдвиг влево.

    >> сдвиг вправо.
    & логическое И.

    ^ исключающее ИЛИ.

    | логическое ИЛИ.


    Двоичные числа должны иметь суффикс "b", например:
    00011011b

    Шестнадцатиричные числа должны иметь суффикс "h", и начинаться с нуля
    если первая цифра - это буква (A..F), например:
    0ABCDh

    Восьмеричные (основа 8) числа должны иметь суффикс "o", например:
    77o

    Команда MOV 



    • Копирует второй операнд (источник) в первый операнд(приемник).

    • Операнд-источник может быть непосредственным значением, регистром общего назначения или местоположением памяти.

    • Регистр-приемник может быть регистром общего назначения или местоположением памяти.

    • Оба операнда должны иметь одинаковый размер байта или слова.

    Эти типы операндов поддерживаются:

    MOV регистр, память
    MOV память, регистр
    MOV регистр, регистр
    MOV память, непосредственное значение (число)
    MOV регистр, непосредственное значение

    регистр: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.

    память: [BX], [BX+SI+7], переменная, и т.п...

    непосредственное значение: 5, -24, 3Fh, 10001101b, и т.п...




    Для сегментных регистров поддерживаются только эти типыMOV:

    MOV сегментный регистр, память
    MOV память, сегментный регистр
    MOV регистр, сегментный регистр
    MOV сегментный регистр, регистр

    сегментный регистр: DS, ES, SS, и только как второй операнд: CS.

    регистр: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.

    память: [BX], [BX+SI+7], переменная и т.п...


    Команда MOV не может использоваться для установки значений регистров CS и IP



    Здесь короткая программа, которая демонстрирует использование команды MOV:
    #MAKE_COM# ; команда компилятору для создания СОМ-файла.

    ORG 100h ; директива, необходимая для COM-программы.

    MOV AX, 0B800h ; установить AX в шестнадцатиричное значение B800h.

    MOV DS, AX ; копировать значение из AX в DS.

    MOV CL, 'A' ; установить в CL ASCII-код символа 'A', т.е. 41h.

    MOV CH, 01011111b ; установить CH в двоичное значение.

    MOV BX, 15Eh ; установить BX в 15Eh.

    MOV [BX], CX ; копировать содержимое из CX в память с адресом B800:015E

    RET ; вернуться в операционную систему.



    Вы можете скопировать и вставить вышеописанную программу в редактор кода Emu8086, и нажать кнопку [Compile and Emulate] (или нажать клавишу F5 на клавиатуре).

    Окно эмулятора должно открыться с загруженной программой. Щелкните кнопку [Single Step] (пошаговый режим) и наблюдайте за содержимым регистров.

    Как скопировать и вставить



    1. Выделите техт программы с помощью мыши: щелкните перед текстом и, не отпуская кнопки, продвигайте мышь, пока не будет выделен нужный текст.

    2. Нажмите комбинацию клавиш Ctrl + C для копирования.

    3. Перейдите в редактор кода Emu8086 и нажмите комбинацию клавиш Ctrl + V, чтобы вставить текст.

    Как вы могли догадаться, точка с запятой (";") используется для комментариев. Все символы, которые следуют за ";", игнорируются компилятором.

    Вы должны увидеть нечто подобное, когда программа закончит свою работу:

    вывод символа на экран 

    Фактически, вышеописанная программа записывает данные непосредственно в видеопамять, так что MOV - это очень мощная инструкция. 
    1   2   3   4   5   6   7   8   9   10


    написать администратору сайта