汇编
安静平和
这个作者很懒,什么都没留下…
展开
-
Linux GCC常用命令
1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Comp转载 2017-07-25 11:42:28 · 410 阅读 · 0 评论 -
汇编语言入门四:打通C和汇编语言
回顾上回我们把汇编里涉及到的寄存器和内存访问相关的内容说了。先来梳理一下:寄存器是一些超级小的临时存储器,在CPU里面,存放CPU马上就要用到的数据或者刚处理完的结果要处理的数据太多,寄存器装不下了,需要更多寄存器,但是这玩意贵啊内存可以解决上述问题,但是内存相比寄存器要慢,优点是相对便宜,容量也大插曲:C语言与汇编语言的关系还有一些疑虑,先暂时解释一下转载 2017-08-19 21:27:31 · 827 阅读 · 0 评论 -
汇编语言入门五:流程控制(一)
回顾前面说到过这样几个内容:几条简单的汇编指令寄存器内存访问对应到C语言的学习过程中,无非就是这样几个内容:超级简单的运算变量好了,到这里,我们继续接下来的话题,程序中的流程控制。文中涉及一些汇编代码,建议读者自行编程,通过动手实践来加深对程序的理解。若没有合适的环境,可参考第一篇文章的介绍来配置环境,也可以使用在线的汇编编程环境转载 2017-08-21 18:29:22 · 2073 阅读 · 0 评论 -
汇编语言入门六:流程控制(二)
回顾前面说到在汇编语言中实现类似C语言if-else if-else这样的结构,实际上,在汇编里面,我们并不关心if了,取而代之的是两种基本的指令:比较跳转这两种指令即可组成最基本的分支程序结构,虽然跳转指令非常多,但是我们已经有套路了,怎么跳转都不怕了。当然,在编程环境中仅有分支还不够的,我们知道C语言中除了分支结构之外,还有循环这个最基本也是最常用的形式转载 2017-08-22 15:11:27 · 518 阅读 · 0 评论 -
汇编语言入门七:函数调用(一)
想象想象你在计算一个非常复杂的数学题,在算到一半的时候,你需要一个数据,而这个数据需要套用一个比较复杂的公式才能算出来,怎么办?你不得不把手中的事情停下来,先去套公式、代入数值然后...最后,算出结果来了。这时候你继续开始攻克这个困难题目的剩下部分。用脑子想刚刚说的这个过程,可能有点小问题,尤其是对脑子不太好使的人来说。想象你做题目做到一半的时候,记忆力已经转载 2017-08-22 16:00:39 · 1654 阅读 · 0 评论 -
汇编语言入门八:函数调用(二)
回顾上回说道,x86汇编中专门提供了两个指令call和ret,用于实现函数调用的效果。实际上函数调用就是程序跳转,只是在跳转之前,CPU会保存当前所在的位置(即返回地址),当函数返回时,又可以从调用的位置恢复。返回地址保存在一个叫做“堆栈”的地方,堆栈中可以保存很多个返回地址,同时借助于堆栈的进出逻辑,还能实现函数嵌套、递归等效果。同时前面还简单地提到了函数调用过程中的参数和返回值转载 2017-08-22 17:02:47 · 3771 阅读 · 0 评论 -
汇编语言入门二:环境有了先过把瘾
汇编语言入门二:环境有了先过把瘾上回说到,咱们把环境搭好了,可以开始玩耍汇编了。寄存器是啥玩意儿?开始学C的时候,有没有一种感觉,变量?类型?我可是要改变世界的男人,怎么就成天在跟i++较劲啊?这黑框程序还只能用来算数学,跟说好的不一样呢???想必后来,见得多了,你的想法也不那么幼稚了吧。好了,接下来汇编也会给你同样一种感觉的。啥玩意儿?寄存器?寻址?说好的变量类型循环转载 2017-08-15 22:45:26 · 545 阅读 · 0 评论 -
汇编语言入门三:是时候上内存了
上回说到了寄存器和指令,这回说下内存访问。开始之前,先来复习一下。回顾寄存器寄存器是在CPU里面寄存器的存储空间很小寄存器存放的是CPU马上要处理的数据或者刚处理出的结果(还是热乎的)指令传送数据用的指令mov做加法用的指令add做减法用的指令sub函数调用后返回的指令ret指针和内存高能预警高能预警,后面转载 2017-08-15 23:17:53 · 2754 阅读 · 0 评论