|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Temas - Karin2009
Páginas: [1]
1
« en: Miércoles 29 de Abril de 2009, 13:31 »
Hola, estoy trabajando con nasm, y me ha surgido un error en un programa que estoy haciendo que usa las funciones externas de C printf y scanf. El programa en ensamblador solicita un numero real, lo lee y lo vuelve a imprimir en pantalla con sus respectivos mensajes. El programa que tengo es este: %include "asm_io.inc" segment .data prompt1 db "Ingrese valor : ",0 prompt2 db "%f",0 prompt3 db "El valor ingresado es %f",10,0 segment .bss a resw 1 segment .text global pedir extern printf, scanf pedir: enter 0,0 ; setup routine pusha ;printf(prompt1) push prompt1 call printf add esp,4 ;scanf("%f",&a) push a push prompt2 call scanf add esp,8 fld dword[a] push prompt3 call printf add esp, 8 salir: popa mov eax, 0 ; return back to C leave ret
Este programa es llamado por otro en C, compila bien y lo enlazo con el que lo llama usando gcc; pero cuando lo ejecuto, aparce en la pantalla algo como esto: Ingrese valor:123 El valor ingresado es -0.000000 El valor q ingreso es 123 y me devuelve ese otro valor, agradeceria si alguien me dice en q me estoy equivocando para corregirlo Muchas gracias
2
« en: Martes 28 de Abril de 2009, 16:25 »
Hola, estoy trabajando con nasm. Me piden q haga un programa en ensambaldor que me pida un valor, lo lea, y lo vuelva a imprimir con sus respectivos mensajes, utilizando las funciones de C printf y scanf. El programa en ensamblador q he hecho es este: %include "asm_io.inc" segment .data prompt1 db "Ingrese valor : " prompt2 db "%f",0 prompt3 db "El valor ingresado es %f",10,0 segment .bss a resd 1 segment .text global pedir extern printf, scanf pedir: enter 0,0 ; setup routine pusha ;printf(prompt1) push prompt1 call printf add esp,4 ;scanf("%f",&a) push a push prompt4 call scanf add esp,8 push dword[a] push prompt6 call printf add esp, 8 salir: popa mov eax, 0 ; return back to C leave ret
Lo que no se es como llamarlo desde un programa en C, no necesita que le pase parametros, solo llamarlo. Agradeceria mucho su ayuda
3
« en: Jueves 12 de Marzo de 2009, 20:01 »
Hola, muchas gracias a todos por su ayuda, tyengo una duda, veo en los manuales
por ejemplo: una comparacion cmp eax, ebx jb salida ; si eax es menor que ebx salta a salida
pero, se puede hacer?
cmp eax, ebx jb (call rutina)
o sea si eax es menor que ebx llamar a una rutina?
4
« en: Martes 10 de Marzo de 2009, 17:41 »
Hola, hace unos dias q empece a estudiar lenguaje ensamblador para una clase, estoy usando el nasm para IA-32, y me han pedido que convierta un numero ingresado por pantalla a entero, que lo lee como cadena de caracteres, pero se debe detectar si es negativo, o si tiene caracteres que no sean validos, y no tengo idea de como hacerlo. El numero debe ser de cualquier longitud. Agradeceria su ayuda
Páginas: [1]
|
|
|