深入探究 x64 汇编寄存器测试与调试
1. 寄存器写入测试
在进行寄存器写入测试时,我们需要对不同类型的寄存器进行操作,以确保调试器能够正确地写入和读取寄存器的值。
1.1 MMX 寄存器测试
对于 MMX 寄存器,我们从调试器向 mm0 写入值,然后在汇编代码中将该值移动到 rsi ,并使用之前的格式说明符调用 printf 。具体步骤如下:
1. 在汇编代码中,在最后一次调用 trap 之后添加以下代码:
# Print contents of mm0
movq %mm0, %rsi
leaq hex_format(%rip), %rdi
movq $0, %rax
call printf@plt
movq $0, %rdi
call fflush@plt
trap
- 在测试用例的末尾添加以下测试代码:
regs.write_by_id(register_id::mm0, 0xba5eba11);
proc->resume();
proc->wait_on_signal();
output = channel.read();
REQUIRE(to_string_view(output) == "0xba5eba11");
超级会员免费看
订阅专栏 解锁全文
1145

被折叠的 条评论
为什么被折叠?



