Linux 如何将二进制数打印为十六进制文本?

Linux 如何将二进制数打印为十六进制文本?,linux,binary,output,nasm,Linux,Binary,Output,Nasm,我写了一个asm文件,打印值为FFFFFFFF-1=ffffffffe,但它会打印����. 我尝试使用vi命令并:%!xxd但它不完全正确,它显示000000:efbf bf0a而不是feff ffff 0a,我也尝试使用0x12345678的值,令人惊讶的是它完全正确,它使用vi十六进制编辑器打印0000000:7756 3412 0a。 0000000:7756340A 我的代码: segment .bss num2 resb 4 section .text

我写了一个asm文件,打印值为FFFFFFFF-1=ffffffffe,但它会打印����. 我尝试使用vi命令并:%!xxd但它不完全正确,它显示000000:efbf bf0a而不是feff ffff 0a,我也尝试使用0x12345678的值,令人惊讶的是它完全正确,它使用vi十六进制编辑器打印0000000:7756 3412 0a。 0000000:7756340A 我的代码:

segment .bss
        num2 resb 4
section .text
        global _start
_start: 
        mov dword [num2], 0xFFFFFFFF
        sub [num2], dword 1  
        mov ecx, num2
        mov edx, 4
        mov eax, 4
        mov ebx, 1
        int 0x80  

        mov eax, 1
        int 0x80
价值���� 是二进制文本吗?
有没有一种方法可以精确地利用����?

要打印十六进制数,您需要将二进制(寄存器中的内容)转换为等效的
ascii
。查看拆解后的itoa以了解所需内容。可能重复的