Простейшие арифметические действия - Assembler

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

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

надо вычислить вот это: y=a+b-c*d/e вот моя попытка, компилирует, но считает не правильно подскажите как исправить пожалуйста
#define _CRT_NONSTDC_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
 
int add(int a, int b)
{
    int c;
    __asm
    {
        push eax;
        push ebx;
 
        mov eax, a;
        mov ebx, b;
 
        add eax, ebx;
        mov c, eax;
 
        pop ebx;
        pop eax;
    }
    return c;
}
 
int sub(int a, int b)
{
    int c;
    __asm
    {
        push eax;
        push ebx;
 
        mov eax, a;
        mov ebx, b;
 
        sub eax, ebx;
        mov c, eax;
 
        pop ebx;
        pop eax;
    }
    return c;
}
 
int mul(int a, int b)
{
    int c;
    __asm
    {
        push eax;
        push ebx;
 
        mov eax, a;
        mov ebx, b;
 
        mul eax;
        mov c, eax;
 
        pop ebx;
        pop eax;
    }
    return c;
}
 
int div(int a, int b)
{
    int c;
    __asm
    {
        push eax;
        push ebx;
 
        mov eax, a;
        mov ebx, b;
 
        div eax;
        mov c, eax;
 
        pop ebx;
        pop eax;
    }
    return c;
}
 
int Function(int a, int b, int c, int d, int e)
{
    int tmp;
    tmp = div(d,e);
    tmp = mul(c,tmp);
    tmp = sub(b,tmp);
    tmp = add(a,tmp);
    return tmp;
}
 
void main()
{
    int a, b, c, d, e;
    printf("a = ");
    scanf("%d",&a);
    printf("b = ");
    scanf("%d",&b);
    printf("c = ");
    scanf("%d",&c);
    printf("d = ");
    scanf("%d",&d);
    printf("e = ");
    scanf("%d",&e);
    printf("f(a,b,c,d,e) = %d", Function(a,b,c,d,e));
    getch();
}

Решение задачи: «Простейшие арифметические действия»

textual
Листинг программы
    tmp = div(d,e);
    tmp = mul(c,tmp);
    tmp = sub(b,tmp);
    tmp = add(a,tmp);

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

В данном коде выполняются простейшие арифметические действия над переменными a, b, c, d и e. Список действий следующий:

  1. Переменная tmp получает значение div(d, e).
  2. Переменная tmp получает значение mul(c, tmp).
  3. Переменная tmp получает значение sub(b, tmp).
  4. Переменная tmp получает значение add(a, tmp).

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


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

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

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