小编mar*_*tin的帖子

valgrind,分析计时器到期了吗?

我尝试使用valgrind来描述一个简单的c prog:

[zsun @ nel6005001~] $ valgrind --tool = memcheck ./fl.out
== 2238 == Memcheck,内存错误检测器
== 2238 == Copyright(C)2002-2009,GNU GPL'd,Julian西沃德等人.
== 2238 ==使用Valgrind-3.5.0和LibVEX; 重新运行-h版权信息
== 2238 ==命令:./ fl.out
== 2238 ==
== 2238 ==
== 2238 == HEAP SUMMARY:
== 2238 ==在退出时使用:1,168字节in 1个块
== 2238 ==总堆使用量:1个allocs,0个frees,1,168个字节分配
== 2238 ==
== 2238 == LEAK SUMMARY:
== 2238 ==绝对丢失:0个块中的0个字节
== 2238 = =间接丢失:0个块中的0个字节
== 2238 ==可能丢失:0个块中的0个字节
== 2238 ==仍然可达:1个块中的1,168个字节
== 2238 ==抑制:0个块中的0个字节
== 2238 ==重新运行--leak-check = full以查看泄漏内存的详细信息
== 2238 ==
== 2238 …

valgrind

10
推荐指数
2
解决办法
7008
查看次数

0x4在"movl $ 0x2d,0x4(%esp)"中做了什么?

我正在研究GCC生成的汇编代码.但我不明白:

movl $0x2d, 0x4(%esp)
Run Code Online (Sandbox Code Playgroud)

在第二个操作数中,0x4代表什么?偏移地址?注册EAX有什么用?

c x86 assembly gnu-assembler

10
推荐指数
1
解决办法
7406
查看次数

写数据到寄存器

我有某个寄存器的存储器地址(地址LCDCW1是C000).

c代码:

#define LCDCW1 0xC000

*LCDCW1=0x31;
Run Code Online (Sandbox Code Playgroud)

我只想将数据写入该寄存器.代码有问题,如何纠正呢?

谢谢!

c hardware embedded pointers

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

8051外部中断

如何启用8051的外部中断?

c interrupt 8051

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

帮助理解汇编级别的C和C++中#define,const和enum之间的差异

最近,我正在研究#define,const和enum的汇编代码:

C代码(#define):

3   #define pi 3  
4   int main(void)
5   {
6      int a,r=1;             
7      a=2*pi*r;
8      return 0;
9   }
Run Code Online (Sandbox Code Playgroud)

GCC生成的汇编代码(用于C代码中的第6行和第7行):

6   mov $0x1, -0x4(%ebp)
7   mov -0x4(%ebp), %edx
7   mov %edx, %eax
7   add %eax, %eax
7   add %edx, %eax
7   add %eax, %eax
7   mov %eax, -0x8(%ebp)
Run Code Online (Sandbox Code Playgroud)

C代码(枚举):

2   int main(void)
3   {
4      int a,r=1;
5      enum{pi=3};
6      a=2*pi*r;
7      return 0;
8   }
Run Code Online (Sandbox Code Playgroud)

GCC生成的汇编代码(用于c代码中的第4行和第6行):

6   mov $0x1, -0x4(%ebp)
7   mov -0x4(%ebp), %edx
7   mov %edx, …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly gcc

5
推荐指数
1
解决办法
2007
查看次数

测量程序的运行时间

我需要一个工具来测量程序的运行时间,比如gprof.但是gprof的分辨率还不够好(约0.01秒).oprofile似乎可以做到,我将尝试学习如何获取有关时间信息的数据,但我不能.

那么,谁能告诉我如何做到的步骤,或者任何人都知道其他工具可以做同样的事情?

profiler

4
推荐指数
1
解决办法
5096
查看次数

任何人都可以帮助我这个宏吗?

任何人都可以详细解释下面的宏做什么?

#define write_XDATA(address,value) (((char *)0x010000) [address]=value)
Run Code Online (Sandbox Code Playgroud)

谢谢!

c macros

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

标签 统计

c ×5

assembly ×2

x86 ×2

8051 ×1

embedded ×1

gcc ×1

gnu-assembler ×1

hardware ×1

interrupt ×1

macros ×1

pointers ×1

profiler ×1

valgrind ×1