汇编语言(第3版)改版第1章,1.1,1.2

 

汇编语言(第3版)改版

 

 

 

    

    

 

 

 

 

 

目录

第1章 基础知识... 1

1.1 机器语言... 1

1.2 汇编语言的到来... 3

 

 

 

 

 

 

 

汇编语言(第3版)改版

第1章 基础知识

汇编语言是一种编程语言,是直接在硬件上工作的。首先,我们需要了解硬件系统的结构,才会有效的使用汇编语言进行编程。在本章中,这里只对一部分硬件系统的结构进行探讨,以便有一个好点的基础,可以开始后续课程的学习。在学习的过程中,当遇到难点,需要新的基础知识来补充的时候,如需要编程结构这个基础知识,那时,再介绍和讨论。这里的原则是:以后用到的知识,以后再说。

在汇编这门课程中,我们不对硬件系统进行全面和深入的研究,这个不在本课程之内。关于计算机和CPU的物理结构及编程结构,在《微机原理与接口》这门课程中进行;关于计算机的一般结构、功能、性能的研究,在《组成原理》这门课程中进行,这是一个更高层次的课程。汇编语言研究的重点是利用硬件系统的编程结构和指令集,有效灵活的控制系统进行工作。

1.1 机器语言

要知道汇编语言是怎么来的,需要了解一下机器语言。

机器语言是机器指令的集合。机器指令是计算机执行的命令。命令是由0和1构成的一列二进制数字,如101110000000000000000011。计算机将这些数字转变为一列高低电平,来驱动电子器件进行运算。

上面所说的计算机在早期的概念是指可以正确执行机器指令进行运算的机器。现在,是指含有一个芯片能够完成计算功能的个人计算机。这个芯片就是我们常说的CPU,是一种微处理器,是英文Central( /'sɛntrəl/ ) Processing( /proˈsɛsɪŋ/ )Unit( /'junɪt/ )的缩写,中文意思是中央处理单元。以后,我们说到的计算机是指由CPU和其他受到CPU直接或间接控制的芯片和器件、设备组成的计算机系统,如我们最常见的个人电脑。

每一种CPU由于在硬件设计和内部结构是不同的,可能用不同的电平脉冲来进行控制,使它工作,所以每一种CPU都有自己的机器指令集,也就是不同的机器语言。

在早期,程序设计均是使用机器语言。程序员用0和1这两个数字进行编程,将编写好的代码打在纸带或卡片上,1打孔,0不打孔,再将卡片通过纸带机或卡片机输入计算机,进行运算。

计算s=768+12288-1280,使用8086CPU来完成运算,机器码如下:

10111000 00000000 00000011

00000101 00000000 00110000

00101101 00000000 00000101

假如不小心将某一位写错,对于人类来说是非常的不容易识别,如下:

10111000 00000000 00000011

00000101 00000000 00110000

00010110 10000000 00000101

人类书写和阅读机器码程序都不是一个简单的工作,要记住所有抽象的二进制码,非常不容易。上面只是一个非常非常简单的小程序,就如此的晦涩难懂和不易查错。实际上一个有用的程序至少要有几十行机器码,那么,是如何呢?请看下面机器代码。

在屏幕上输出“welcome to masm” 机器码:

00011110                      

101110000000000000000000

01010000

101110001100011000001111

1000111011011000

1011010000000110

1011000000000000

1011011100000111

101110010000000000000000

1011011000011000

1011001001001111

1100110100010000

1011010000000010      

1011011100000000

1011011000000000      

1011001000000000

1100110100010000

1011010000001001

10001101000101100010101000000000

1100110100100001      

1011010000001010      

10001101000101100011000100000000

1100110100100001

1011010000000110

1011000000010100      

1011011100011001

1011010100001011

1011000100010011

1011011000001101

1011001000111100

1100110100010000

1011010000000010

1011011100000000

1011000000001100

1011001000010100

1100110100010000

1011010000001001

10001101000101100000000000000000

1100110100100001

11001011

看到这样的程序非常感慨吧,如果一不小心里边的某一个1被误写成0,查找是相当的麻烦了。

1.2 汇编语言的到来

早期的程序员很快就发现了使用机器语言带来的麻烦,它是如此的难于识别和记忆,给整个计算机行业的发展带来了障碍,于是,汇编语言就来了。

汇编语言的主体和核心是汇编指令。汇编指令决定了汇编语言的特性。汇编指令和机器指令的差别就是指令的表达上,汇编指令是机器指令便于记忆的表达。

例如:机器指令10001001 11011000表示把寄存器BX的内容送到AX中。对应的汇编指令是mov ax,bx。这样的表达与人类语言接近,便于识别和记忆。

操作:寄存器BX的内容送到AX中

机器指令:10001001 11011000

汇编指令:mov ax,bx

寄存器:是CPU的组成部分,可以用来存放数据的元器件。一个CPU中有多个寄存器,AX是其中一个寄存器的代号,BX则是另一个寄存器的代号。更多的内容将在以后的课程中讲解。

从此以后,程序员就开始用汇编语言来编写源程序了。但是,计算机能够识别执行的只有机器语言的指令,那么如何让计算机执行程序员编写的汇编指令呢?这时,就需要有一个翻译的程序,能够将汇编指令翻译为机器指令,这个翻译的程序就称为编译器。

步骤:程序员用汇编语言写源程序---->编译器将源程序编译为机器码---->交给计算机执行。

图1.1 用汇编语言编写程序的工作流程

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值