当前位置: 首页 > news >正文

展示网站报价培训网站搭建

展示网站报价,培训网站搭建,苏州做学校网站的,衡水做网站公司本文来自《程序员的自我修养》 编译过程是把预处理完的文件进行一系列词法分析,语法分析,语义分析以及优化后生成相应的汇编文件代码。 现在版本的GCC把预编译和编译两个步骤合并为一个步骤。 gcc -S HelloWorld.c HelloWorld.sint main() {//test/* …

本文来自《程序员的自我修养》

编译过程是把预处理完的文件进行一系列词法分析,语法分析,语义分析以及优化后生成相应的汇编文件代码。

现在版本的GCC把预编译和编译两个步骤合并为一个步骤。

gcc -S HelloWorld.c HelloWorld.s
int main()
{//test/* test */return 0;
}
	.file	"HelloWorld.c".text.globl	main.type	main, @function
main:
.LFB0:.cfi_startprocendbr64pushq	%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq	%rsp, %rbp.cfi_def_cfa_register 6movl	$0, %eaxpopq	%rbp.cfi_def_cfa 7, 8ret.cfi_endproc
.LFE0:.size	main, .-main.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0".section	.note.GNU-stack,"",@progbits.section	.note.gnu.property,"a".align 8.long	1f - 0f.long	4f - 1f.long	5
0:.string	"GNU"
1:.align 8.long	0xc0000002.long	3f - 2f
2:.long	0x3
3:.align 8
4:

------------

对于C语言的代码来说,这个预编译和编译的程序是cc1,

对于C++来说,对应的程序是cc1plus;

实际上gcc这个命令只是这些后台程序的封装,它会根据不同的参数要求去调用预编译编译程序cc1,汇编器as,链接器ld.

--------------

汇编器将汇编代码转变为机器可以执行的指令,每一个汇编代码几乎都对应一条机器指令,所以汇编器的汇编过程相对于编译器来说比较简单,没有复杂的语法,没有语义,不需要做指令优化;

只是根据汇编指令和机器指令的对照表一一翻译即可。

gcc -c HelloWorld.s -o HelloWorld.o

把汇编代码转为机器指令。

----------

机器指令是计算机能够直接理解和执行的最基本的命令。它们通常以二进制形式存在,是硬件与软件交互的桥梁。每一条机器指令都对应着处理器上的一个特定的操作,比如数据传输、算术计算、控制操作等。

以下是机器指令的一些基本特点:

  1. 二进制格式:机器指令通常由一系列的二进制数表示,这些二进制数可以被计算机的CPU直接解读。

  2. 操作码:每条机器指令都包含一个操作码(Opcode),它指定了CPU要执行的操作类型,如加法、减法、移动数据等。

  3. 操作数:大多数指令还包括一个或多个操作数,这些操作数指定了数据的位置,例如寄存器、内存地址或者指令中直接包含的常数。

  4. 指令长度:不同架构的CPU,其机器指令的长度可能不同。有的指令可能是固定长度的,而有的可能是变长的。

  5. 执行顺序:机器指令通常按照它们在存储器中的顺序执行,除非遇到跳转指令或者其他改变执行流程的指令。

以下是一些常见的机器指令类型:

  • 数据传输指令:如MOV(移动数据),用来在寄存器与内存之间或者寄存器之间传输数据。
  • 算术指令:如ADD(加法)、SUB(减法)、MUL(乘法)、DIV(除法)等,用于执行数学运算。
  • 逻辑指令:如AND、OR、NOT、XOR等,用于执行逻辑运算。
  • 控制流指令:如JMP(跳转)、JE(等于时跳转)、JNE(不等于时跳转)等,用于改变程序的执行顺序。

程序员通常使用高级编程语言来编写程序,然后通过编译器或解释器转换成机器指令,计算机才能执行这些程序。机器指令直接与硬件相关,因此它们在不同的计算机架构之间通常是不同的。

-------------

MOV 既可以作为机器指令,也可以作为汇编指令。

在汇编语言中,MOV 是一个汇编指令,它用于指示处理器将数据从一个位置移动到另一个位置。当程序员编写汇编语言程序时,他们使用 MOV 这样的助记符来表示他们想要执行的数据移动操作。

当汇编语言程序被汇编器(assembler)转换成机器代码时,MOV 汇编指令会被翻译成对应的机器指令。这个机器指令是处理器可以直接执行的二进制编码,它具体表示了移动数据的操作

所以,MOV 在汇编语言层面是一个汇编指令,而在机器代码层面则对应一个或多个具体的机器指令。不同的处理器架构可能会有不同的机器指令来执行 MOV 操作。例如,在 x86 架构中,MOV 汇编指令会对应于一个特定的机器指令操作码,而在 ARM 架构中,它可能对应于不同的机器指令操作码。

http://www.mmbaike.com/news/42903.html

相关文章:

  • 网页制作软件哪里有桂平seo快速优化软件
  • 客户网站留言百度广告联盟赚广告费
  • 国内有奖活动第一分享平台保定关键词优化软件
  • 网站建设服务好长春网站优化方案
  • axure做的购物网站新品推广活动方案
  • 有口碑的坪山网站建设企业网站有哪些类型
  • 网站后台样式排名优化软件点击
  • 达州网站制作关键词搜索次数查询
  • 什么网站做的产品海报比较多目前最火的自媒体平台
  • 网站页脚怎么做美观网络推广什么做
  • 如何查询网站域名备案排行榜百度
  • 海南做网站的公司有哪些上海企业网站推广
  • 网站建设需要些什么软件外链推广网站
  • 济南建设网站制作宁波 seo排名公司
  • 网站建设专业简介阐述网络推广的主要方法
  • 周村网站建设网络营销是做什么
  • 重庆北京网站建设搜索引擎优化心得体会
  • 学习网页设计与制作的网站永久开源的免费建站系统
  • 有没有做线播放网站网址缩短
  • 建立网站 多少钱网站建设技术托管
  • 要解析做邮箱以及网站头条站长平台
  • 彩票网站的代理怎么做沈阳百度seo排名优化软件
  • 网站建设中 模版销售找客户的方法
  • 博客 建立网站推广网站多少钱
  • 建个网站花钱做百度推广个人博客网页设计
  • 做网站用c 还是php博客优化网站seo怎么写
  • 网站制作字体免费的外贸b2b网站
  • 高州市网站建设快速排名方案
  • 临沂 企业网站建设网站收录怎么弄
  • 做网站的云服务器选什么济南网站制作