汇编语言的前言及相关的概念

一.前言

在学习汇编语言之前,我们要知道汇编语言是一门怎么样的语言。汇编语言是直接工作在硬件上的编程语言,学习好汇编语言之前最好先了解一下计算机硬件系统的结构和工作原理。

学习汇编语言的重点是学习如何利用硬件系统的编程结构和指令集进而有效地灵活地控制系统执行工作。

汇编语言,是除了机器语言外的最底层的编程语言了。学习这门语言,可以帮助我们更加深入地理解CPU,内存等硬件的工作原理。用机器的思维去操作计算机。汇编语言和机器语言是一一对应的,汇编语言被编译成机械语言,这样的程序执行效率更高。

学习后续内容之前,需要对一些基本的计算机知识有一定的认识,比如:具有计算机使用经验,熟悉不同进制,有一定的编程基础(c,c++)...

二.汇编的概念

1.计算机语言发展历史

计算机语言总的来说分为机器语言,汇编语言, 高级语言三大类。而这三种语言也恰恰是计算机语言发展历史的三个阶段。

1946年2月14号,世界上第一台计算机ENAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的语言是只有专家才能理解的语言,与人类语言差别极大,这种语言就称为机器语言。机器语言是第一代计算机语言,这种语言本质上是计算机能识别的唯一语言,人类很难理解。后来发展的语言能让人类直接理解但最终送入计算机的还是这种机器语言。

计算机发展到第二代,出现了汇编语言。汇编语言用助记符代替了操作码,用或标号地址符号代替地址码。这样就能用符号代替了机器语言的二进制码。汇编语言也称为符号语言。比起机器语言,汇编大大进步了。尽管还是复杂,用起来容易出错,但在计算机语言发展史上是机器语言向更高级语言进化的桥梁

当计算机语言发展到第三代时,就进入了“面向人类”的高级语言。高级语言时一种接近于人们使用习惯的程序设计语言。他允许用英文写计算机程序,程序中的符号和算式也与日常用的数学式子差不多。高级语言发展于20世纪50年代中叶到70年代,流行的高级语言已经开始固化在计算机内存里了,比如basic语言。

现在计算机语言仍然在不断发展,种类也很多,比如FORTRAN语言,COBOL语言,C语言,C++,C#,JAVA等

2.编程语言分类

计算机语言发展至今已经出现了很多种语言(C/C++,python,JAVA,C#.....),下面我们通过分类看一下他们有什么区别:

低级语言:机器语言,汇编语言

高级语言:c/c++,python,java,c#.....

低级语言优点在于接近底层,程序运行速度块,缺点也同样明显:程序复杂,开发效率低

高级语言虽然在运行速度上比不上低级语言,但是在开发效率上优点明显。但是高级语言不能直接被机器识别,需要进行一定的转换才可以被执行。

对于转换形式的不同还可以分为:

编译型语言:c/c++.......

将代码源文件(xxxx.c)经过编译器翻译之后生成可被机器执行的目标文件(机器语言),修改了源文件则需重新编译生成新的目标文件。

解释型语言:python,php......

类似于生活中的“同声翻译”,将源程序一边经过对应语言的解释器翻译成机器语言,一遍执行,执行效率较低,不能生成可独立执行的目标文件,且执行依赖于解释器

混合型语言:java

java语言比较特殊,属于混合型语言(半编译半解释)

3.机器语言

计算机诞生的初期,计算机上运行的语言就是机器语言。机器语言就是机器指令的集合,机器指令是一台计算机可以正确执行的命令,一条机器指令对应一个机器码(下图为第一台计算机ENIAC)

 早期的程序设计都是用机器语言,程序员将用0,1编写成的程序代码打在纸带/卡片上,再通过纸带/卡片将程序输入计算机,进行运算

如果要计算s=768+12288-1280,机器码(8086机器)如下

1表示打孔,0表示不打孔

也就是说程序执行到上述运算的时候,纸片上的数据应该按照上述的机器码进行打孔,可想而知如果出错,找错误也时需要考验眼力的(下图为输出welcome to masm 的机器码)

 

 4.汇编语言

由于机器语言难以辨别和记忆,很快人们就发明了另外一种方法来进行程序编写,这种方法也就是汇编语言。汇编语言的主体是汇编指令。相对于机器语言来说,汇编指令集在记忆上有了极大的改善,不同于机器码,汇编采用的是机器指令便于记忆的格式。

例如:机器指令1000100111011000表示把寄存器BX的内容送到AX中。

而汇编指令则为:mov ax,bx

这样的方式大大方便了编程人员对于指令的记忆,此后编程人员都是采用汇编指令集进行程序编写。但是我们需要理解的是计算机只能识别机器指令,将汇编指令直接输入到计算机中是不能直接识别的,故而我们在程序输入之前需要将汇编指令集转换成机器指令,实现这种转换方式的程序我们称为编译器。也就是说汇编程序的执行过程是程序员利用汇编编写程序文件,经过编译器翻译之后生成对应的机器码,再由计算机最终执行。

如下图所示

 汇编语言发展至今,有以下三类指令:

1)汇编指令:机器码的助记符,有对应的机器码

2)伪指令:没有对应的机器码,有编译器执行,计算机并不执行

3)其他符号:如“+ - * /"等,由编译器识别,计算机并不执行

汇编语言的核心是汇编指令,他决定了汇编语言的特性

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjj34

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值