程序集打印错误的 ascii 字符

Assembly prints wrong ascii character

我试图创建一个简单的汇编程序来打印二进制代码在 rax 中的 ascii 字符。我有以下代码:

section .data
   res db '', 0

global _start
_start:
    mov rbx, 1000001
    mov [res], rbx
    
    mov rax, 1
    mov rdi, 1
    mov rsi, res
    mov rdx, 1
    syscall


    mov rax, 60
    xor rdi, rdi
    syscall

当我执行时,它输出'A',这是正确的,因为1000001是ascii A的二进制代码,但是如果我执行这个:

section .data
   res db '', 0

global _start
_start:
    mov rbx, 1000010
    mov [res], rbx
    
    mov rax, 1
    mov rdi, 1
    mov rsi, res
    mov rdx, 1
    syscall


    mov rax, 60
    xor rdi, rdi
    syscall

输出'J',但是根据table我用1000010应该输出'B'。让这对我来说更奇怪的是,如果我使用十进制而不是二进制,我会得到正确的输出。我在做什么wong?

100000110 = F424116, 和 4116 = 6510 = A ASCII

100001010 = F424A16, 和 4A16 = 7410 = J ASCII