认识计算机语言

来源:互联网 发布: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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中通快递寄丢了怎么办 中通快递丢了怎么办 物流没保价坏了怎么办 顺丰保值快递丢了怎么办 顺丰保价件丢失怎么办 公司购买货物对方没有发票怎么办 加工货物对方不取怎么办 物流发货发错了怎么办 货车拉的货丢了怎么办 壹米滴答丢货怎么办 物流东西弄丢了怎么办 理赔款账号打错了怎么办 顺丰快递搞丢了怎么办 论文表格跨页了怎么办 网线突然没网了怎么办 室内门高门洞矮怎么办 路基填方土质含水率大怎么办 公路工程材料价格不予调差怎么办 桩基偏位60公分怎么办 定义的跨板受力筋长度不够怎么办 支座梁体预埋钢板忘记埋了怎么办 做nt小孩头朝下怎么办 简历上传的照片太大怎么办 本科毕业论文没写英文摘要怎么办 气泵储气罐有个小眼漏气怎么办 吸拉开关坏了怎么办 窗口数量已达上限怎么办 村土地原始台账没有怎么办 涂防晒霜后出汗怎么办 张拉千斤顶泄荷回油不到位怎么办 隧道二衬打到一半没混凝土怎么办 在左车道骑电动车撞到车怎么办 电镐钻头卡住了怎么办 玩具机器人无线遥控不了怎么办 电锤锤头卸不下来怎么办 打地基没打出硬土层怎么办 中标的项目经理没有B证怎么办 12306证件被注册过怎么办 政府3p项目不给钱怎么办 电气没考上国网怎么办 小区宽带业务被个人承包怎么办