在汇编中调用printf时如何设置颜色

How to set color when calling printf in assembly

我想在从程序集调用 printf 时设置颜色。

这是我的代码:

Out:    
    mov     rdi, answer
    mov     rsi, r10
    mov     rax,0
    call    printf
section .data
    answer:     db       "3[0;31m%d3[0m",10,0

我使用 NASM 编译,gcc 编译为 link:

nasm -f elf64 "%f"
gcc -o %e %e.o

然而,输出是:

3[0;31m(my r10)3[0m

对周围的字符串使用 ` 以在 NASM 中使用转义序列。

参考:3.4.2 Character Strings

试试这个:

Out:
    mov     rdi, answer
    mov     rsi, r10
    mov     rax,0
    call    printf
section .data
    answer:     db       `3[0;31m%d3[0m`,10,0