Linux 如何将二进制数打印为十六进制文本?
我写了一个asm文件,打印值为FFFFFFFF-1=ffffffffe,但它会打印����. 我尝试使用vi命令并:%!xxd但它不完全正确,它显示000000:efbf bf0a而不是feff ffff 0a,我也尝试使用0x12345678的值,令人惊讶的是它完全正确,它使用vi十六进制编辑器打印0000000:7756 3412 0a。 0000000:7756340A 我的代码: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
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以了解所需内容。可能重复的