认识计算机语言
来源:互联网 发布:windows technical 编辑:程序博客网 时间:2024/04/23 20:51
计算机语言
1.1 计算机语言分为低级语言和高级语言
低级语言:机器语言和汇编语言高级语言:除了上述两种的其他的语言。本书指的是c语言
1.2机器语言。
计算机是由无数电路组成的,每个电路有两种状态,不带电的状态0以及带电的状态1。无数个0和1组成了计算机的语言也就是机器语言。计算机能直接执行机器语言的程序。用机器语言去实现两个数相加程序是这个样子的。c7 45 fc 01 00 00 00c7 45 f8 02 00 00 008b 45 f88b 55 fc 01 d0 89 45 f4
注意这里字母其实是数字对应如下
a是10 b是11 c是12 d是13 e是14 f是15
程序都是由指令和数据组成的。机器语言的第一列就是指令c7,8b,01 89这些是指令。除了指令其余的是数据,指令是指做什么,比如加减。数据表示对谁操作,比如两个数相加。加是指令,两个数就是数据。
1.3汇编语言
要搞清楚每一个数字表示的指令是什么意思需要查很多的表格,非常麻烦不容易记忆和理解,但是计算机能直接运行。
后来聪明的人们想到用一些符号去表示指令数字能更加方便人们理解和掌握。于是汇编语言诞生了。汇编语言实现两个数相加是这个样子的。
movl $0x1,-0x4(%rbp)movl $0x2,-0x8(%rbp)mov -0x8(%rbp),%eaxmov -0x4(%rbp),%edxadd %edx,%eaxmov %eax,-0xc(%rbp)
比较机器语言版本的和汇编语言版本的程序你会发现两者是一行对应一行的,汇编只是把指令数字替换成了人们更易理解的符号。汇编方便人们的开发理解,但是问题来了,这样的程序计算机不能直接执行了。
人们想到我再做个东西,这个东西再把汇编的符号更换成机器语言对应的指令数字就好了。这个东西就叫做编译器。从此人们用汇编写程序,然后用编译器翻译成机器语言,机器就可以直接执行了。
1.4 c语言
汇编语言的指令是基于cpu的,同样的汇编程序在intel的cpu下能运行,在其他厂家的cpu上可能无法运行,我们更加希望我们的程序能与硬件没有关系。能更加独立。于是高级语言出现了,我们这里讨论高级语言里的c语言。
c语言两个数相加代码
int b = 1;int c = 2;int a = b+c;
这个就更简洁,更方便理解和记忆了。怎么解决不同的cpu指令不同的的问题呢。c语言的编译器做的更强大。 它有所有的cpu的指令,在编译程序的时间,根据你的cpu来生成对应的机器代码。从而实现了我们的c程序能够与硬件无关。
总结:
计算机只能处理数字,由无数个0和1组成的数字使用非机器语言编写的程序需要一个叫做编译器的程序翻译成机器语言才能执行C语言能够开发出独立于硬件的程序。程序是由指令和数据组成的,指令告诉机器怎么操作,数据表示对什么数操作。
0 0
- 认识计算机语言
- 对于计算机语言的认识
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- 计算机语言
- mamp yaf
- 得到[0~b]范围内A的倍数
- 八大排序算法(一) 直接插入排序
- JZOJ4843. 相位幻击
- 【文智背后的奥秘】系列篇——结构化抽取平台
- 认识计算机语言
- 类图和对象图详解
- 线程的创建方式(2+1)
- 小弱石的求职季笔记(二)
- angularJS过滤器<div > <p>{{name}}</p><!--识别空格和换行--> </div>
- 小码哥杯java程序比赛复习(十二)集合和泛型(上)
- 关于连接参数-Ttext
- AngularJS ng-repeat下使用ng-model
- 关于 HTTP GET/POST 请求参数长度最大值的问题