hola
alguien me podria decir si hice bien este codigo, estoy empezando a familiarizarme con ASM y como no encuentro tutoriales con ejemplo, trato de hacer todo lo que aprendi con C para hacerlo con ASM
solo que lo estoy haciendo con ejemplos que voy encontrando, ahorita trate de aprender como dos hola mundo en un mismo codigo ya que no sabia lo de borrar eax incluso no se si es necesario.. pero de esta manera lo logre, asi como usa "cmp" , "jmp" y "je"
pero no se si lo hice bien, por lo menos me funciona sin problemas pero no tengo idea de si esta bien escrito, si repeti mucho codigo inecesario... bueno, alguien me podria dar una opinion y una ayuda si ve algo mal o muy repetitivo por porfavor
salu2
BITS 32
mensaje db 'Hello World',0x0A
error db 'Error',0x0A
correcto db 'Correcto', 0x0A
global _start
_start:
starter:
mov eax, 0
mov eax, 0x4
mov ebx, 1
mov ecx, mensaje
mov edx, 12
int 0x80
mov eax, 0
mov eax, 0x4
mov ebx, 1
mov ecx, mensaje
mov edx, 12
cmp edx, 1
je esca
int 0x80
xor eax, eax
mov ecx, correcto
mov edx, 9
cmp edx, 9
je correct
mov eax, 0
mov eax, 0x1
mov ebx, 0
int 0x80
esca:
mov eax, 0
mov eax, 0x4
mov ebx, 1
mov ecx, error
mov edx, 5
int 0x80
mov eax, 0
mov eax, 0x1
mov ebx, 0
int 0x80
correct:
mov eax, 0
mov eax, 0x4
mov ebx, 1
mov ecx, correcto
mov edx, 9
int 0x80
mov eax, 0
mov eax, 0x1
mov ebx, 0
int 0x80
Tiene algunos detalles que se podrían mejorar [arriba tuyo y abajo correcto]
mov eax, 0
xor eax, eax
mov ebx, 9
mov ebx, 0x9
Hay veces que repites una y otra vez el mismo código. Usa más jmp.
Por lo demás, pocos errores se les puede sacar a un Hello World :P
Un saludo y suerte!
Sagrini