hola
tengo una duda, cuando hago un for y un printf juntos, me funciona en 32bits de windows pero en 64 bits de linux, me dice que la instruccion no es soportada para 64 bits, la verdad no he logrado saber si el codigo esta bien o mal hecho por la razon de los 64 bits, a lo cual tambien tengo otra duda
tenia entendido que para usar inc o dec se usaba el registro ecx, pero cuando lo ejecuto usando ecx me da error, y cuando uso ebx me funciona bien cuando lo ejecuto en windows 32bits, alguien sabe cual seria la razon de porque pasa eso?
les dejo el codigo que trato de usar en linux y espero me puedan decir cual es el problema de porque no funciona
tengo una duda, cuando hago un for y un printf juntos, me funciona en 32bits de windows pero en 64 bits de linux, me dice que la instruccion no es soportada para 64 bits, la verdad no he logrado saber si el codigo esta bien o mal hecho por la razon de los 64 bits, a lo cual tambien tengo otra duda
tenia entendido que para usar inc o dec se usaba el registro ecx, pero cuando lo ejecuto usando ecx me da error, y cuando uso ebx me funciona bien cuando lo ejecuto en windows 32bits, alguien sabe cual seria la razon de porque pasa eso?
les dejo el codigo que trato de usar en linux y espero me puedan decir cual es el problema de porque no funciona
Código [Seleccionar]
[BITS 64]
section .data
fmt: db "valor = %d",10, 0
section .text
extern printf
global main
main:
mov ebx, 10
loop:
push ebx
push fmt
mov eax, 0
call printf
dec ebx
jnz loop
ret