Вычисление целочисленного арифметического выражения (Ассемблерная вставка) - Assembler

Узнай цену своей работы

Формулировка задачи:

Где ошибка?((( v=(((z-4)*y+x)/(7*x-6))-1, где y,v-слова x,z-байты
short int vas(short int y, char x, char z)
{
    short int v = 0;
    _asm
    {
        mov al, z;
        cbw;
        sub ax, 4;
        imul y;
        mov bx, ax;
        mov cx, dx;
        mov al, x;
        cbw;
        cwd;
        add bx, ax;
        add cx, dx;
        mov dl, 7;
        mov al, x;
        imul dl;
        sub ax, 6;
        xchg ax, bx;
        mov dx, cx;
        idiv bx;
        mov bx, 1;
        sub ax, bx;
        mov v, ax;
    }
    return v;
}

Решение задачи: «Вычисление целочисленного арифметического выражения (Ассемблерная вставка)»

textual
Листинг программы
imul y
add al, x
adc ah, 0
adc dx, 0

Объяснение кода листинга программы

  1. y - это переменная, которая содержит целочисленное значение.
  2. x - это переменная, которая содержит целочисленное значение.
  3. al и ah - это регистры процессора, которые используются для хранения целочисленых значений.
  4. dx - это регистр процессора, который используется для хранения целочисленых значений.
  5. imul y - это инструкция, которая выполняет умножение значения переменной y на значение в регистре dx.
  6. add al, x - это инструкция, которая складывает значение переменной x с значением в регистре al.
  7. adc ah, 0 - это инструкция, которая складывает 0 с значением в регистре ah.
  8. adc dx, 0 - это инструкция, которая складывает 0 с значением в регистре dx.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы