汇编语言程序设计(一)
创始人
2024-05-28 12:27:00
0

前言

在学习汇编语言之前,我们应该要知道汇编语言他是一门怎么样的语言。汇编语言是直接工作在硬件上的一门编程语言,学习汇编语言之前最好先了解一下计算机硬件系统的结构和工作原理。学习汇编语言的重点是学习如何利用硬件系统的编程结构和指令集进而有效地灵活地控制系统执行工作。汇编语言,是除了机器语言外的最底层的编程语言了。学习这门语言,可以帮助我们更加深入地理解CPU、内存等硬件的工作原理。用机器的思维去操作计算机。汇编语言和机器语言是一一对应的,汇编语言被编译成机器语言,这样的程序执行效率更高。

对于从事嵌入式行业相关的人员来讲,学习汇编语言可以帮你写出效率更高的程序,也可以帮助编程人员更好地理解高级语言,比如c语言。那么对于java、python这类语言编程人员是否就一定不用了解汇编语言呢?诚然,对于使用这类语言的编程人员来说学习汇编可能收效甚微,但是了解汇编对高级语言的内部实现也会有更好的理解。注意这里所说的学习汇编,并不是要求用汇编进行大型程序开发,而且能够看懂一些常用汇编代码即可。

在学习后续内容之前,希望读者对于一些基本的计算机知识有一定的认知,比如:具备计算机使用经验,熟悉不同进制,有一定的编程基础(c、c++…)。

1.基础知识

1.1 计算机语言发展

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

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

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

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

1.2 编程语言的分类

计算机语言发展至今已经出现了很多种语言(c/c++,python,java,c#…),下面我们通过分类看一下它们有哪些区别:

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

高级语言:c/c++、python、java、C#…

低级语言优点在于接近底层,程序运行速度快,缺点也同样明显,程序复杂,开发效率低,而高级语言虽然在运行速度上比不上低级语言,但是在开发效率上优点明显。但是高级语言在不能直接被机器识别,需要进行一定的转换才可以被执行。

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

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

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

解释型语言:python、php…

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

混合型语言:java

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

1.3 机器语言

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

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

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

101110000000000000000011

000001010000000000110000

001011010000000000000101

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

在这里插入图片描述

1.4 汇编语言

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

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

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

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

如下图所示:

在这里插入图片描述

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

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

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

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

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

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...