小编Ani*_*man的帖子

尝试在汇编程序中打印变量时 GDB 显示错误消息

在从书中学习汇编语言时,有一个清单显示了一些基本操作:

segment .data
a   dq  176
b   dq  4097

segment .text
global _start

_start:
    mov rax, [a]    ; Move a into rax.
    add rax, [b]    ; add b o rax.
    xor rax, rax
    ret
Run Code Online (Sandbox Code Playgroud)

使用"$yasm -f elf64 -g dwarf2 -l listing.lst listing.asm"命令组装并链接后,"$ld -o listing listing.o"我在 gdb 中运行了程序。每当我尝试打印变量的值时,gdb 都会显示以下错误消息:

(gdb) p a
'a' has unknown type; cast it to its declared type
Run Code Online (Sandbox Code Playgroud)

另一个变量“b”也是如此。但是,为 int 转换 'a' 或 'b' 有效:

(gdb) p (int)a
$11 = 176
(gdb) p …
Run Code Online (Sandbox Code Playgroud)

assembly gdb yasm

7
推荐指数
1
解决办法
5117
查看次数

标签 统计

assembly ×1

gdb ×1

yasm ×1