第2章 高级编程的硬件基础 主要内容 计算机硬件组成 80x86微机系统 Turbo C编译方式 BIOS和DOS调用.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

计算机硬件设备图片 go 珠海市第四中学 信息技术组.
第四章 圓錐曲線 ‧4-1 拋物線 ‧4-2 橢 圓 ‧4-3 雙曲線 總目錄.
22.3 实际问题与一元二次方程(1).
第2章 微处理器 2.1 概述 /8086微处理器 微处理器 X86/Pentium微处理器
第三讲 匀变速直线运动 学 科:物 理 主讲人:吴含章. 第三讲 匀变速直线运动 学 科:物 理 主讲人:吴含章.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
计算机体系结构 应用程序 软件 操作系统 编译器 固件 指令集 输入输出 CPU 硬件 内存 (I/O) 集成电路 元件,逻辑门.
簡報 石門水庫及其集水區整治計畫 之水庫集水區保育 第2次評鑑 中華民國97年01月23日 交通部公路總局第一區養護工程處
Principles of Microcomputers
第10章 DOS功能调用与BIOS中断调用.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
第5节 关注人类遗传病.
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
任务1: 点亮你的LED----初识单片机.
汇编语言与接口技术 教师:范新民.
图形化函数库及操作 叶安胜. 图形化函数库及操作 叶安胜 EasyX 库背景 Turbo C的图形函数库的使用是很简单的,可是TC 本身环境太老了。 VC ++6.0编辑和调试环境都很优秀,也有适合教学的免费版本。可惜在 VC 想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
汇编语言程序设计 Assembly Language Programming
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
微机原理与接口技术 第3章 8086指令系统 朱华贵 2015年09月25日.
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
第五章 存储系统 半导体存储器概述 系统内存扩充 高速缓冲存储器 虚拟存储器 PC系列机中的主存储器 习题与思考 上一章 目 录 帮助
第2章 16位和32位微处理器 位微处理器8086/ 位微处理器80386
第5章 输入输出与接口技术.
如何在VC环境下 安装开发包 ----以EasyX举例.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
單晶片MCS-51 C語言入門實習 第2章 KEIL-51工具軟體 作者:董勝源.
程序设计专题一 结构化程序设计与递归函数 主讲教师: 刘新国.
微机原理及应用 主讲:谢维成 西华大学 电气信息学院 1.
源码分析教程5部曲之2——C标准库概览 讲师:杨振平 博客地址:blog.csdn.net/yangzhenping
微机原理及应用 主讲:郑海春.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
Introduction to the C Programming Language
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
认识计算机系统.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
微机原理及接口技术 主讲人 钱晓捷.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
第九章 微处理器外部结构和总线操作时序.
作業系統 第三章 作業系統結構.
微机原理与接口技术 西安邮电大学计算机学院 王忠民.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
微机原理与接口技术 ——第三章 80x86微处理器 西安邮电大学 计算机学院 范琳.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
基础篇 微型计算机系统 硬件系统 软件系统 操作系统基础 作业 计算机编码和数制 系统综述.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
Introduction to the C Programming Language
C语言程序设计 教案 崔武子制作
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
Introduction to the C Programming Language
李元金 计算机与信息工程学院 第 14 讲 存储器管理(3) 李元金 计算机与信息工程学院 1/
实验三 键盘软加锁实验 2019/5/9.
单片机应用技术 (C语言版) 第4章 C51程序设计入门
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
单片机原理及接口技术 前修课程:数模电、微机原理.
微型计算机系统.
函式庫補充資料 1.
隨機函數.
Presentation transcript:

第2章 高级编程的硬件基础 主要内容 计算机硬件组成 80x86微机系统 Turbo C编译方式 BIOS和DOS调用

第2章 高级编程的硬件基础 计算机硬件组成 计算机系统:由硬件和软件两部分组成 硬件体系结构:经典的冯诺依曼体系结构 由三个子系统组成 处理器子系统 存储器子系统 输入/输出子系统

