me ha detectado un error durante la ejecución del siguiente códigoAsamblea Segmentación de fallos
Asamblea#cpuid using C library Functions
.section .data
output:
.asciz "The Processor Vendor ID is '%s'\n"
.section .bss
.lcomm buffer, 12
.section .text
.globl main
main:
movq $0, %rax
cpuid
movq $buffer, %rdi
movq %rbx, (%rdi)
movq %rdx, (%rdi)
movq %rcx, (%rdi)
pushq $buffer
pushq $output
call printf
addq $8, %rsp
pushq $0
call exit
Se encontró fallo de segmentación en la parte de la biblioteca C de llamada: llamada printf Se ejecuta en modo x86_64. ¿Algo que perdí durante la compilación del código x64 con respecto a la biblioteca c? O hay algo mal con el código
Gracias
posible que desee aumentar% RDI por una cantidad apropiada entre de esos movq – Managu
Gracias todos, resolví el problema. Fue la lib mal que he cargado funciona bien después de que LD manualmente con /lib/ld-linux-x86-64.so.2 y sustituye la función principal con _start. I ld como enlace dinámico. Lo siento por la mala –