为 10000 位分配的数组 = 1250 字节(10000/8):
mov edi, 1250
call malloc
测试指针:
cmp rax, 0
jz .error ; error handling at label down the code
已分配内存:
(gdb) p/x $rax
$3 = 0x6030c0
试图用零填充分配的内存:
mov rdi, rax
xor esi, esi
mov edx, 1250 ; 10000 bits
call memset
检查第一个字节:
(gdb) p/x $rax
$2 = 0x6030c0
(gdb) x/xg $rax + 0
0x6030c0: 0x0000000000000000
检查最后一个字节(0 - 第一个字节,1249 - 最后一个字节)
(gdb) p/x $rax + 1249
$3 = 0x6035a1
(gdb) x/xg $rax + 1249
0x6035a1: 0x6100000000000000
已解决的问题
应该输入x/1c $rax + 1249