第2章 高级编程的硬件基础 冯诺依曼体系 输入/输出子系统 处理器子系统 存储器子系统 地址总线 数据总线 控制总线 计算机硬件体系结构

第2章 高级编程的硬件基础 处理器CPU子系统 CPU组成:算术逻辑单元、控制单元和寄存器组 CPU示意图 控制单元 寄存器组 数据总线 ALU 地址 CPU组成:算术逻辑单元、控制单元和寄存器组

第2章 高级编程的硬件基础 存储器子系统 存储器子系统:由主存储器和辅助存储器组成 主存储器:随机存取存储器(RAM)和只读存储器(ROM)两种类型。 辅助存储器:简称外存,具有外设的特性,以I/O总线的方式和主机连接。 比较:辅助存储器与主存储器相比,具有存储容量大,存储的信息不会因断电而消失,价格便宜的特点,但存取速度慢。

第2章 高级编程的硬件基础 输入/输出子系统 输入/输出子系统:简称I/O系统,包括多种类型的输入输出设备(外设),以及这些设备和处理器、存储器进行数据通信的接口电路。 注意:输入输出设备的工作速度比CPU和存储器慢许多,因此需要接口在中间起缓冲的作用,实现主机和外设交换数据速度的匹配 。

第2章 高级编程的硬件基础 80X86微机系统 按字长分类: 4位微处理器 8位微处理器 16位微处理器 32位微处理器 64位微处理器

第2章 高级编程的硬件基础 80x86微机系统 Intel系列微处理器:80x86系列 8086、8088 80186、80286 80386、80486 Pentium、Pentium2 Pentium3、Pentium4等

第2章 高级编程的硬件基础 主存储器结构 8080处理器:16位微处理器,地址总线为20位,直接寻址能力为220=1048576=1024K=lM 80286、80386和80486处理器:寻址范围增大,例如80286可达16M,80386(80486)可达4G。 对低1M存储空间的寻址是为了和8088处理器兼容而设置的实地址方式,即DOS下的寻址方式。 80x86系列主存储器分为:低1M部分称为系统存储器,高于1M的部分称为扩展存储器和扩充存储器。

第2章 高级编程的硬件基础 系统存储器 系统存储器:分为低地址部分(0~640K)和高地址部分(640K~1024K)两个部分。640K范围内的低地址部分又称为基本内存或常规内存 ,640K~1024K 部分称为高端内存。

第2章 高级编程的硬件基础 高端内存 高端内存:384K的高地址部分,供视频显示和BIOS等使用,分布情况如下图。

第2章 高级编程的硬件基础 高端内存 地址范围及功能: A0000到BFFFF:显示缓冲区,CGA显示缓冲区开始于B8000,VGA、EGA显示缓冲区开始于A0000。这些空间也称作视频存储器,简称VRAM。 C0000到DFFFF:ROM扩充区,主要存放视频显示器适配器和磁盘的BIOS,一些网络控制板、I/O接口板和扩充内存分页帧也要用到此部分地址。 E0000到EFFFF:保留区。 F0000到FFFFF:系统ROM,该部分装有系统引导程序,还有系统基本输入输出系统(BIOS)。

第2章 高级编程的硬件基础 寄存器 80x86微处理器:14个基本寄存器,用于进行运算,控制指令的执行,处理内存寻址等。 8088/80286微处理器的寄存器是16位长,在386、486中扩展为32位长(段寄存器除外)。 80386/80486增加了特殊的内部寄存器,Turbo C仅支持这14个基本寄存器,且长度认为是16位,即按照8088的14个内部寄存器来进行操作。

第2章 高级编程的硬件基础 寄存器分类 寄存器按其功能分类: 通用寄存器 地址指针寄存器 变址寄存器 段寄存器 指令指针寄存器 标志寄存器

