arm汇编程序100例(C语言、汇编语言、机器指令、CPU之间是怎么联系起来的)
本文目录
C语言、汇编语言、机器指令、CPU之间是怎么联系起来的
CPU的全称是中央处理单元,是计算机进行运算的核心,根据使用的技术不同,CPU又分为X86,X64,ARM、DSP、单片机等不同的体系结构。在每种CPU上都有一套特定的指令集,这就是人们常说的机器指令,直接使用机器指令编写的程序就是机器语言程序。
理论上来说,是可以通过机器语言直接编写任何程序的(早期都是直接使用机器语言编程,那时程序相对比较简单),并且编写的程序可以直接运行,但是使用机器语言编程对程序员的要求极高,代码无法移植且不便于人直接阅读,于是人们发明了一组符号,用来表示这些机器指令,这就是汇编语言。汇编语言编写的程序计算机无法直接运行,需要一个叫做汇编器的程序转换为机器语言才可以在特定机器上运行。
而C语言是比汇编语言更高级的语言,使用C语言编写的程序也是无法在计算机上直接运行的,它需要编译器将C语言代码转换为机器语言,这个过程又分为几个子步骤,见下图。
为了使题主的问题更加完善,在这里补充两个概念,链接器与反汇编。
在大型程序中,往往会将任务分解为许多不同的子任务,每个子任务对应一个源文件,在C语言中就是多个C文件,编译器将每个C文件编译成一个目标文件(一般在Windows中是obj文件,Linux中是
.o
文件),这些目标文件也是机器指令,但是缺少一些必要的信息,无法直接运行,需要链接器将这些文件链接起来,再加上一些库文件与可执行文件头信息,成为一个可执行文件(Windows是PE格式,Linux是ELF格式)。通常,在查看一个二进制文件时(目标文件或者可行性文件),不会直接显示机器指令,而是以汇编语言显示,这是因为此过程中有一个反汇编程序,将机器指令转换为汇编语言,它的功能刚好与汇编过程相反。
要学习编程多久才能用汇编语言写程序
在使用汇编语言编写程序的时候需要一定的计算机科学与技术基础,所以如果你是计算机科学与技术专业的具有一定优势,当然机械、电子、自动化专业也有一定优势。
在学习汇编语言之前最好学会C语言编程,现在的ARM和DSP芯片基本都是厂家开发好的库函数来简化我们在工业自动化和智能化中的应用开发,比直接操作寄存器不知简单多少倍。
如果您想学习汇编语言,需要先把计算机组成原理、操作系统和C语言编程掌握。
计算机组成原理这门课你可以学习80C51单片机,当然也可以学IBM的8位或者16位的8086和8088(虽然芯片型号过时了,但是设计原理不变),当然直接学习ARM也可以,但是由于ARM体系过于复杂,会给初学者学习带来不必要的麻烦,不能使精力集中在原理的学习上。因为每种芯片有自己的指令系统,体系结构(比如冯诺依曼和哈佛结构)等特点。您需要注重计算机组成的原理性学习,比如如何设计自己的一套指令系统。
操作系统也要注重原理性学习,比如处理机管理、内存管理、IO管理DMA外设管理等,不然你写不出好程序来。
要问多久能学好写汇编程序,计算机、机械自动化相关专业大三学完这门专业课即可,如果您不是相关专业的可能会有些麻烦,建议你在网上买些我上述提到的视频,当然你喜欢计算机最好读个双学历,祝您成功!
关注《大数据和人工智能交流》头条号,看高科技最新资讯!
更多文章:

comfortablely(seat什么意思 comfortable和comfortablely的词性 谢谢)
2025年3月11日 13:30

competencies(competence 和competency的区别翻译句子)
2025年4月1日 15:30

gathering翻译(翻译几句话,很简单,但是请用人工翻译,谢谢)
2025年3月11日 00:50

html怎么显示表单提交的内容(html 表单提交的信息怎么查看)
2025年2月13日 00:40

gets和getchar区别(c语言中,gets()和puts()函数与getchar()与putchar()函数有何区别)
2025年3月30日 20:00

bigdecimal初始化为0(mybaits中的BigDecimal的值到底是NULL还是0)
2025年3月15日 20:50

元数据的定义?什么是元数据 是数据库中的概念 请不要说的太深奥 举一个有代表性的例子来说明
2025年2月18日 00:30

association标签(mybatis怎么根据id显示两个表的内容连接的小例子有哪些)
2025年4月2日 00:30