![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
hemeinvyiqiluoben
这个作者很懒,什么都没留下…
展开
-
【SDCC】开源的单片机C语言编译器
转自:http://blog.sciencenet.cn/blog-1750-689572.html SDCC的全称是Small Device C Compiler,所以不仅仅是单片机的编译器;目前SDCC支持Intel 8051, Maxim 80DS390, Zilog Z80与Motorola 68HC08 等系列CPU的代码编译。免费、开源、跨平台。 官方地址: h...转载 2018-11-05 14:33:15 · 9090 阅读 · 0 评论 -
从汇编角度查看C语言函数调用约定【非常有用】
转自:https://blog.csdn.net/Holmofy/article/details/76094986 为了防止出现不必要的代码影响汇编语言的查看,所以程序中不使用任何库函数,以保持汇编代码的简洁。这里所使用的汇编是VC的MASM。默认函数调用方式__cdeclint add(int a, int b) { return a + b;}int main(...转载 2018-12-11 23:38:20 · 581 阅读 · 0 评论 -
深入理解C语言(汇编语言程序员角度)
转自:http://blog.sina.com.cn/s/blog_16696ec8f0102wq2d.html 一、比较C与汇编的语言要素(可有表格、例子等)1.数据类型比较:所有数据类型(数与信息、无符号、有符号等;包括布尔类型、 指针、多维数组、结构、联合、自定义类型等; 类class(选作可加分)汇编语言: BYTE 8位无...转载 2018-12-11 23:36:56 · 4421 阅读 · 0 评论 -
反编译系列教程
转自: https://blog.csdn.net/u011001084/article/details/50914663 0x00 简介《编译原理》课程在大学本科阶段就难道了很多计算机专业的同学。而反编译技术更需要从事者具有深厚的编译技术基础,因此一直是很多业内人士希望能够深入了解和掌握的一门技术。从现在开始,我们讨论反向编译的一些内容。顾名思义,反编译可以认为是编译的逆过程,这...转载 2018-12-11 23:29:57 · 20241 阅读 · 0 评论 -
利用反汇编手段解析C语言函数
转自: https://blog.csdn.net/songjinshi/article/details/8450419 1、问题的提出函数是 C语言中的重要概念。利用好函数能够充分利用系统库的功能写出模块独立、易于维护和修改的程序。函数并不是 C 语言独有的概念,其他语言中的方法、过程等本质上都是函数。可见函数在教学中的重要意义。在教学中一般采用画简单的堆栈图的方式描述函数调用,但由于...转载 2018-12-11 23:26:14 · 352 阅读 · 0 评论 -
C语言编译过程详解
转自: https://www.cnblogs.com/CarpenterLee/p/5994681.html 前言C语言程序从源代码到二进制行程序都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。编写hello world C程序:// hello.c#include <stdio.h>int main(){ p...转载 2018-12-07 00:01:08 · 2103 阅读 · 0 评论 -
C语言中堆和栈的区别
转自:https://blog.csdn.net/tigerjibo/article/details/7423728 一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。...转载 2018-12-06 23:53:13 · 424 阅读 · 0 评论 -
C语言函数调用过程的汇编分析
转自: http://www.cnblogs.com/xiaojianliu/articles/8733560.html 下面一段C程序:int bar(int c, int d){int e = c + d;return e;}int foo(int a, int b){return bar(a, b);}int main(void){foo(2,...转载 2018-12-06 23:51:44 · 638 阅读 · 0 评论 -
C++的堆和栈(栈是汇编指令集自带的,堆是由操作系统维护的逻辑结构)
转自: https://www.cnblogs.com/likwo/archive/2010/12/20/1911026.html 内存分配方面:堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次...转载 2018-12-12 23:16:56 · 780 阅读 · 0 评论 -
c++ 堆和栈的区别(又一篇)
转自: https://bbs.csdn.net/topics/390292159 用户 baichi4141 栈内存的效率的确是最高的,因为栈并不是一次次的分配内存,而是初始分配整个内存,每次压栈的时候只是单纯的移动栈指针而已但栈的优点和缺点是一体的,都源于它的概念“先进后出”。简单地说,你先压栈一万字节,再压栈五个字节,在这五个字节被弹出栈之前,那一万个字节必须一直放在栈内——哪...转载 2018-12-12 20:35:16 · 459 阅读 · 0 评论 -
【操作系统】堆与内存管理概述
转自: https://blog.csdn.net/bitboss/article/details/70154146 —–要说到操作系统的堆与内存的管理的话,那内容真的是海了去了,从开始的地方就能不停的扩展,但内容的重要性也是不可言喻的,本片博客着重于总结以下三点:Linux的虚拟地址空间布局堆和栈的管理,堆和栈的区别中间会涉及到一些扩展的知识,但是不会细说!开始的地方: 程序...转载 2018-12-12 17:01:03 · 947 阅读 · 0 评论 -
教你如何用AST语法树对代码“动手脚”
转自:https://blog.csdn.net/seeyousoonhhh/article/details/77186946 作为程序猿,每天都在写代码,但是有没有想过通过代码对写好的代码”动点手脚”呢?今天就与大家分享——先抛一个问题:如何将图一代码改写为图二?此题需要把代码中和程序逻辑无关的字符串提取出来,替换为id。比如个推日志输出类,缩短日志描述信息后,输出的日志就随...转载 2018-12-05 13:52:15 · 479 阅读 · 0 评论 -
C 语言 抽象语法树AST
转自: https://blog.csdn.net/u012935901/article/details/17284469 (一)简介抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有以节...转载 2018-12-05 13:51:15 · 3335 阅读 · 0 评论 -
有限状态自动机 (类似的还有 下推自动机 、图灵机)
转自百度百科 有限状态自动机(FSM "finite state machine" 或者FSA "finite state automaton" )是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型。有限状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移。有限状态自动机可以表示为一个有向图。有限状态自动机是自动机理论的研究对象。中文...转载 2018-11-26 14:33:36 · 3047 阅读 · 0 评论 -
分析简单的c语言函数编译得到的X86汇编代码(VS2013)
查看源代码生成的汇编代码:单步调试->调试->窗口->反汇编 总结:①、函数被调用时,实参值赋值给函数栈中的形参,使用以下步骤: I、call函数前实参值压栈 II、函数中分配局部变量的代码执行完 III、使用原始栈顶值 ebp 的正偏移量(实参),和负偏移量(形参),配合mov指令来实现值传递,如: ...原创 2018-12-12 13:36:39 · 1497 阅读 · 2 评论