第1章 汇编语言程序设计概述
汇编语言是一种面向机器的、能够充分利用计算机硬件特性的低级语言,它随机器结构的不同而不同。本书从汇编语言角度叙述程序设计的原理、方法和技术。本章介绍计算机系统和汇编语言的基本概念,并以一个源程序为实例介绍汇编源程序的基本结构和格式,这些都是学习后继各章节的**知识。
1.1 计算机系统简介
汇编语言程序设计是在微处理器80X86系列计算机上进行的汇编语言程序设计。为此,应该熟悉和理解计算机系统的一些基本知识。
1.1.1 计算柳系统的组成
计算机系统由硬件系统(Hardware)和软件系统(Software)两部分组成。所谓硬件系统是指组成计算机系统的物理设备,包括电子的、机械的、磁的、光的设备的总和。其实,硬件就是我们看到的一堆由金属、塑料等材料堆成的被称之为“电脑”的东西(事实上,它是由一些机壳和电路板等物构成的)。因为是一些看得见、摸得着,并且都是“硬”的东西,所以被人们形象地称为“硬件”。
微型计算机的硬件系统由运算器、控制器、存储器、输入设备和输出设备5部分组成,如图1.1所示。微型计算机的运算器、控制器和内存储器是构成主机的核心部件,它们都置于主机箱中。主机以外的其他部件常被统称为计算机的外围设备或周边设备。
1.主机
(1)**处理器
**处理器,英文缩写CPU(Central Processing Unit),也称**处理单元,主要由控制器和运算器组成。运算器包括具有高速存储性能的寄存器和算术逻辑单元,执行所有的算术和逻辑运算指令;控制器负责从存储器中取出指令,经译码分析后向全机发出有关的控制指令。对于微型计算机来说,CPU做在一个芯片上,称为微处理器,它是计算机的核心。通常CPU的型号决定了微机的型号和基本性能。如CPU是80386的计算机,称为386微机;CPU是80486的计算机,称为486微机。
早期的CPU是8088和8086,它们是准16位机——在内部运算是16位,和外部交换数据是8位。80286是16位机。386微机有准32位机(386SX)和真32位机(386Dx)之分。486也是32位机,但是比386微机多了一块“协处理器”,因而性能比386微机有较大提高。“奔腾”(586)是64位机。
(2)内存储器
内存储器(memory/storage unit)也叫主存储器,简称内存,安装在计算机的主板上。内存储器用来存放计算机当前工作所需的程序和数据。内存的容量直接影响计算机的性能,PC系列机的内存容量已由早期的640KB,发展到16MB、32MB、64MB、128MB,有的甚至超过1GB。
内存储器分为随机存储器(RAM)和只读存储器(ROM)。随机存储器中存储的信息可以由用户进行更改,关闭计算机电源,随机存储器中存储的信息将全部消失。只读存储器中存储的信息是由计算机厂家确定的,用户只能读出,不能更改,断电后信息不会丢失。
存储器所具有的基本单位是字节的存储单元的个数,称为存储容量。一个字节B(Byte)由8个二进制位b(bit)组成,因此,存储容量常用的单位是:B表示字节,KB表示千字节,MB表示兆字节,GB表示吉字节,TB表示太字节。1KB=210B=10248,1MB=210KB=1024KB,1GB=210MB=1024MB,1TB=210GB=1024GB。存储单元的存取是通过存储单元的地址来进行的。
(3)总线
总线(bus)是信息传送的公共通路或通道,是连接计算机有关部件的一组公共信号线。总线可以用来传送数据、地址和控制信号,相应地被称为数据总线(DB)、地址总线(AB)和控制总线(CB),在微型计算机中它们常被统称为系统总线。
计算机中采用总线结构可以减少信息传送线的条数和提高CPU与外部设备之间的数据传输率。
随着CPU的不断升级和计算机外部设备的日益更新与增多,已经推出了多种不同标准的总线。目前,386以上PC机使用的总线主要有MCA(Micro ChannelArchitecture,微通道结构)、EISA(Extended Industry StandardArchitecture,扩展工业标准结构)、VESA(VideoElectron Standard Association,视频电子标准协会)、PCI(Peripheral Component Interconnect,外部设备部件互连)等,其中,以PCI*先进。
2.外部设备接口
对外部设备的管理是汇编语言程序设计的重要用途之一。外部设备(外设)与主机的通信是通过外设的接口电路来实现的。在每个接口电路中,都有一组寄存器。一般说来,这些寄存器有3种不同的类型。
(1)数据寄存器:存放外设与主机之间传送的数据,起到缓冲器的作用。
(2)状态寄存器:保存外设或接口电路的状态信息,以便CPU测试并了解它们的当前工作状况。例如,每个设备都有忙闲位,用来表示当前是否在工作,是否有空闲接受CPU安排的新任务。
(3)控制寄存器:暂存CPU给外设或接口电路的控制命令,并在适当时候向相关接口或外设发出各种指令。例如:CPU要启动磁盘工作,必须发出启动命令。
为了方便主机访问外部设备,外设中的每个寄存器被赋予一个端口(PORT)地址,又称端口号,从而组成一个独立于内存空间的I/O地址空间。通常,I/O空间可达64K个端口。存取端口地址的内容是通过输入,输出(IN/OuT)来完成的。
PC系列微机提供了BIOS(基本I/O系统)和MS—DOS(磁盘操作系统)两种类型的系统程序,供用户调用外部设备。这种系统程序是系统提供的功能子程序,通过中断方式(INT)调用需要的子程序,当子程序执行完后,返回到原来的程序继续执行。
3.计算机常用的输入输出设备
(1)键盘(keyboard)
计算机键盘上键的排列按照IS02530和我国**标准GB2787规定。键盘上的每个键有一个键开关。键开关有机械触点式、电容式、薄膜式等多种,其作用是检测出使用者的击键动作,把机械的位移转换成电信号,输入到计算机中去。
(2)鼠标器(mouse)
鼠标器是一种控制显示器屏幕上光标位置的输入设备。在Windows软件中,使用鼠标器使操作计算机变得非常简单。在桌面上或专用的平板上移动鼠标器,使光标在屏幕上移动,选中屏幕上提示的某项命令或功能,并按一下鼠标器上的按钮就完成了所要进行的操作。鼠标器上有一个、两个或三个按钮,每个按钮的功能在不同的应用环境中有不同的作用。
鼠标器依照所采用的传感技术可分为机械式、光电式和机械光电式3种。
·机械式鼠标器底部有一个圆球,通过圆球的滚动带动内部两个圆盘运动,通过编码器将运动的方向和距离信号输入给计算机。
·光电式鼠标器采用光电传感器,底部不设圆球,而是一个光电元件和光源组成的部件。当它在专用的有明暗相间的小方格的平板上运动时,光电传感器接收到反射的信号,测出移动的方向和距离。
·机械光电式鼠标器是上述两种结构的结合。它底部有圆球,但圆球带动的不是机械编码盘而是光学编码盘,从而避免了机械磨损,也不需要专用的甲板。
(3)显示器(display)
由监视器(monitor)和显示适配器(display adapter)及有关电路和软件组成的用以显示数据、图形和图像的计算机输出设备。显示器的类型和性能由组成它的监视器、显示适配器和相关软件共同决定。
(4)打印机(printer)
打印机是计算机系统中的一个重要输出设备。它可以把计算机处理的结果(文字或图形)在纸上打印出来。打印机分为针式打印机、喷墨式打印机和激光打印机。此外,还有一些特殊用途的打印机,例如:票据打印机、条码打印机等。
4.外存储器
目前,微型计算机的外存储器主要有磁盘和光盘。
磁盘分硬盘(Hard Disk或Fixed Disk)和软盘(Floppy Disk)两种,它们的工作原理相同,只是硬盘容量较大,一般不更换。软盘盘片是涂有一层磁性物质的圆片,封装在保护套内。目前常用的是3寸盘(圆盘直径3.5英寸),存储容量是1.44MB。
光盘(disc)的存储量很大(一般在600MB以上),一张光盘有相当于儿百至上千片软盘的存储容量,且存取速度快,没有磨损,存储的信息不会丢失,可以用来存储需要**保留的信息,目前已成为微型计算机常用的外存介质。目前可擦写的光盘应用尚不普遍,*常见的是只读光盘。
外存储器是一种既可用作输入,也可用作输出的外部设备。
5.其他外部设备
(1)声音卡(sound card)
声音卡是专门处理音频信号的接口电路板卡。它提供了与话筒、喇叭、电子合成器的接口。它的主要功能是将模拟声音信号数字化采样存储,并可将数字化音频转为模拟信号播放。
(2)视频卡(video card)
视频卡是专门处理视频信号的接口电路板卡。它提供了与电视机、摄像机、录像机等视频设备的接口。它的主要功能是将输入的视频信号送给计算机,记录下来,也可以把CD—ROM或其他媒体上的视频信号在显示器上播放出来。
(3)网络卡(network card)
网络卡也叫网络接口卡(NIC:Network Interface Card)。在局域网中的每台计算机的扩展槽中都要安装一块网络卡,以实现计算机之间的互连。
(4)调制解调器(modem)
调制解调器是可将数字信号转换成模拟信号,以适用于在模拟信道中传输,又可将被转换成的模拟信号还原为数字信号的设备。它将计算机与模拟信道(例如现有的电话线路)相连接,以便使异地的计算机之间进行数据交换。
调制解调器分内置式和外置式两类,传输速率有28.8kb/s、33.6kb/s、56kb/s等。
(5)扫描仪(scanner)
扫描仪是一种输入设备,它能将各种图文资料扫描输入到计算机中并转换成数字化图像数据,以便保存和处理。扫描仪分为手持式扫描仪、平板扫描仪和大幅面工程图纸扫描仪3类。主要用于图文排版、图文传真、汉字扫描录入、图文档案管理等方面。
(6)光笔(1ight pen)
一种与与显示器配合使用的输入设备。它的外形像钢笔,笔是有按钮,通过电缆与主机相连(也有采用无线的)。使用者把光笔指向屏幕,就可以在屏幕上作图、改图或进行图形放大、移位等操作。
(7)触摸屏(touch screen)
触摸屏是一种附加在显示器上的辅助输入设备。借助这种设备,用手指直接触摸屏幕:显示的某个按钮或某个区域,即可达到相应的选择的目的。它为人机交互提供了更简单、更直观的输入方式。触摸屏主要有红外式、电阻式和电容式3种。红外式分辨率低;电阻式分辨率高,透光性稍差;电容式分辨率高,透光性好。
(8)绘图机(plotter)
绘图机是一种图形输出设备,与打印机类似。绘图机分笔式和点阵式两类,常用于各类工程绘图。此外,一些科技新产品,例如数码相机、数码摄像机等也已经列入计算机的外部设备。
6.计算机软件系统
计算机软件(Computer Software)是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件可分为系统软件和应用软件两大类。
系统软件是用户使用机器时为产生、准各和执行用户程序所必需的一组程序。系统软件的组成一般有操作系统(Operating System)、I/O驱动程序、文件管理程序、调试程序、文本编辑程序、翻译程序、连接程序、装入程序、系统程序库等。
(1)操作系统
系统软件的核心是操作系统。操作系统的主要作用是统一管理微型计算机的所有资源。包括微处理器、存储器、输入/输出设备以及其他的系统软件和应用软件。用户在使用微型计算机时,无需过问系统中各个资源的分配和使用情况,也不必为各种输入/输出设备编制设备驱动程序,用户只需要正确使用操作系统提供的各种命令和系统调用功能,就可以使应用程序在操作系统的控制下自动而协调地运行。目前微型计算机常用的操作系统:Windows NT、Windows XP、Netware、Macintosh、Unix、Linux等。
操作系统的主要部分是常驻内存的监控程序。只要一开机,监控程序就驻留内存,通过键盘接受用户的命令,从而控制操作系统执行相应的操作。
(2)I/O驱动程序
I/O驱动程序用来对I/O设备进行管理和控制。当系统程序或应用程序需要使用I/O设备时,通过调用I/O驱动程序对相应的设备发出命令,从而完成微处理器和I/O设备之间的消息传送。
(3)文本编辑程序
文本编辑程序用来输入和编辑文本并将其存入存储器中。文本是指由数字、字母、符号等信息所组成的文件,它可以是一个用汇编语言或**语言编写的程序,也可以是一组数据或一份报告。
(4)翻译程序
翻译程序是把人们编写的程序翻译成计算机能识别的二进制代码的一种系统程序。它分为两种, 一种是编译程序,另一种是解释程序。编译程序(Compiler)是先把**语言程序翻译成机器语言程序,然后再执行:而解释程序则是一边翻译边执行。
(5)调试程序
调试程序是系统提供给用户的能监控用户程序的一种工具。例如DEBUG,它可以建立、修改、显示和逐条执行一个程序。通常简单的汇编语言程序可以通过DEBUG来建立、修改和执行。
应用软件则是为了解决某一个实际问题而编写的程序集合。例如:科学计算程序、数据处理程序、企业管理程序、电算化软件等。
1.1.2 微处理器的发展进程
微处理器诞生于20世纪70年代初,是大规模集成电路发展的产物。大规模集成电路作为计算机的主要功能部件出现,为计算机的微型化打下了良好的物质基础。微型计算机的发展与微处理器的发展相对应。将传统计算机的运算器和控制器集成在一块大规模集成电路芯片上作为**处理部件,简称为微处理器。微型计算机是以微处理器为核心,再配上存储器、接口电路等芯片构成的。
微处理器一经问世,就以体积小、重量轻、价格低廉、可靠性高、结构灵活、适应性强和应用面广等一系列优点,占领了世界计算机市场,并得到广泛的运用,成为现代社会不可缺少的重要工具。
自从微处理器和微型计算机问世以来,按照计算机CPU、字长和功能划分,它经历了五代的演变。
1.**代(1971年~1973年):4位和8位低档微处理器
**代微处理器的代表产品是美国Intel公司的4004微处理器和由它组成的MCS一4微型计算机,以及随后的改进产品8008微处理器和由它组成的MCS-8微型计算机。Intel公司于1971年顺利开发出全球**块微处理器芯片4004,它采用PMOS工艺,集成了2300
……