Ensamblador - AYUDA CON ENSAMBLADOR URGENTE POR FAVOR!

 
Vista:

AYUDA CON ENSAMBLADOR URGENTE POR FAVOR!

Publicado por Snail (3 intervenciones) el 15/06/2013 18:15:54
Lo he hecho en C porque no se mucho de ensamblador, alguien sabría pasar esto a ensamblador? Agradecería la ayuda muchísimo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
main()
{
  char ch; //DEfino una variable de tipo char
 
  printf("Enter a character\n"); //muestro por pantalla la frase entre comillas
  scanf("%c", &ch); //Leo desde teclado un caracter y lo guardo en la variable ch
 
  if (ch >= 'A' && ch <= 'Z')
         ch = ch + 'a' - 'A';   // Convierto el caracter a su valor en minuscula operando sobre los valores ascii de las variables (a = a + 32),
siendo 32 el valor que resulta de restar del valor ascii de correspondiente a a (97) el valor ascii de A (65)). Todos los demas caracteres en mayuscula  se
distanciaran 32 de sus versiones en minuscula */
 
      if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
    	  printf("%c es una vocal\n",ch);//muestro por pantalla la frase entre comillas
      else
    	  printf("%c no es una vocal\n",ch);//muestro por pantalla la frase entre comillas
 
}
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

AYUDA CON ENSAMBLADOR URGENTE POR FAVOR!

Publicado por JHON CERNA ALVARADO (1 intervención) el 25/07/2022 09:50:52
https://api.whatsapp.com/send?phone=51948536059
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA CON ENSAMBLADOR URGENTE POR FAVOR!

Publicado por geergon (2 intervenciones) el 19/08/2022 07:19:04
https://godbolt.org/
*********************


LC0:
.ascii "Enter a character\0"
LC1:
.ascii "%c\0"
LC2:
.ascii "%c es una vocal\12\0"
LC3:
.ascii "%c no es una vocal\12\0"
_main:
lea ecx, [esp+4]
and esp, -16
push DWORD PTR [ecx-4]
push ebp
mov ebp, esp
push ecx
sub esp, 20
sub esp, 12
push OFFSET FLAT:LC0
call _puts
add esp, 16
sub esp, 8
lea eax, [ebp-9]
push eax
push OFFSET FLAT:LC1
call _scanf
add esp, 16
mov al, BYTE PTR [ebp-9]
cmp al, 64
jle L2
mov al, BYTE PTR [ebp-9]
cmp al, 90
jg L2
mov al, BYTE PTR [ebp-9]
add eax, 32
mov BYTE PTR [ebp-9], al
L2:
mov al, BYTE PTR [ebp-9]
cmp al, 97
je L3
mov al, BYTE PTR [ebp-9]
cmp al, 101
je L3
mov al, BYTE PTR [ebp-9]
cmp al, 105
je L3
mov al, BYTE PTR [ebp-9]
cmp al, 111
je L3
mov al, BYTE PTR [ebp-9]
cmp al, 117
jne L4
L3:
mov al, BYTE PTR [ebp-9]
movsx eax, al
sub esp, 8
push eax
push OFFSET FLAT:LC2
call _printf
add esp, 16
jmp L5
L4:
mov al, BYTE PTR [ebp-9]
movsx eax, al
sub esp, 8
push eax
push OFFSET FLAT:LC3
call _printf
add esp, 16
L5:
mov eax, 0
mov ecx, DWORD PTR [ebp-4]
leave
lea esp, [ecx-4]
ret
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar