![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C & 汇编
文章平均质量分 89
drizztzou
这个作者很懒,什么都没留下…
展开
-
汇编语言超浓缩教程
对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必转载 2007-06-07 10:46:00 · 488 阅读 · 0 评论 -
ARM汇编语言面试题
What registers are used to store the program counter and linker register? A: r15 and r14 are used to store the program counter and linker register, respectively. What is r13 ofter转载 2007-06-13 23:26:00 · 3335 阅读 · 0 评论 -
什么是堆?什么是栈?
一 英文名称 堆和栈是C/C++编程中经常遇到的两个基本概念。先看一下它们的英文表示:堆――heap栈――stack二 从数据结构和系统两个层次理解 在具体的C/C++编程框架中,这两个概念并不是并行的。深入到汇编级进行研究就会发现,栈是机器系统提供的数据结构,而堆是由C/C++函数库提供的。这两个概念可以从数据结构和系统两个层次去理解:1、从数据结构层次理解,栈是一种先进转载 2007-06-13 23:48:00 · 1518 阅读 · 0 评论 -
大内高手--对内存的认识与使用
我一直认为作为一个在linux下工作的C程序员,若对内存有深刻的认识,不但程序的性能会更高,运行更稳定,编程速度也会更快。反之亦有相反的效果,有时一些内存错误让你摸不着头脑,不但大大降低开发速度,开发出来的软件稳定性也值得怀疑。 为了提高组员的编程水平,去年我制定了一系列的培训计划,并负责主讲部分重要课程,其中基础类课程中,有一堂关于内存的课程。当时的讲稿写得很粗略,后来的新同事说看不明白转载 2007-06-11 22:52:00 · 3994 阅读 · 0 评论 -
Linux 调试技术
您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起。 本文讨论了四种调试 Linux 程序的情况。在第 1 种情况中,我们使用了两个有内存分配问题的样本程序,使用 MEMWATCH 和 Yet A转载 2007-06-11 23:17:00 · 692 阅读 · 0 评论 -
创建线程时的几个陷阱
前几天帮同事查一个多线程的BUG,不到十秒钟我就找到了问题的根源。N年前我曾犯过类似的错误,呵,今天仍然有人在重复。这些问题都比较典型,把它们写出来,供新手参考吧。 l 用临时变量作为线程参数的问题。 #include stdio.h> #include转载 2007-06-11 23:01:00 · 538 阅读 · 0 评论 -
使用kgdb调试linux内核及内核模块
1. 几种内核调试工具比较kdb:只能在汇编代码级进行调试; 优点是不需要两台机器进行调试。gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试)使用kdb和g原创 2007-06-11 23:16:00 · 1008 阅读 · 1 评论 -
Linux 汇编语言开发指南
一、简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件转载 2007-06-11 23:20:00 · 1127 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之内存操作
数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况: (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址; (2) 两个CPU之间以双端转载 2007-06-13 23:51:00 · 922 阅读 · 0 评论