Título: error usando linux 64bits en codigo de nasm Publicado por: Belial & Grimoire en 14 Julio 2013, 02:10 am 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 Código: [BITS 64] Título: Re: error usando linux 64bits en codigo de nasm Publicado por: xv0 en 14 Julio 2013, 03:16 am La instruccion no soportada es push ebx, en 64 bits solo puedes hacer push a registro de 64 y de 16.
Y sobre el registro ecx, en 64 bits ecx guarda la direccion de .global main, y cuando haces una interrupcion estilo syscall se guarda la direccion que venga despues de ese syscall, puede que suceda lo mismo con la instruccion call. Un saludo. |