Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2022, 08:20   #1
astat_man
Новичок
Джуниор
 
Регистрация: 10.05.2022
Сообщений: 1
По умолчанию оставление программ и использованием ассемблерной вставки!

Необходимо создать программу для вычисления примера ниже на ассемблере с использованием ветвления и ввод через C++ через консоль.
Ввод через cin;
Программа VisualStudio,
Числа целые;
Intel80x86

Пожалуйста! Скоро сдача
КОД:

A/B+C*A, если B<>0
Y:={
A+C*A, если B=0
astat_man вне форума Ответить с цитированием
Старый 10.05.2022, 10:05   #2
macomics
Форумчанин
 
Регистрация: 17.04.2022
Сообщений: 461
По умолчанию

Вот от этой программы она отличается 2-я командами: одну переставить, вторую переписать. Но так и быть. Текст на ассемблере вот:
Код:
      push ebx
      mov eax, A
      mov ebx, C
      mov ecx, B
      imul ebx, eax
      jecxz false
      cdq
      idiv ecx
      false:
      add eax, ebx
      pop ebx
Шаблон возьмите из темы по ссылке.
macomics вне форума Ответить с цитированием
Старый 11.05.2022, 05:09   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,636
По умолчанию

Вот так криво / г-код

Код:
#include <iostream>

using namespace std;

int main()
{
	int a;
	int b;
	int c;
	int r (0);
	cout << "Hello World!\n"; 
	cin >> a;
	cin >> b;
	cin >> c;

        // СОДЕРЖИМОЕ РЕГИСТРОВ
	int qax;
	int qbx;
	int qcx;
	int qdx;

	__asm
	{
		mov eax, a
		mov ebx, b
		mov ecx, c
		cdq
		
		test ebx, ebx 
		jz e1
		
		div ebx  // !!! EAX = EAX / EBX !!!

		mov ebx, eax // XXX mov edx, eax XXX

		mov eax,a
		mul ecx  // !!! EAX = EAX * ECX !!!

		add eax, ebx //  !!! EAX = EAX + EBX !!!

		mov r, eax // 8 2 1 // +++r:  12 +++

		jmp rt

		e1: // 8 0 1 // +++ r: 16 +++
		mul ecx  // !!! EAX = EAX * ECX !!!
		mov ebx, eax
		mov eax, a
		add eax, ebx //  !!! EAX = EAX + EBX !!!
		mov r, eax

		rt:
		mov qax, eax
		mov qbx, ebx
		mov qcx, ecx
		mov qdx, edx

	};

        // СОДЕРЖИМОЕ РЕГИСТРОВ
	cout << "qax: " << qax << "\n" <<
		"qbx: " << qbx << "\n" <<
		"qcx: " << qcx << "\n" <<
		"qdx: " << qdx << "\n" 
		;
	cout << "r: " << r << "\n";
	return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 11.05.2022, 11:25   #4
macomics
Форумчанин
 
Регистрация: 17.04.2022
Сообщений: 461
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
div ebx // !!! EAX = EAX / EBX !!!
mul ecx // !!! EAX = EAX * ECX !!!
Только вы кое-что пропустили. Тип int - знаковый, а команды у вас беззнаковые.
macomics вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить выражение с использованием асембл. вставки c_pluspluser Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.05.2022 11:13
оставление программ и использованием ассемблерной вставки c_pluspluser Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.05.2022 08:14
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных Фрейтор 40-500 Помощь студентам 0 02.11.2012 21:58
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных Фрейтор 40-500 Помощь студентам 6 02.11.2012 21:46