1.3.1 计算机的基本结构
计算机由五大部件组成:控制器、运算器、存储器、输入设备和输出设备,各部分之间通过系统总线连接,如图1.1所示。
CPU (运算器,控制器,寄存器) 主存储器 程序 数据 I/O 接 口 辅助存储器 输入设备 输出设备
图 1.1 计算机的基本结构
? 处理器CPU
CPU由控制器、运算器和寄存器组成。控制器是计算机的核心,其作用是控制整个计算机系统的工作,主要表现在控制程序的执行,其中包括对指令进行分析,译码,并按指令的要求控制计算机系统中各部件完成规定操作。运算器对信息进行运算处理,基本的运算器组织包含如下逻辑组成:实现基本算术、逻辑运算功能的ALU,提供操作数和暂存运算的寄存器组,有关的判别逻辑(如进位、溢出等),或加上局部控制电路等。寄存器提供各种操作所需的数据。寄存器是 CPU 内部临时存储单元,用于存储 CPU 运算的数据,指令以及运算状态等信息,具有高速的特点。寄存器在CPU 内部起到了非常重要的作用,对于提高指令的执行速度有着重要的作用,其数量一般有几十到几千个,远远少于存储器的单元数量。 ? 存储器
用来存放程序和数据,它根据控制器指定的位置存入和取出信息。存储器分为主存储器(主存)和辅助存储器(辅存)。主存由大量存储单元组成,对每个单元依次编号,得到唯一的存储器地址。在指令的执行中,存储器和寄存器是不可缺少的部件。 ? 外部设备
外设通过I/O接口与系统连接。在汇编语言编程中,见到的I/O接口由一组寄存器组成,对每个寄存器依次编号,得到I/O地址(端口)。 ? 系统总线
多个部件相互连接、传递信息的公共通道。
汇编语言是通过CPU和存储器与硬件对话。对程序员来说,通过汇编语言,CPU、存储器和外部设备依次被抽象为寄存器、存储器组织和输入/输出地址,因为汇编语言的上机中将通过寄存器和地址实现处理器控制、存储器和外设的数据处理等操作。
1.3.2 8086 CPU的内部结构
8086是Intel公司第一款16位处理器,是整个Intel 32位架构处理器(IA-32)的开山
5
鼻祖。它是一款非常成功的产品,当Intel公司设计新的处理器,不得不考虑和它兼容。
通过汇编语言将抽象的计算机硬件具体化,以Intel 8086CPU为基础更容掌握。8086 CPU按功能可分为两部分:总线接口单元BIT和执行单元EU。图1.2给出了8086 CPU的内部结构。
地址加法器 AH AL BH BL CH CL DH DL SP BP SI DI ∑ 通用寄存器 CS DS ES SS IP 内部暂存20位 16位 输入/输出 控制电路 16位 外部总线 ALU 标志寄存器 控制电路 8位 1 2 3 指令队列 执行单元EU 总线接口单元BIU 图1.2 8086的内部结构
Intel 8086 CPU完成一条指令的功能分成两个主要阶段:取指和执行。
取指:从主存储器中取出指令代码进入CPU。8086 CPU中,指令在存储器中的地址由代码段寄存器CS和指令指针寄存器IP共同提供,再由地址加法器得到20位存储器地址,参见1.4.2节。总线接口单元负责从存储器取出这个指令代码,送入指令队列。
执行:将指令代码翻译成它代表的功能(即译码),并发出有关控制信号实现这个功能。8086 CPU中,执行单元从指令队列中获得预先取出的指令代码,在EU控制电路中进行译码,然后发出控制信号,由算术逻辑单元进行数据运算、数据传送等操作。指令执行过程需要的操作数据有些来自CPU内部的寄存器,有些来自指令队列,有些来自存储器和外设。如果需要来自外部存储器或外设的数据,则控制单元EU控制总线接口单元BIU从外部获取。
1.3.3 调试器DEBUG
汇编语言基础实验的硬件环境要求不高,只要求有通用微机和显示器即可。对于CPU和存储器,利用DEBUG这个有利工具,可以深入观察实际机器内部的情况,观察和修改存储单元和寄存器内容,并监视目标程序的执行情况,使用户真正接触到CPU内部,与计算机产生最紧密的工作联系。
本书用到的MS-DOS命令如下:
6
CD\\—返回到根目录C>下; CD 目录名—进入特定的目录;
CD ..—退回到上一级目录;
D:—进入D盘;
例1.10 CD命令应用,如图1.7所示,进入G:\\MASM611\\BIN。
进入G盘 进入G:\\MASM611\\BIN 图1.3 CD命令示例
1. 调试器DEBUG
DEBUG是基于命令行的16位调试器,可作为16位汇编语言程序的调试工具。利用它,可以观察和修改CPU的存储单元和寄存器;可以跟踪程序的运行,发现程序的错误。 2. 进入DEBUG (1)进入模拟DOS ? 32位操作系统
在32位Windows下,进入模拟DOS,常用有以下方法:
(a)在Windows桌面下单击开始菜单,选择运行命令,如图1.4所示;在弹出的文本框中输入CMD,如图1.5所示;按确定进入DOS环境,如图1.6所示。
图1.4 开始菜单下的运行命令 图1.5 在“运行”文本框中输入CMD
7
图1.6 DOS环境
(b)选择“开始\\程序\\附件\\命令提示符”进入DOS,如图1.7所示;进入DOS后,如图1.6所示。
图1.7 选择命令提示符
? 64位操作系统
在64位Windows下,通过安装DOSBox0.74软件进入模拟DOS环境,DOSBox是一个使用SDL库的免费开源跨平台的MS-DOS模拟器。如图1.8所示,步骤如下: (a)将dosbox-win32-installer.zip解压,设解压后的目录为D:\\DOSBOX;
(b)设软件MASM611下有目录:D:\\MASM611\\BIN (注:包含ML,MASM,LINK,CV等文件的最后上一级目录),将DEBUG.EXE拷贝到D:\\MASM611\\BIN的目录下。 (c)运行D:\\ DOSBOX下的文件DOSBOX.EXE,屏幕显示z:\\>,
输入 Z:\\>MOUNT d d:\\masm611\\bin
则屏幕显示:Drive d is mounted as local directory d:\\masm611\\bin\\ (d)出现Z:>,输入 Z:>D:
(e)屏幕出现D:>,此时在D盘下就可以直接使用d:\\MASM611\\BIN下的所有文件。
8
图1.8 64位操作系统下进入DOS
(2)调用DEBUG
在DOS的提示符下,输入Debug启动调试程序: Debug [路径\\文件名][参数表] Debug后可以不带文件名,仅运行Debug.exe程序;需要时,可用N和L命令调入。Debug调入后,出现提示符“-”。
在64位操作系统下,如图1.12所示,输入D:\\>DEBUG,将进入Debug调试界面。 3. DEBUG命令格式
DEBUG的每个命令都是一个字母,后跟一个或多个参数,即:字母[参数]。 对DEBUG命令的说明: ? 不区分大小写;
? 只使用十六进制数,且不能带后缀H;
? 两个数值之间必须有分隔符(空格或逗号)隔开;
? 每个命令按了回车键才有效,可以用Ctrl+Break终止命令的执行; ? 若输入的命令错误,则提示“ERROR”,并用“^”指出错误位置。
Debug命令中的“地址 ”参数,形式是“段地址:偏移地址”。其中,段地址是寄存器或数值。如果省略段地址,则采用默认值。
Debug命令中的“地址范围”参数,形式是“段地址:偏移地址 段地址:偏移地址”。其中,段地址是寄存器或数值。如果省略段地址,则采用默认值。
1.4 8086的存储器组织
8086 CPU中,为数不多的寄存器只能暂存少量信息,绝大部分的程序与数据需要存放在专门的存储器中。存储器是计算机各种信息存储与交换的中心。在程序执行过程中,所要执行的指令时从存储器中获取的,运算器所需要的操作数是通过程序中的访问存储器指令从存储器中得到的,运算结果在程序执行完之前又全部写到存储器中去。
存储器是计算机存储信息的地方。程序运行所需的数据,程序执行的结果以及程序本身均保存在存储器中。存储器的重要特性是按地址存放或读取内容。
9
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库汇编语言及其应用复习资料(西南民大)(3)在线全文阅读。
相关推荐: