Título: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: michellcrh en 6 Abril 2022, 07:19 am Hola, espero me pueda ayudar
Tengo este código que suma 2 numeros de 2 dígitos en ensamblador NASM, pero quisiera mostrar el resultado en pantalla mediante una función CALL, el problema es que no entiendo como realizarlo ya que el resultado de la suma està en el registro eax y està en hexadecimal, tengo mi duda de si tengo que realizar una conversion a decimal de ese número o algua cosa así. Código
Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: fary en 6 Abril 2022, 15:10 pm Igual que conviertes la cadena que lees a número, luego tienes que convertir el resultado de la suma a cadena antes de imprimirlo.
Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: michellcrh en 6 Abril 2022, 15:27 pm DE acuerdo, o sea que podrìa usar mi còdigo que tengo para convertir de caracter a número pero sumandole el '0' en lugar de restarlo?
Y para imprimirlo habia visto que tenía que separarlo en caracteres para mostrar uno por uno, eso es cierto? Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: fary en 6 Abril 2022, 15:38 pm Es sumandole '0', sí. Pero en lugar de multiplicar tienes que dividir. Lo de imprimirlo no tiene porque ser caracter a caracter.
Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: michellcrh en 6 Abril 2022, 16:31 pm Una duda que me surgió hace un momento, es que mi resultado de la suma está en eax y la división se haria en ax no? o sea ax/10, como hago para que mi resultado de la suma estè solo en ax?
Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: fary en 6 Abril 2022, 16:38 pm Si estas programando para 32 bits... la división la tendrás que hacer en 32 bits. Digo yo.
(https://fundacion-sadosky.github.io/guia-escritura-exploits/buffer-overflow/imagenes/partes-registro.png) (https://2.bp.blogspot.com/-Zg3LKT-orx0/WnJj_PZhlVI/AAAAAAAAAO4/AScqvPK5bgcsR35wP4w5CKAXEqVTspLDQCLcBGAs/s320/ia32-introduccion-23-728.jpg) Otra cosa es que luego uses las partes altas o bajas del registro. El código del cual asumo que surgió la duda fijate que es de 16 bits. https://foro.elhacker.net/asm/como_pasar_un_registro_a_una_cadena_de_texto-t309441.0.html saludos! Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: michellcrh en 6 Abril 2022, 17:15 pm entonce como tal hice lo siguiente:
mov ebx, 10 idiv ebx ; dividir entre 10 para hacerlo con los 32 bits, pero lo que se va a dividir entre 10, tengo entendido que es EAX:EDX, o sea que el valor de mi suma deberìa estar reaprtido entre esos 2 registros no? y no sè como realizarlo :-\ Título: Re: Imprimir en pantalla el resultado de la suma de 2 números de 2 dígitos Publicado por: fary en 8 Abril 2022, 15:09 pm No tiene que estar repartido entre los dos registros. Pon el dividendo en EAX y pon EDX a 0.
|