Ensamblador - Ejercicio de transcripción

 
Vista:
sin imagen de perfil

Ejercicio de transcripción

Publicado por Eduardo (1 intervención) el 17/05/2018 05:27:51
Hola, el caso es el siguiente tengo un ejercicio por realizar cuya intención es darnos un primer acercamiento al lenguaje ensamblador, al ser este nuestro primer programa, lo estamos haciendo en un entorno de c++, las reglas son las siguientes:

La entrada de datos se realiza en lenguaje C++, sin importar las instrucciones usadas para estos procesos.
Todos los cálculos, tomas de decisión y generación de resultados, se realizan en lenguaje ensamblador,
preferiblemente usando el compilador de Microsoft (MASM), el cual se encuentra incorporado en la plataforma de
VisualStudio y puede ser usado en forma directa en C++

• La entrega de resultados se realiza en C++, sin importar las instrucciones usadas.

Bueno ahora si: Dado un número entero positivo, su crápulo es un número que se obtiene de la siguiente forma:
se suman los dígitos que lo componen si el valor de la suma es menor que 10, el crápulo es el valor obtenido
sino el crápulo es el crápulo de la suma de los dígitos obtenidos en el paso anterior.

La gracia de este ejercicio es que aprendamos a pasar de c++ a ensamblador, es por eso que lo hacemos con un código, que al menos para mi, es bastante sencillo de hacer y entender en c++, les comparto un ejemplo de un código que encontré por ahí (https://2014elementos.wordpress.com/2014/10/12/19-c-crapulo/):

#include<iostream>
using namespace std;
int main(){
int suma,resto,numero,x;
cout<<“Ingrese un numero: “;
cin>>numero;
system(“cls”);
cout<<“El crapulo de “<<numero<<” = “;
suma = numero;

while(suma>10){
numero = suma;
suma=0;
while(numero !=0){
x = numero/10;
resto= numero -(10*x);
suma = suma + resto;
numero = numero /10;
}
}
cout<<suma;
cout<<endl;
system(“pause”);
}


Amigos, he intentado de todas las formas y de primeras me pareció un trabajo fácil, sin embargo, los registros (específicamente al intentar usar DIV y MUL, me pudieron), sin embargo, se que alguien que tenga mas experiencia que yo en este lenguaje puede hacer esto sin mayor problema.

#include <stdlib.h>
#include "stdafx.h"
#include <iostream>
using namespace std;
int main() {
int suma, resto, numero, x;
cout << "Ingrese un numero : ";
cin >> numero;
system("cls");
cout << "El crapulo de " << numero << " = ";

_asm
{


}

cout << suma << "\n";
system("pause");
}


Esto es una base de como debe ser el código, la parte de ensamblador debe ir entre los corchetes de asm, sin mas que agregar, agradezco de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder