Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - tete55

#1
ASM / Re: [AYUDA] No funciona este código
10 Diciembre 2014, 17:35 PM
Muchas gracias por la información aportada ya que gracias a ello he modificado varias cosas del código pero me sigue sin realizar la fórmula, si son tan amables de aportar alguna idea lo agradecería mucho.
Lo que debería hacer el programa es la operación Resultado = (a * b * c )/100

Muchas gracias a todos y perdonen las molestias  :D :D :D


segment .data

segment .bss
a resb 4
b resb 4
c resb 4
resultado resb 4

segment .text

global x
x:
push rbp
mov rbp, rsp

mov eax, dword [rbp+4] ;efectuado una llamada y metido en la pila rbp, asi que el primer numero esta en rbp + 4
mov dword [resultado], eax
mov eax, dword [rbp+8]
mov dword [c], eax
mov eax, dword [rbp+16]
mov dword [b], eax
mov eax,dword[rbp+32]
mov dword[a],eax

mov eax,[c]
mov ebx,[b]
mov ecx,[a]
imul eax,ebx
mov ebx,ecx
imul eax,ebx
mov dword[resultado],eax

mov [resultado],rbx
cdq
mov ecx,100
idiv ecx
mov ecx,eax
mov dword[resultado],ecx
;push dword[resultado]

mov rsp,rbp
pop rbp               
ret                     
#2
ASM / Re: [AYUDA] No funciona este código
9 Diciembre 2014, 14:11 PM
No he borrado ningún código de otro sitio, sino que he creado este nuevo post con el código completo para haber si alguien me podía ayudar

Estoy intentando aprender ensamblador en 32 bits, me he puesto a realizar la operación de multiplicar y dividir.

El programa en sí realiza la operación:  x = (a * b * c) / 100 lo estoy ensamblando con nasm pero no me da el resultado de la operación y no se por que.

Por todo esto quería que alguien que sepa del tema me diga en que me he equivocado y así aprender

Gracias
#3
ASM / [AYUDA] No funciona este código
9 Diciembre 2014, 12:10 PM
He programado esta operación y no me funciona.
Alguien que entienda me la puede echar un ojo para ver que esta mal o si esta incompleto?
Muchas gracias!!! :D :D

Aquí os dejo el código:




;X=A *B *C /100
segment .data
segment .bss
a resb 4
b resb 4
c resb 4
resultado resb 4
segment .text
global x
x:
push rbp
mov rbp, rsp

mov rax, qword [rbp+16]
mov qword [resultado], rax
mov rax, qword [rbp+24]
mov qword [c], rax
mov rax, qword [rbp+32]
mov qword [b], rax
mov rax,qword[rbp+40]
mov qword[a],rax

mov eax,[c]
mov ebx,[b]
mov ecx,[a]
imul eax,ebx
imul eax,ecx
mov dword[resultado],ecx

mov [resultado],rbx
cdq
mov ecx,100
idiv ecx
mov ecx,eax
mov dword[resultado],ecx
push qword[resultado]

mov rsp,rbp
pop rbp               
ret                   



#4
ASM / Re: Programa que calcule multiplicaciones ASM
5 Diciembre 2014, 03:43 AM
Me resultaría más fácil hacerla en C y convertirla a asm? Y si es asi, como haría esa conversión? Ya que cuando lo hago por teclado poniendo
Gcc -o programa.o -S programa.s
Me lo pasa a .s y al compilar no me funciona.
¿Qué hago?
Gracias
#5
ASM / Re: Programa que calcule multiplicaciones ASM
4 Diciembre 2014, 20:31 PM
Perdón! Soy nuevo y no lo había visto
#6
ASM / Programa que calcule multiplicaciones ASM
4 Diciembre 2014, 20:05 PM
Hola a todos!!

Os escribo porque me estoy volviendo loco!! Estoy intentando hacer un programa en ia 32 que me calcule la multiplicación de 3 variables introducidas por teclado

a*b*c= ?

De momento me deja introducir por teclado las variables pero luego no me da ningun resultado!! :(

Si alguien sabe como lo puedo hacer GRACIAS!! :D :D