c语言课程设计2高级编程的硬件基础.pdf
《c语言课程设计2高级编程的硬件基础.pdf》由会员分享,可在线阅读,更多相关《c语言课程设计2高级编程的硬件基础.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1高级编程的硬件基础高级编程的硬件基础 我们知道,C 语言是一种优秀的程序设计语言,虽简洁,但功能强大。它把高级语言的基本结构和语句与低级语言的实用性结合起来。在采用 C 语言开发大型程序的时候,除了掌握正确的开发流程和方法外,如果能够有较好的软硬件基础,定会扩展你应用 C 语言的能力,开发出更加优秀的程序。2.1 计算机硬件组成.2 2.2 80X86 微机系统.3 2.2.1 主存储器结构.3 2.2.2 寄存器与伪变量.5 2.2.3 实地址寻址方式.5 2.2.4 I/O接口的寻址方式.5 2.3 Turbo C编译方式简介.6 2.3.1 Turbo C的内存模式.6 2.3.2
2、指针的分类.6 2.4 BIOS与DOS调用.7 2.4.1 中断.7 2.4.2 BIOS调用.7 2.4.3 DOS调用.7 2.5 多文件的程序.7 2.6 Turbo C2.0 库函数介绍.9 2 2.1 计算机硬件组成 计算机系统由硬件和软件两部分组成。目前计算机的硬件组成仍以经典的冯诺依曼体系结构为主。该结构可以划分为三个子系统:处理器子系统、存储器子系统和输入/输出子系统。如图 2-1 所示,这三个子系统通过总线连接在一起。处理器子系统也就是 CPU(中央处理器或处理器)(如图 2-2 所示),是计算机中的核心部件。在 CPU 内部有三个组成部分:算术逻辑单元、控制单元和寄存器组
3、。算术逻辑单元ALU 即运算器,负责进行算术和逻辑运算;控制单元即控制器,类似控制人身体各部分运动的大脑中枢,主要是控制程序的执行;寄存器组用来临时存放参与 ALU 运算的各种数据,主要有数据寄存器、指令寄存器和指令计数器等。存储器子系统是计算机的记忆部分,由主存储器和辅助存储器组成。主存储器简称内存,是计算机内部的存储器,与 CPU 直接进行电路连接。计算机执行程序时,程序和运行该程序的数据存储于此。无论 CPU 数据处理的长度是多少,在存储器系统中都是以字节为单位进行组织的,即每个存储器字节都有一个唯一的标识叫做存储器地址。CPU 对存储单元内的数据进行存取操作就是通过存储器地址进行的。主
4、存储器有随机存取存储器(RAM)和只读存储器(ROM)两种类型。RAM 是计算机主存储器系统中的主要组成部分,对其单元的存取操作是随机发生的,但其中的数据会随系统断电而消失。ROM 是指其中的数据只能读出,而 输入/输出子系统 处理器子系统 存储器子系统 地址总线 数据总线 控制总线 图 2-1 计算机三个子系统和总线的连接图 2-1 计算机三个子系统和总线的连接控制单元寄存器组数据总线 控制总线图 2-2 CPU 示意图图 2-2 CPU 示意图 ALU 地址总线 3不能写入。这种存储器芯片是为了存放只需要读取的数据和程序而设计的,数据和程序在使用之前被写入。辅助存储器简称外存,具有外设的特
5、性,以 I/O 总线的方式和主机连接。与存储器相比,其存储容量大,存储的信息不会因断电而消失,价格便宜,但存取速度慢。输入/输出子系统简称 I/O 系统,包括了许多种类型的输入输出设备(有时简称外设),以及连接这些设备和处理器、存储器进行数据通信的接口电路。输入输出设备的功能千差万别,工作速度要比 CPU 和存储器慢许多,因此需要接口在其间起到缓冲的作用,实现主机和外设交换数据速度的匹配。连接 CPU、存储器和外设(或者外设接口)的总线就是内部总线,内部总线为三总线结构,分别是地址总线、数据总线和控制总线。地址总线是单向的,总是传送 CPU 需要对存储器和外设进行数据读写的地址信息。CPU 通
6、过存储器单元的地址来寻找需要进行存取操作的对应单元,而对外设(接口)也是通过统一编址的方法,按不同的地址对不同的外设进行操作的。地址总线的数目决定了机器的寻址空间大小。数据总线在 CPU、存储器和外设之间可以双向传输数据,其宽度是计算机处理能力的重要指标,一次存取的数据越多,说明 CPU处理能力越强。一般 16 位 CPU 是指数据总线有 16 位,32 位 CPU 是指数据总线有 32 位。控制总线不同于前两种总线,CPU 根据指令操作的类型,对其发出不同的控制信号,控制其它两种总线或其他 I/O 部件。控制总线是单个信号线的集合,在某个操作发生时只有一个或几个控制信号线起作用。对每一个信号
7、而言是单一方向的。2.2 80X86微机系统 计算机的不同系列,主要是根据计算机所采用的 CPU 来做区分的。CPU 从最初发展至今已经有三十多年的历史了,这期间按照其处理信息的字长可以分为 4 位微处理器、8 位微处理器、16 微处理器、32 微处理器以及 64 位微处理器等等。在微机的微处理器市场中 Intel公司独占鳌头,IBM PC 机及其兼容机主要采用 Intel80X86 芯片。微机的第一代 CPU 正是Intel 在 1979 年推出的 8088 芯片。在早期,Intel 系列的微处理器名字都以 80 开头,所以 Intel公司生产的 CPU 芯片又称为 Intel80X86 系
8、列,其中包括 8086、8088、80186、80286、80386和 80486 等。后来的 Intel80X86 芯片包括 Pentium、Pentium2、Pentium3 和 Pentium4 等。尽管芯片采用的技术越来越先进,但是 Intel 的 80X86 芯片对 8088 是兼容的。而且,考虑到PC 操作系统的延续性,以及与大量已存在软硬件的兼容性,同一系列的微机在其他很多方面也具有兼容性。更重要的是,我们的大型程序设计采用的是 DOS 下的 Turbo C2.0,已对内存和寄存器等做了限制。因此,下面将主要介绍 8088 微机系统的相关内容。2.2.1 主存储器结构主存储器结构
9、 微机的 8080 处理器是 16 位微处理器,地址总线为 20 位,故直接寻址能力为220=1048576=1024K=lM。同属一个系列的 80286 和 80386 及 80486 寻址能力虽大大增加,如 80286 可达 16M,而 80386(80486)可达 4G,但对低 1M 的存储空间所采用的寻址方式是为了和 8088 处理器相兼容而设置的实地址方式,即 DOS 下的寻址方式。在 80X86 微机系列中,主存储器分为两个部分:低 1M 部分称为系统存储器,高于 1M 的部分称为扩展存储器和扩充存储器。1)系统存储器(System Memory)系统存储器(如图 2-3 所示)可
10、分成两个部分:低地址部分(0640K)和高地址部分(641K1024K)。640K 的低地址部分又称为基本内存或常规内存,是 PC 机得以工作的最低内 4存,使用情况如图 2-4 所示,其中主要由 DOS 和用户的应用程序及驻留程序 TSR 占用,DOS所占用的内存量要视其版本而异。用户的应用程序所占地址取决于程序长短,这部分空间是自由空间,当回到系统时,该部分空间即被释放。基本存储器高端存储器00000A0000FFFFF0640K1024K中断向量表000000040000600A000001K1.5K640KBIOS数据区IO.SYS(IBMBIO.COM)MSDOS.SYS(IBMDO
11、S.COM)TSR应用程序COMMAND.COM暂驻部分 图图 2-3 系统存储器系统存储器 图图 2-4 基本存储器基本存储器 384K 的高地址部分被称为高端内存,是留给视频显示和 BIOS 等使用的。它的地址使用情况如图2-5所示,其中A0000到BFFFF用作显示缓冲区,其中CGA显示缓冲区开始于B8000,单色显示缓冲区开始于 B0000,而 VGA、EGA 显示缓冲区开始于 A0000。这些空间也称作视频存储器,简称 VRAM。当 PC 机进行显示时,要显示的字符代码和图像信息均存储在VRAM 中。C0000 到 DFFFF 部分为 ROM 扩充区,它主要存放视频显示器适配器和磁盘
12、的BIOS,一些网络控制板、I/O 接口板和扩充内存分页帧也要用到此部分地址,E0000 到 EFFFF为保留区。F0000 到 FFFFF 是系统 ROM,该部分装有系统引导程序,还有系统基本输入输出系统(BIOS)。单色/CGA/EGA/VGA显示RAM-VRAMA0000B0000C0000D0000E0000F0000FFFFF视频/磁盘BIOS,EMSROM扩充区保留区系统ROM640K704K768K832K896K960K1024K 图图 2-5 高端存储器高端存储器 2)扩展存储器(Extended Memory)和扩充存储器(Expanded Memory)扩展存储器指高于
13、FFFFFH 或 lM 的那部分存储器,它只能由 80286,80386,或 80486直接去访问。80286 有 24 位寻址能力,故可寻址到 16MB,而 80386 和 80486 有 32 位寻址能力,可直接寻址 4GB。这些处理器对系统存储器采用实地址方式访问,而对扩展存储器采用保护虚地址方式,因而在实地址方式下运行 DOS 时,无法对扩展存储器进行寻址,而必须进行方式切换,即由实方式换到保护方式,对扩展存储器操作完后,再切换到实地址方式下,恢复 DOS 的操作。扩展存储器同系统存储器一样,一般安装在系统板上,以内存条形式插在内存条插座上。扩充存储器是指 PC 处理器寻址范围之外的物
14、理存储器,它也被称为 EMS 存储器。厂家通常以扩充内存板的形式提供,使用时可插在 PC 机的扩充插槽上。扩充存储器使用时,5用高端存储器中的一段地址分配成扩充存储器的分页帧(page frame),用页面映射到 EMS 某一区域,使得应用程序可以访问 EMS 存储器,不断改变分页帧对 EMS 的映射区域,即可访问 EMS 的所有存储区,所以对 EMS 的访问是通过占用系统存储器中的高端部分地址来换取对大量 EMS 存储区的访问,即以小换大。最后再强调一下,不管扩充内存或扩展内存有多大,DOS 的应用程序只能在常规内存下运行。所以在 Turbo C2.0 下我们只需要了解系统存储器的结构和实地
15、址寻址方式即可。2.2.2 寄存器与伪变量寄存器与伪变量 略,详见C 程序设计基础课程设计第 2 章。2.2.3 实地址寻址方式实地址寻址方式 略,详见C 程序设计基础课程设计第 2 章。2.2.4 I/O 接口的寻址方式接口的寻址方式 I/O 接口的寻址方式一般有两种:一种是将接口地址和存储器地址统一编址;一种是 I/O接口地址和存储器地址分别独立编址。微机中的 80 x86CPU 采用 I/O 独立编址方式,采用专门的 I/O 指令来对接口地址进行操作。这样,存储器地址和 I/O 接口地址可以重叠。由于两者需采用不同的指令进行读写操作,所以不会由于地址相同而混淆。这种编址方式的优点是不占用
16、存储器地址,因而不会减少存储器容量。而且由于有专门的 IN 和 OUT 指令,因此比用存储器读写指令执行速度快。但这种方式的缺点是在硬件电路上要对这两种存取进行区别。另外,专门的 I/O 指令功能简单,要完成某些操作还须和某些指令配合。Turbo C 提供了专门对 I/O 接口进行输入输出操作的几个函数,它们是:int inp(int portid);int inport(int portid);int inportb(int portid);void outp(int portid,int value);void outport(int portid,int value);void outp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 高级 编程 硬件 基础
限制150内