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

  • 4.2. Чем отличаются команды ADD и ADC

  • 4.3. Где сохраняется перенос, возникающий при выполнении операции сложения

  • 4.5. Какую операцию выполняет команда SBB Вычитание с учётом переноса.4.6. Какие операнды могут иметь команды INC и DEC

  • 4.7. Можно ли использовать в команде сложения или вычитания операнды разной длины

  • 4.9. Каким двум командам эквивалентна команда NEG NOT и SUB.4.10. Где могут располагаться операнды для выполнения умножения

  • 4.11. Чем определяется длина произведения при умножении

  • 4.13. Как умножить и разделить на константу

  • Архитектура ЭВМ 4 лабораторная. Вопрос Сколько операндов могут иметь команды арифметических операций для процессора К1810ВМ86 (I8086)


    Скачать 25.68 Kb.
    НазваниеВопрос Сколько операндов могут иметь команды арифметических операций для процессора К1810ВМ86 (I8086)
    АнкорАрхитектура ЭВМ 4 лабораторная
    Дата17.10.2021
    Размер25.68 Kb.
    Формат файлаrtf
    Имя файлаАрхитектура ЭВМ 4 лабораторная.rtf
    ТипДокументы
    #249177

    4.1.
    Вопрос:


    Сколько операндов могут иметь команды арифметических операций для процессора К1810ВМ86 (I8086)?
    Ответ:

    Команды ADD, ADC, SUB, SBB и CMP содержат два операнда приемник (регистр общего назначения, сегментный регистр или переменная), источник (непосредственный операнд, регистр общего назначения, сегментный регистр или переменная), причем разрядность операндов должна совпадать

    Команды IMUL, MUL, IDIV и DIV - имеют один операнд - источник (регистр общего назначения или переменная). Считается, что приемником будут регистры: AH:AL, DX:AX(до выполнения команд в них должен быть размещен второй операд- делимое или умножаемое)- используемый вариант зависит от разрядности источника (8 или 16).

    Команды INC, DEC, NEG - имеет один операнд - приемник (регистр общего назначения или переменная), т.к. считается это должны быть данные фиксированного размера(байт или слово).

    4.2. Чем отличаются команды ADD и ADC?
    Команда ADD производит простое суммирование операндов. Команда ADC производит суммирование операндов и значения флага CF, что позволяет производить суммирование больших чисел, которые не помещающихся в указанные размеры операндов.

    4.3. Где сохраняется перенос, возникающий при выполнении операции сложения?
    Устанавливается флаг CF.

    4.4. Какие типы операндов могут использоваться в качестве dst и в качестве src в операциях сложения и вычитания?
    dst: регистровые, адресные

    src: регистровые, адресные, непосредственные

    4.5. Какую операцию выполняет команда SBB?
    Вычитание с учётом переноса.

    4.6. Какие операнды могут иметь команды INC и DEC?
    Операнды в виде значений регистра.

    4.7. Можно ли использовать в команде сложения или вычитания операнды разной длины?
    Есть инструкции, в которых можно.

    К примеру:
    movzx eax, al

    4.8. Какую операцию выполняет команда CMP?
    Команда CMP вычитает второй операнд из первого, но, в отличие от команды SUB, не сохраняет результат — изменяются только флаги.

    4.9. Каким двум командам эквивалентна команда NEG?
    NOT и SUB.

    4.10. Где могут располагаться операнды для выполнения умножения?
    Регистры, память, в инструкции (к примеру imul).

    4.11. Чем определяется длина произведения при умножении?
    Длина (количество изменяемых разрядов результата) в два раза больше размера операндов.

    4.12. Чем определяются знаки частного и остатка при выполнении деления?
    Знак частного при делении в прямом коде определяется как сумма по модулю 2 знаковых цифр делимого и делителя и присваивается частному в конце операции деления.

    4.13. Как умножить и разделить на константу?
    CONST EQU 123
    MOV A,#0 ; Сброс аккумулятора

    L: ADD A,@R0 ; Загрузка множимого
    MOV B,#CONST ; Загрузка множителя

    MUL AB ; Умножение

    MOV @R0,A ; Запись младшего байта частичного произведения

    INC R0 ; Приращение адреса

    MOV A,B ; Пересылка старшего байта частичного произведения в аккумулятор

    XCH A,@R0 ; Предварительное формирование очередного байта произведения

    DJNZ R1,L ; Цикл, если не все байты исходного числа умножены на константу
    -----
    ;процедура деления числа из DX:AX на SI

    ;результат деления в DX:AX, остаток в CX

    div_si:

    push bx

    push bp

    push di

    xor bx,bx

    xor cx,cx

    xor di,di

    mov bp,33

    M5A4:

    rcl cx,1

    rcl bx,1

    sub cx,si

    sbb bx,di

    jnb M5B2

    add cx,si

    adc bx,di

    M5B2:

    cmc

    rcl ax,1

    rcl dx,1

    dec bp

    jnz M5A4

    pop di

    pop bp

    pop bx


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