编译器怎么知道源程序位置
‘壹’ 一个编译器至少包含三个部分的进程是什么
一个典型的编译程序通常包含8个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。
(1) 编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语
言,则此翻译程序称为编译程序。
(2) 源程序:源语言编写的程序称为源程序。
(3) 目标程序:目标语言书写的程序称为目标程序。
(4) 编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与
目标机无关。通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶
段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符
号表管理等工作。
(5) 后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,
即目标代码生成,以及相关出错处理和符号表操作。
(6) 遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。
中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理
‘贰’ 如何找到软件的源代码
软件的源代码,基本是没有办法的,因为软件运行时都是编译后的程序,也就是把源代码翻译成计算机能执行的代码,一般的破解是破解功能限制,注册限制,反编译也只是能得到汇编代码,也很难看懂的。
‘叁’ 编写好c语言源程序后如何进行编译和运行
编写好C语言源程序后,需要按照以下步骤进行编译和运行:
1. 保存源代码文件,确保文件扩展名为“.c”。
2. 使用C语言编译器将源代码文件编译成目标文件。在命令行中输入“gcc 源文件名.c -o 目标文件名”即可进行编译。如果编译成功,将生成一个目标文件。
3. 将目标文件链接成可执行文件。在命令行中输入“gcc 目标文件名.o -o 执行文件名”即可进行链接。如桐弊陵果链接成功卜败,将生成一个可执行文件。
4. 运行可执行文件。在命令行中输入“./执行文件名”即可运行程序。如果一切正常,程序将输出预期的结果。
需要注意的是,编译和运行C语言程序需要相应的环境配置,包括C语言编译器和操作系统等。此外,不同的操作系统和编译器可能具有不同的命令行语法和选项,因此需要根据实际情况进行调局戚整。
‘肆’ keil如何快速找到代码
高级查找
步骤一:首先工程编译选项中要选择如图一:【Browse Infomation】选项,即浏览信息。
全编译工程至没有错误,这一点很重要,如果有严重的错误,则可能没有编译完,即一般的查找可能不会查到整个工程文件的内容,选成搜索的信息不全或是没有。
图一:设置编译选项
步骤二:如图二,双击需要查找的内容选中后,点击右键,选择查找项:
这里为简单的查找方式,方便与快速。可以查找到相关的定义及调用情况,在哪个文件里。这里必须是全编译通过的工程源码。
图二:选中并右键查找。
步骤三:如图三,部分汇编函数的变量或是函数名无法找到。有时查不到,怎么办呢?继续以下的方法。
图三:简单的查找没有找到相关项。
步骤四:如图四,选中后,通过Edit->Find in files..高级查找功能。这里要点就是设置搜索筛选的条件及文件范围,如是否精确查找或是只要部分包含等选项。
图四:打开高级查找功能:工程文件内容搜索。
步骤五:设置文件搜索的选项,尤其是工程文件夹,默认有可能不是整个工程文件夹。这里点击浏览选择整个工程文件。
图五:设置搜索选项。
步骤六:保证搜索文件范围为整个工程文件主目录。选择后,即可进行搜索了查找了。
图六:选择文件主目录。
步骤七:点击查找后,查看搜索到的信息。查看搜索到的结果,有可能很多,可以重新查找并修改查找选项等。
图七:文件搜索到的信息。
步骤八:双击并定位查看指定的搜索信息。双击即可定位并查看查找的结果。
图八:定位并查看指定的搜索信息。
有时需要对工程源码进行从头到尾的学习与消化,因此,查找功能还是比较有用的。从而让变量定义或是函数定义等无处藏身。虽然步骤很多,其实很简单。
最重要的,学习在于积累,有些技术的东西,就要多动手,然后再举一返三,熟能生巧。
张世争
微信公众号
嵌入式开发技术经验分享
打开CSDN,阅读体验更佳
keil c51 关键字_行知zzz的博客_c51扩展关键字
keil c51 关键字 一:KeilCx51扩展的关键字: •at•alien •bdata •bit •code •compac •data •far •idata •interrupt •large •pdata •priority•reentrant...
继续访问
KeilC51基本关键字_dylan_zhouhailiang的博客_c51关键字
KeilC51基本关键字 一、由ANSI标准定义的共32个: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof ...
继续访问
keil编辑环境下_“搜索”功能窗口中_Bookmark All命令的便捷之处
在keil编辑环境下,有时候调用一个函数,这个函数有执行的前提条件,比如要执行函数体内容得满足:if (cmdArrived) 条件; 可是变量:cmdArrived在哪里定义的? 在哪个函数里变量:cmdArrived满足条件,要怎么找比较快呢。 ctrl + F 打开搜索框,输入“cmdArrived”,再点击“Bookmark All”命令,所有的“cmdArrived”调用行全部使用了书签,这样就比较好着了; keil编辑环境工具栏搜索框输入cmdArrived,点击右边搜索命令,再点击“Book
继续访问
Keil 查找功能的使用
keil中如何查找和替换以及一个工程里所有文件所包含查找和替换的内容: 1、点击 edit-find或者快捷键 ctrl+f; 2、在look in中 选择current document就是查找或替换本文件的内容, 选择current project就是查找或替换整个工程的包含的内容 ...
继续访问
MDK keiluvision Volatile关键字的用法_点点墨的博客
MDK keiluvision Volatile关键字的用法 在定义变量时,变量前面加volatile修饰,作用是防止相关变量被优化。 例如对外部寄存器的读写。对有些外部设备的寄存器来说,读写操作可能都会引发一定硬件操作,但是如果不加volatile,编译器会把这些...
继续访问
Keil中的code关键字_weixin_30823001的博客
Keil中的code关键字 一般说来,我们在C语言中定义的每一个变量初始化后都会占用一定的内存(RAM)空间。但是在keil中提供了一个特殊的关键字“code”,这个关键字在标准C中是没有的。其语法举例如下:...
继续访问
keil C51 中的库函数
非常有用的keil c51 库函数文档,受益匪浅,
Keil C51 V9.00/uVision 4基础
<br /> <br />Keil C51 V9.00 即09年发布的最新版本uVision 4,版本外观改变比较大<br />可以使用以前的注册文件<br />如果全新安装,在VISTA或者WIN 7系统下,请使用管理员方式运行,然后注册即可无限制运行<br />注册方法:<br /> 1. 安装Keil C51 V9.00版本,即uV4<br /> 2. 打开uVision4,点击File---License Management...,打开License Management窗口,复制右上
继续访问
解决Keil 搜索关键字时不能跳转到所在位置的问题
问题:KEIL搜索结果不能跳转的问题分析过程:最近遇到一个问题:在keil5.1中ctrl+shift+s全局搜索,双击搜索结果后无法跳转。重装软件,换版本,修复电脑我都试了,都没用。最后发现,原先的程序可以跳转,而后来修改的不行。相同的工程在相同的目录下为什么一个可以一个不行呢?发现唯一的区别就是两个工程文件夹名称不同,由于修改过的版本我在工程文件名附加了 “(0922)”,我把括号去掉后就可以...
继续访问
keil5寻找自定义函数的位置
keil中想快速的找到自定义函数的位置,如下所示: 想找到CAN定义的函数位置: 第一步:先对程序进行build(第一步非常重要,如果不build,就不能用后面的快捷键与go to!!!) 第二步:可以光标放到函数的位置右击,然后点击go to definition…或者按F12 ...
继续访问
KEIL5 全局搜索关键字功能用不了的解决办法(CTRL+F)
CTRL+F跳出搜索界面 点击Find in Files 项目卡,选择Current Project即可。
继续访问
STM32F4工程--KEIL--搜索关键字
STM32F4工程--KEIL--搜索关键字 在.C文件或.H文件中搜索一个关键字 方法: ctrl+F 输入关键字即可查询 (问题解决,如果对大佬您有帮助的话,给小丁个赞呗,谢谢大佬)
继续访问
最新发布 如何通过KEIL查看所定义函数入口在内存的地址
如何通过KEIL查看所定义函数入口在内存的地址
继续访问
Keil软件开启“查找变量定义”功能方法
在使用Keil软件编写程序时,有可能将程序的变量定义和使用放在了不同的位置, 有时候想要查看变量的定义,可以使用Keil软件的查找功能。 1、使用Find功能一个个查找变量,在Keil界面输入 Ctrl+F,弹出查找界面。 将要查找的内容输入[Find what]查找框,[Look in]框选择"Current Document",然后点击"Find Next"就可以在当前文件一...
继续访问
Keil使用技巧及常见问题
文章目录Keil的使用快捷键Keil中使用Ctrl+Shift+F:在多个文件中搜索变量/函数(Find in files) Keil的使用快捷键 Keil中使用Ctrl+Shift+F:在多个文件中搜索变量/函数(Find in files) 搜索条件 说明 Find what 输入要搜索的关键字 指定要搜索的文件类型 指定要搜索的文件夹/工程 搜索属性...
继续访问
keil的主要功能和作用_keil进阶教程
前言keil只懂得创建软件工程是远远不够的,如果要想顺心使用,应该要懂得部分配置,这样使用心情顺畅,码代码也会越发高效。设置字号字体点击编辑菜单,会出现很多子目录,找到配置,点击进入设置页面。看到上方的子栏目,去选择colors,进入新界面,单片机用C语言编写·,那就点击编辑c文件,右边会出现字号,字体,字色设置,按照个人需求自行设置。改正错误有时候各种因素会出现编程错误,但自行又找不到错误在何处...
继续访问
KEIL5全局搜索,在find in files框内双击搜索内容,不能跳到相应位置
文件名包含了()括号,去掉就可以了。
继续访问
热门推荐 keil编程关键字没有彩色,找不到Keyword和 C++files解决办法
打开颜色设置,如果没有C/C++ Editor files 你就无法修改你的代码界面关键字颜色。 这种情况,很有可能是你的Keil安装目录下含有中文路径(一般国外专业软件我都放在D盘第一目录下的新建英文文件夹(Softwares)中,养成文件夹存放的好习惯,日后无论是安装还是找路径都会方便许多。),将你的Keil安装文件整个拖到英文目录下,或者修改目录名为英文。 接下来重启软件,就可以设置关键字了。 注意:修改前关闭keil,如果文件名无法修改,说明当前有文件里的东西正在运行。需关闭”修改目录“所在文件里的
继续访问
Keil代码整体偏移和查找功能
选中要偏移的代码,然后按TAB键,所有被选中的代码就会向后偏移TAB,TAB等于多少个空格,可以在“Edit”-“Editor”-“C/C++ Files”下面设置。 如果要返回,则选中目标代码,按Shift+TAB就行了。 Keil的查找功能
继续访问
Keil如何查看函数或变量调用---非Ctrl F
今天公司新人问我,Keil这个编译器怎么查看一个函数都在哪里被调用?我脱口而出 辣鸡软件只能用Ctrl F慢慢找。。要么你就先用SourceInsight编辑代码,改好了再去编译吧。 好好的编译器怎么会没有这个最基本的功能呀?? 想着这个问题,于是就有了今天的意外之喜。 操作方法如下: 在View中调出SourceBrowser这个窗口,将需要查找定义及调用位置的 函数、变量、宏等复制到Symbol处,回车 你就可以看到Definitions&References了,双击可以跳转到对应的代码位置。这
继续访问
keil查找函数引用的方法
1.快捷键ctrl+f 2在Find in Files中填要找的,Find all. 3.ojbk
继续访问
如何在KEIL里面搜索一个函数名或者字符串
使用Ctrl + F 会出现如下弹窗,这个就是一个搜索窗口。 这个弹窗的搜索内容会和你之前选中的字符串一样,同时可以选择在一个文件下找,也可以选择查找那个文件含有这个字符串 查找含有某一个字符串的文件 ...
继续访问
实验一 单片机 绘制原理图
实验一 2.2绘制原理图 1.首先在开始菜单栏里面输入“ISIS”打开软件; 2.1)单击元器件列表窗口上边的按钮P,弹出图2.1所示元器件选择窗口; 图2.1 2)在该窗口左上方的关键字文本框内输入8051,在窗口右上方的栏中将显示出80C51图形符号,同时显示该器件的虚拟仿真模型VSM DLL model(MCS8051.DLL)如图2.2; 图2.2 3) 用鼠标从器件选择窗口中选中需要的器件,单机确定按钮后,选择的器件将出现在预览窗口中如图2.3; 图2.3 4)将鼠标指向编辑窗口并单
继续访问
keil查找关键字
Keil
‘伍’ java源文件编译时要放在哪里
很可能是编译的路径没选对,用绝对路径也可以,用相对路径也可以,绝对路径:就是cmd调出管理员窗口后,输入javac E:\xuexi\HelloWord.java。其中E:\xuexi\HelloWord.java就是源程序HelloWord.java的绝对路径,即源程序文件在哪里,它的绝对路径就是从类似上述例子的路径。相对路径:一直点一直点,找到你写的源文件HelloWord.java,然后在最上面路径那一栏中把原来的名字全部删掉,输入cmd,这就是相对路径。例如HelloWord.java在E:\xuexi下,只需要把最上面路径栏里的E:\xuexi删掉,换成cmd回车就可以了,最后再输入javac HelloWord.java就可以编译。如果有错误也会报错。