第2章 高级编程的硬件基础 通用寄存器 AX、BX、CX、DX:16位数据寄存器,可分成高字节部分和低字节部分来使用。 高字节部分对应于AH、BH、CH、DH,低字节部分对应于AL、BL、CL、DL,即四个16位寄存器可看作八个8位寄存器。 AX:累加器,用于所有的输入/输出操作 BX:基址寄存器,用于扩展寻址,起变址作用 CX:计数寄存器,在循环操作中用作计数器 DX:数据寄存器,用于字乘法和除法,还用来提供输入输出操作中的口地址。

第2章 高级编程的硬件基础 段寄存器 CS、DS、SS、ES:段寄存器,在实模式下的内存寻址是段左移4位+偏移,每个段最大寻址范围为64K字节,段的首地址保存在段寄存器中。 CS:代码段寄存器 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器

第2章 高级编程的硬件基础 其他寄存器 (1) 指针寄存器 SP寄存器:栈指针寄存器。在访问堆栈时,段地址在SS中,SP表示偏移地址。 BP寄存器:基址指针寄存器。通过堆栈传递数据地址时,段地址在SS中,BP存放要传递的数据地址的偏移地址。BP也可作为通用寄存器用。 (2) 变址寄存器 SI源变址寄存器:表示字串的源地址,段地址在DS DI目的变址寄存器:表示目的地址,它常和附加段寄存器ES相关联,表示目的地址偏移。

第2章 高级编程的硬件基础 其他寄存器 (3) IP指令指针寄存器 IP寄存器存放要执行的下条指令的偏移地址。 (4) 标志寄存器 l6位寄存器,其中6位作为指令执行结果的状态标志,3位用作控制标志。

第2章 高级编程的硬件基础 实地址寻址 存取存储器时,选择一个段寄存器的值作为该段的开始地址,将其左移4位,再加上偏移地址,得到20位物理地址,即存储器的真实地址。

第2章 高级编程的硬件基础 I/O接口的寻址 I/O接口的寻址: 有两种方法: 一种是将接口地址和存储器地址统一编址; 80x86CPU采用I/O独立编址方式,采用专门的I/O指令来对接口地址进行操作。

第2章 高级编程的硬件基础 Turbo C的内存模式 微小模式(Tiny) 微小模式编译C程序时,代码段、数据段、堆栈段的段地址均相同,即CS=DS=SS=ES。一般小程序可采用此编译模式进行编译。 小模式(Small) Turbo C的缺省模式。在该模式下,程序中的代码放在64K的代码段内,数据放在64K的数据段内。栈段、附加数据段和数据段均指向同一地址,即DS=SS=ES。

第2章 高级编程的硬件基础 Turbo C的内存模式 中模式(Medium) 数据须在64K的数据段内,代码段不再限制在一个段内,即程序长度可以超过64K(允许达到1M),程序代码寻址必须用20位地址码。这种编译模式适用于大代码量,小数据量的大程序。 紧凑模式(Compact) 紧凑模式与中模式是互补的。在该模式下,数据量可超过64K,放在多个数据段里。数据寻址必须用20位地址码。代码量不超过64K,在一个段内。这种编译模式适用于程序短而数据量大的场合。

第2章 高级编程的硬件基础 Turbo C的内存模式 大模式(Large) 在该模式下代码长度和数据长度均可达1MB,即各占多个段的内存。静态数据不能超过64K字节。该模式适合于需要处理大量数据的大程序。程序的运行速度大大慢于上述的几种模式。 巨模式(Huge) 该模式和大模式基本相同,代码分布在不同的代码段内,数据也分布在不同的数据段内,它们来自于不同的源程序,但堆栈只有一个。Turbo C一般限制静态数据不超过64K,但巨模式允许超过64K。

第2章 高级编程的硬件基础 多文件编译 当一个程序较大时,可将一个程序分成几个部分,每个部分可单独成为一个源文件,这些文件通过全局变量或函数相联系。它们可进行单独编译,形成.OBJ文件。 可以采用两种方法将这些文件组合成一个完整的应用程序。

