Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2018, 11:14   #1
qfate
Новичок
Джуниор
 
Регистрация: 13.04.2018
Сообщений: 1
По умолчанию Арифметика (ассемблер)

Не могу понять как исправить ошибки.
Программа работает неправильно при больших вычислениях
Код:

//A (byte), B (integer), C (integer)
//Вычислить: D = A^3+B; E = C^2*(B-C)/B

#include "stdafx.h"
#include <iostream>
#include <conio.h>

int main()
{
	int d, e;
	short int b = 1, c = 50;
	unsigned char a = 100;


	//printf("%d, %d", a, b);

	__asm {
		mov al, a;
		mul a;		  //ax=a^2
		xor bx, bx;
		mov bl, a;
		mul bx; 
		mov word ptr d[0], ax;
		mov word ptr d[2], dx;
		mov ebx, d;
		xor eax, eax;
		mov ax, b;
		cwde;
		add   ebx, eax;
		mov d, ebx;
		
		mov  ax, c;
		mul ax; // ax=c^2
		mov word ptr e[0], ax;
		mov word ptr e[2], dx;
		xor eax, eax;
		mov ax, b;
		sub ax, c; //b-c

		mov ebx, e;
		mul ebx;
		mov bx, b;
		movsx ebx, bx;
		
		
		div ebx;
		mov e,eax;

	}

	printf("\n%d, %d", d,e);

	getchar();
	return 0;
}
qfate вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
целочисленная арифметика Алиса_а Помощь студентам 4 06.07.2011 14:14
Арифметика в ПК Negent Помощь студентам 12 28.08.2010 14:18
Целочисленная арифметика Lebron129 Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2010 19:27
Арифметика в C iggor Помощь студентам 3 01.12.2009 12:40