小编hut*_*123的帖子

x86程序集中的mov指令

从我读过的内容来看mov,它将第二个参数复制到第一个参数中.然后,这是做什么的?

movl    8(%ebp),    %edx

它将edx中的任何内容复制到函数的第一个参数(因为+8的偏移量ebp是参数)?

我觉得这真正意味着将第一个参数移动到edx寄存器中,但我在维基百科上读到它是另一种方式?

x86 assembly mov att

12
推荐指数
1
解决办法
8551
查看次数

如何用gdb读取局部变量?

我知道你可以通过使用gdb查看$ ebp的正偏移来找到任何参数:

(gdb) x/4wx $ebp
Run Code Online (Sandbox Code Playgroud)

然后,我会查看使用的第3和第4个地址,x/s因为它们将是第一个和第二个参数.局部变量怎么样?我如何看待$ ebp的负偏移值?另外,无论如何看看$ eax的价值?每当我尝试打印$ eax的值时x/s $eax,地址超出范围或值为0,我确信这不是因为我只是在寄存器中放入一个常量值.

我试过,info locals但我收到消息"没有符号表信息可用".

c assembly gdb

6
推荐指数
1
解决办法
2万
查看次数

memmove 实际上是否“移动”了一块内存并在源头留下了零?

可能的重复:
memcpy 与 memmove

memmove实际上“移动”了一块内存吗?如果是这样,内存中是否会留下零?或者,它就像memcpy一样吗?我正在查看手册页,我不相信我的假设是正确的。如果我想使用 memmove 移动一块内存,我是否必须手动将移动的内存块清零?

c memcpy memmove

3
推荐指数
1
解决办法
4355
查看次数

使用memcpy将结构复制到堆中

我试图通过使用以下代码将名为"Holder"的结构放入堆中,但是当我尝试使用memcpy时出现分段错误:

Holder hold;
Holder *heapHold = memcpy(heapHold, &hold, sizeof(Holder));
Run Code Online (Sandbox Code Playgroud)

为什么我会出现段错误?

c struct memcpy

2
推荐指数
1
解决办法
6890
查看次数

如何检查给定的文件读取参数是否有效?

我正在使用fopen参与辩论.我可以做些什么来确保fopen实际上将字符串转换为有效的文件名?

c

0
推荐指数
1
解决办法
590
查看次数

给定指针的地址,我如何得到它指向的内容?

如果给出指针的地址,我如何得到指针指向的内容?

c

0
推荐指数
1
解决办法
759
查看次数

标签 统计

c ×5

assembly ×2

memcpy ×2

att ×1

gdb ×1

memmove ×1

mov ×1

struct ×1

x86 ×1