第2章 高级编程的硬件基础 include方法 假设一个程序分成了A1.c和A2.c两个源文件 A2.c文件中定义了函数A2() : #include <string.h> void A2() { ... }

第2章 高级编程的硬件基础 include方法 A1.c中的main()函数调用A2()函数,则A1.c写成: #include <stdio.h> #include “A2.c” /*include预处理命令*/ main() { ... A2(); }

第2章 高级编程的硬件基础 Project工程文件法 假设一个程序分成了A1.c和A2.c两个源文件,project工程文件法生成可执行程序的步骤如下: (1)用TC编辑器建立一个文本文件,内容为: A1.c A2.c 保存于文件AA.prj中。 (2)在TC环境中,按ALT+P,选择Project菜单中的Project name项,填入文件名AA.prj后,按F9键,即可生成AA.exe的可执行文件。

第2章 高级编程的硬件基础 中断概念 中断:CPU在正常运行程序时,由于程序预先安排或内外部事件(称为中断源),引起CPU中断正在运行的程序,并根据中断源提供的地址信息(称为中断向量)而转到事件中断服务程序中执行。 中断向量:微机采用中断类型号来标识中断源。微机的中断分为软中断和硬中断两种类型。软中断也称为内中断,是由执行某些指令引起;硬中断也称为外中断,是由接口设备引起的。

第2章 高级编程的硬件基础 中断概念 中断向量表:80x86内存的前1024个字节为中断向量表(地址00000—003FFH) ,可存储256个中断向量。 中断向量:每个中断向量占用4个字节,前两个字节为中断服务程序的入口地址偏移量,后两个字节装入了段地址。 将中断向量的这四个字节分别装入IP及CS中,便可转入中断服务程序。

第2章 高级编程的硬件基础 BIOS调用 BIOS(即基本输入输出系统):Intel80x86微机高端内存的ROM中固化的对键盘、显示器、磁盘驱动器、打印机、异步通讯、时钟等操作的子程序。BIOS程序本身直接与外部设备进行通讯,并为编程人员提供了一个简单的接口。 利用BIOS程序,不仅可以有效利用系统资源,而且能大大提高程序的开发效率和质量。BIOS的调用比较简单,通过中断号调用BIOS中的各个程序,即每个外部设备均有一个软中断调用号,每个中断号下有许多不同的子功能号,控制设备的不同功能。

第2章 高级编程的硬件基础 BIOS调用 BIOS主要功能简表 中断调用号 主要功能 05H 屏幕拷贝 17H 打印机服务 09H 键盘中断 1AH 日期时间服务 10H 显示器服务 1BH 键盘终止地址 11H 设备检查 1CH 定时器信号 12H 确定内存容量 1EH 软盘参数表 13H 磁盘服务 21H DOS系统功能 14H 串行口通讯服务 27H 驻留内存 16H 键盘服务 33H 鼠标功能

第2章 高级编程的硬件基础 TC 2.0 标准头文件 头文件 用途 alloc.h 动态地址分配函数 math.h 数学库使用的各种定义 assert.h 定义assert()宏 mem.h 内存操作函数 bios.h ROM基本输入输出函数 process.h spawn()和exec()函数 conio.h 屏幕操作函数 setjmp.h 非局部跳转 ctype.h 字符操作函数 share.h 文件共享 dir.h 目录操作函数 signal.h 定义信号值 dos.h DOS接口函数 stdarg.h 变量长度参数表 errno.h 定义出错代码 stddef.h 定义一些常用常数 fcntl.h 定义open()使用的函数 stdio.h 以流为基础的I/O函数 float.h 定义从属于环境工具的浮点值 stdlib.h 其他说明 graphics.h 图形函数 string.h 字符串函数 io.h UNIX型I/O函数 time.h 系统时间函数 limits.h 定义从属于环境工具的各种限定 values.h 从属于机器的常数