Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Ejercicio 4.1 */
- #include <iostream>
- using namespace std;
- int venta(int importe,bool chabitual){
- int cobro(0),descuento(0);
- asm(
- "mov %[importe],%%eax \n\t"
- "cmp $1000,%%eax \n\t"
- "jb nosupera \n\t"/* si importe <1000 salta a no supera */
- "cmp $1,%[chabitual] \n\t"
- "jne nosupera \n\t"
- "mov $50,%[descuento] \n\t"/*cliente habitual y 1000>=*/
- "jmp salida \n\t"/*salta a salida de cobro */
- "nosupera: \n\t"/*inferior a 1000 y clientes no habituales */
- "mov $10,%[descuento] \n\t"/*carga un descuento de 10 */
- "salida: \n\t"
- "sub %[descuento],%%eax \n\t"/* se resta el descuento */
- "mov %%eax,%[cobro] \n\t"
- :[cobro]"=g"(cobro) , [descuento]"=g"(descuento) /*salidas*/
- :[importe] "b"(importe) , [chabitual] "r"(chabitual) /*entradas */
- :"%eax" /* no tocar este registro */
- );
- return cobro;
- }
- int main (){
- cout <<venta (1000,1)<<endl;
- return 0;
- }
- /*
- * Crear una funcion C/C++ cuyo prototipo es int venta (int importe,bool cliente ) ,funcion desarrollada en assembler
- * ,la funcion ofrece un descuento de 10 euros a toda compra inferior a 1000 euros .Si se trata de un cliente habitual
- * y el valor de la compra es igual o superior a 1000 euros debe realizar un descuento de 50 Euros, finalmente la funcion
- * retorna el importe a pagar que sera mostrado desde el main de C/C++ por consola
- * /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement