第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口

Slides:



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

输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
汇编语言程序设计 吴 向 军 中山大学计算机科学系
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
第10章 DOS功能调用与BIOS中断调用.
第四章 汇编语言 程序设计 任课教师:王晓甜
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
本周实验安排 实验内容:(P231)人名排序的例子。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年10月30日.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
第3章 80x86汇编语言程序设计(下).
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
第3章 80x86汇编语言程序设计(上) 16位汇编版本 时间不够的情况下只讲16位汇编.
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
3.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
汇编语言程序设计 Assembly Language Programming
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第2章 MCS-51单片机指令系统与汇编语言程序设计
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第8章 寻址方式与指令系统.
第4章 汇编语言程序设计 4.1 程序设计语言概述 4.2 汇编语言的程序结构与语句格式 4.3 汇编语言的伪指令
微机原理及应用 主讲:谢维成 西华大学 电气信息学院 1.
微机原理及应用 主讲:郑海春.
第8章 PCH中的常规接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
微型计算机原理及应用.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
第九章 高级宏汇编语言 9.1 结构 结构就是将逻辑上有一定关系的一组数据,以某种方式组合在一起所形成的数据形式。
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
3.4.5 控制转移指令(Control transfer instructions) (一)、控制转移指令概述
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
可编程定时计数器.
第 3 章、組合語言 作者:陳鍾誠 旗標出版社.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
第八章 中断系统.
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第6章 子程序结构 在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。 调用子程序的程序称为主调程序或主程序。 2019/7/20 ch6.
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
Presentation transcript:

第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口 第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口 第六章 计数器、定时器与接口 第七章 显示器与键盘接口 第八章 串行通信及接口 第九章 数模转换器和模数转换器接口

本章知识点 8086程序设计的实验平台 8086程序设计 8086/8088宏汇编语言程序 PC 机的基本硬件和调用 软中断

本章知识点 8086程序设计的实验平台 8086程序设计 8086/8088宏汇编语言程序 PC 机的基本硬件和调用 软中断

8086程序设计的实验平台 PC机的基本配置 动态调试程序DEBUG

PC机的基本配置 INTEL 8086是标准十六位微处理器,具有十六位内部结构和十六位外部数据总线。

PC机的基本配置 IBM PC以及PC兼容机以8088为CPU 8088可寻址存储器空间1M字节 PC机: - RAM为640K字节,地址00000H~9FFFFH - ROM为64K字节,地址F0000H~FFFFFH,其中存有基本输入输出系统BIOS。

PC机的基本配置 存储器的其余空间为外部设备所需的存储器扩展或输入输出程序, A0000H~BFFFFH为显示器RAM缓冲区; C0000H~DFFFFH为系统外部设备的输入输出程序; E0000H~EFFFFH为保留的64K字节,扩展功能用。

PC机的基本配置 00000H~003FFH为系统的中断矢量区; 640K字节的RAM中: 00000H~003FFH为系统的中断矢量区; 00400H以后为IBM BIOS、IBM DOS以及由DOS操作系统装入的程序区; 用户区在其之后。

PC机的基本配置 PC/AT以及兼容机(PC 286)以80286为CPU。 80286CPU实地址寻址的存储器空间为1M字节。在PC 286中,RAM及ROM的安排与PC机兼容。 PC或PC 286的基本配置为显示器、键盘、软盘驱动器、并行打印机接口、异步通讯接口。

动态调试程序DEBUG 显示、修改寄存器和存储器内容 跟踪程序的运行 支持汇编与反汇编,易于修改程序 通过读、写命令可读写磁盘文件 利用输入、输出指令直接对接口进行调试

动态调试程序DEBUG 检查和修改寄存器 Register - R ;显示所有寄存器内容 - R 寄存器 ;仅显示该寄存器内容,可修改其内容

动态调试程序DEBUG 检查和修改存储器内容 Memory - D ;显示存储器内容 - E ;显示和修改存储器内容 - F ;修改存储器内容

动态调试程序DEBUG 汇编与反汇编 Assembly and Un-assembly - A ;输入汇编语句 - U ;显示机器码及汇编语句

动态调试程序DEBUG 运行和测试程序 Go and Test - G ;从当前地址开始执行,地址由CS及IP决定 ;程序从该地址开始执行,停在断点处 - T ;程序从当前地址开始执行一条 - T = 地址 跟踪条数 ;程序从该地址开始执行以上条数

动态调试程序DEBUG 文件的写入和读出Writing and Loading 存盘(写出) - R BX ;使BX内容为0 - R CX ;程序长度(字节数) - N ×××.ASM ;给程序命名 - W〔地址〕 ;〔程序首地址〕 文件名由N命名,长度由BX、CX值决定。 W后无地址则将CS:100H开始的数据写入磁盘。

动态调试程序DEBUG 文件的写入和读出Writing and Loading 读盘(读入) - N ×××.ASM - L 〔地址〕 L后无地址则装入以CS:100H为起始地址的内存中,否则装入规定地址。

动态调试程序DEBUG 输入、输出命令 Input & Output - I 端口地址 ;从该端口输入一个字节的内容 ;向该端口输出一个字节内容

本章知识点 8086程序设计的实验平台 8086程序设计 8086/8088宏汇编语言程序 PC 机的基本硬件和调用 软中断

8086程序设计 程序设计方法 8086程序设计

程序设计方法 1.作程序流程图 根据题意,找出最合理、简便的解决方法并作程序流程图。粗略流程图给出大致步骤,详细流程图则给出每一步骤细节。对一些大问题,先给出粗略流程图以得出总体概念,再作详细流程图对每一步骤作具体描述。

程序设计方法 2.存贮单元分配 根据题意合理分配程序和数据在存贮器中地址。存贮单元分配合理,可使编程简单和避免程序出错。应避免程序区与数据区相互混合、交叉。 3.源程序编制 将流程图中每步所规定的操作用程序语言实现,各人所编程序选用指令可能不同。程序质量衡量标准:程序短,占用存贮单元少,运行时间短,而且程序结构合理。

程序设计方法 4.译为机器码 通常先作程序流程图再编源程序,流程图在: 复杂问题中:帮助设计者寻找最佳方案,减少源程序编写过程中的错误。 计算机执行的是机器码,根据不同计算机环境,将源程序译为机器码后送入计算机可由人工进行,也可通过计算机软件自动转换为机器码。 通常先作程序流程图再编源程序,流程图在: 复杂问题中:帮助设计者寻找最佳方案,减少源程序编写过程中的错误。 调试过程中:帮助寻找错误。

8086 程序设计 简单程序 8086指令系统中存储器采用分段方法,每个存储单元地址都用段地址和偏移量方法表示。 注意存储器寻址方法,特别是段寄存器用法。段替换时,替换命令只对本指令有效,而其余指令仍用约定的段寄存器表示段地址。

8086 程序设计 简单程序 MOV AX, 7000H MOV DS, AX MOV SI, 00H MOV AX, 8000H MOV ES, AX MOV DI, 00H MOV AL, [SI] MOV BL, [SI+1] MUL BL MOV ES:[DI], AX EX2D: JMP EX2D 例:将存储器70000H单元和70001H单元的内容相乘,其积存放在80000H(低字节)及800001H(高字节)中。

8086 程序设计 分支程序 转移指令来实现分支程序。8086指令系统的转移指令分为条件转移和无条件转移。 条件转移指令均为相对转移指令,目的地址必须在现行程序段(CS)内,以下一条指令地址为基准,范围为-128-+127。 无条件转移指令JMP转移的目的地址可以在段内,也可以在段间。

8086 程序设计 分支程序--条件转移指令

8086 程序设计 分支程序--条件转移指令

8086 程序设计 分支程序--条件转移指令

8086 程序设计 分支程序 ORG 1500H TABLE DW 2000H, 2400H DW 2800H, 2C00H ORG 1520H ADD AX, AX MOV SI, 1500H ADD SI, AX JMP CS:[SI] 例:设检索号(0~3)在累加器AX中,根据此检索号将当前程序转移到当前程序段内2000H,2400H,2800H,2C00H的程序中去。

8086 程序设计 循环程序 可用条件转移指令也可用LOOP指令实现循环程序。LOOP指令以CX为循环变量,执行此指令时,CX值自动减一。 (2) LOOPE(LOOPZ);CX不为零且ZF=1时继续循环 (3) LOOPNE(LOOPNZ);CX不为零且ZF=0时继续循环。

8086 程序设计 循环程序 另一个实现方法是利用串操作处理的重复指令REP。REP指令以CX为重复次数,当指令被重复执行一次,CX值自动减一 REP指令有三种: (1) REP (2) REPE(REPZ) (3) REPNE(REPNZ) REP指令与串操作指令MOVS、STOS配合使用,将这两条指令重复执行CX遍

8086 程序设计 循环程序 MOV AX, 7000H MOV DS, AX MOV ES, AX MOV SI, 00H MOV DI, 00H MOV CX, 400H CLD REP MOVSW EXD:JMP EXD  例:在地址70000H开始的存储器中存有400H个字的数据(十六位数),将其传送到地址72000H开始的存储器单元中去。

8086 程序设计 子程序 用CALL指令来调用子程序 程序调用: - 段内调用 - 段间调用

8086 程序设计 子程序 段内调用的子程序入口地址表示法: (1) 入口地址以十六位偏移量表示。执行此指令时,将指令指针寄存器IP的内容与其相加产生新的目的地址。 (2) 入口地址以数据存储器寻址方式读取一个十六位数据,或由寄存器提供一个十六位数据,装入指令指针寄存器IP,指令以此数据作为目的地址。

8086 程序设计 子程序 段间调用的子程序入口地址表示法: (1) 指令以立即数形式提供两个十六位地址作为入口地址的偏移量与段地址。第一个十六位数装入指令指针寄存器IP,第二个十六位数装入段寄存器CS。 (2)指令中提供一存储器地址,利用数据存储器寻址方式从该地址读取两个十六位数据作为入口地址的偏移量与段地址,分别装入指令指针寄存器IP和段寄存器CS。

8086 程序设计 子程序 例:用调用子程序的方法做两个数的加法,利用将数据压入堆栈的方法传递参数。 MOV CX, 5 PUSH CX CALL ADD POP CX EXD: JMP EXD ADD: MOV BP, SP MOV AX, [BP+2] ADD [BP+4], AX RET 例:用调用子程序的方法做两个数的加法,利用将数据压入堆栈的方法传递参数。

8086 程序设计 查表程序 根据检索号来求出相应结果。 8086指令系统中,用XLAT指令实现查表程序。数据表格放在数据段中,以DS为段地址,BX寄存器内为数据表格首地址的偏移量,AL寄存器内为检索号。此指令被执行时将BX的内容与AL的内容相加,其结果为数据地址的偏移量。 XLAT指令每次只读出一个字节数据,如数据表中每个数据的长度大于一个字节,则要分几次读出。

8086 程序设计 查表程序 查表程序还可用寄存器寻址、变址寻址、基址寻址等方法实现。其指令分别为: MOV AX,[DX]    MOV AL,[SI]      MOV AX,[BX]  (仅适用于查表程序的数据表放在数据段DS内 ) 这种方法应将数据表首地址加上偏移量后传送到此寄存器。偏移量应是检索号乘以数据表内数据的字节长度。这种方法每次能根据需要读出一个或两个字节。

8086 程序设计 查表程序 例:设寄存器AL中的数为0~9,试将此数的立方以BCD码的形式存于AX寄存器内。 ORG 1000H DB 00H,00H,01H,00H DB 08H,00H,27H,00H DB 81H,00H,25H,01H DB 16H,02H,43H,03H DB 12H,05H,29H,07H ORG 2000H MOV SI, 1000H MOV AH, 0 ADD AX, AX ADD SI, AX MOV AX, CS:[SI] EXD: JMP EXD 查表程序 例:设寄存器AL中的数为0~9,试将此数的立方以BCD码的形式存于AX寄存器内。

本章知识点 8086程序设计的实验平台 8086程序设计 8086/8088宏汇编语言程序 PC 机的基本硬件和调用 软中断

8086/8088 宏汇编语言程序 宏汇编语言的基本语法 源程序的结构 宏汇编程序的运行与调试 程序的返回 参数传递

宏汇编语言的基本语法 宏汇编语言语句的构成 [名称/标号:] 操作符 [操作数] [;注释] * 名称是给指令或存储单元起的名字 [名称/标号:] 操作符 [操作数] [;注释] X DW 7 START: MOV AX,DAT RET ; 只有操作符 * 名称是给指令或存储单元起的名字 * 标号表示这条指令的开始地址 * 每个语句必须有操作符

宏汇编语言的基本语法 操作符 MUL CX MOV AH,20H 指令助记符 * 8086指令系统 * 一个或两个操作数 伪指令 DB 28H,0AH,9FH,55H * 对汇编程序进行控制 * 可以有多个操作数

* 堆栈段、数据段、附加段、代码段都用该伪指令定义! 宏汇编语言的基本语法 段定义伪指令 段名 SEGMENT [定位类型] [组合类型] [类别] : 段主体 段名 ENDS * 堆栈段、数据段、附加段、代码段都用该伪指令定义!

宏汇编语言的基本语法 段定义中的可选项 定位类型缺省为节型(PARA),表示该段起始位置位于最后四位地址为零处 组合类型缺省为NONE,表示该段与其他模块中的逻辑段无关;STACK表示连接时将所有类别为STACK的同名段连一起,形成一个大堆栈;AT+地址表明该段的段地址 类别是单引号括起的字符串,可任意取,通常用STACK,DATA,EXTA和CODE

宏汇编语言的基本语法 过程定义伪指令 段名 PROC 过程类型 : 段主体 RET 段名 ENDP 过程类型: NEAR;FAR (说明该子程序属于段内还是段间调用)

宏汇编语言的基本语法 段名、段地址与段寄存器 ASSUME指令 仅将段寄存器名字与逻辑段名字联系起来 MOV指令 对段寄存器赋值 * DOS操作系统装入执行文件时,对代码段和堆栈段的值作了规定,不必用赋值语句

宏汇编语言的基本语法 取值运算符 SEG 给出一个变量或标号的段地址 OFFSET 给出一个变量或标号的段地址 例:FIVE EQU 5 MOV AX,FIVE ;AX=5 MOV AX,SEG FIVE ;AX=5 所在地址的段地址 MOV AX,OFFSET FIVE ; AX=5 所在地址的偏移量地址

源程序的结构 代码段 堆栈段 数据段 附加段 : 各种指令构成的程序及数据常量 : 为堆栈保留空间 :数据常量、变量及为程序所保留的工作单元

源程序的结构 代 码 段 LAA SEGMENT PARA PUBLIC ‘CODE’ ASSUME CS:LAA, SS:STAC ASSUME DS:DAT, ES:EXT ……….. LB PROC NEAR SUB AX, 8 MOV Y, AX RET LB ENDP LAA ENDS END START ;可有若干个子程序

源程序的结构 堆 栈 段 须指定组合类型 STACK ! STAC SEGMENT PARA STACK‘STACK’ DW 200H DUP(?) STAC ENDS 须指定组合类型 STACK !

宏汇编程序的运行与调试 编辑程序 PE2/EDLN 汇编程序 MASM 连接程序 LINK 源文件 XX . ASM 目标文件 XX . OBJ 执行文件 XX . EXE XX . MAP 可选 列表文件 XX . LST 交叉索引文件 XX . CRF CREF命令 可打印文件 XX . REF

程序的返回 利用软中断指令 利用RET指令 MOV AH,4CH PUSH DS INT 21H MOV AX,0 PUSH AX 标号 PROC FAR PUSH DS MOV AX,0 PUSH AX  (程序主体) RET

参数传递 参数调用 PSP段前缀: 80H:参数的个数(十六进制数) 81H~FFH:参数(ASCII码) 例:求52(执行程序PROG1可求n2)。 键入 >PROG1⊔5↙ 则: 80H 81H 82H 02H 20H 35H

本章知识点 8086程序设计的实验平台 8086程序设计 8086/8088宏汇编语言程序 PC 机的基本硬件和调用 软中断

PC 机的基本硬件和调用 PC 机的基本硬件及调用方法 扬声器 键盘及调用程序 显示器及调用程序

PC 机的基本硬件和调用 PC 机:微处理器、存储器、输入输出设备 主机箱:CPU、存储器、磁盘驱动器、并行接口、串行接口、扬声器接口等。其中扬声器接口、键盘接口、并行接口、串行接口、显示器和磁盘驱动器是使用较多的输入输出设备

PC 机的基本硬件和调用 BIOS 功能调用 BIOS:基本输入、输出系统 显示器、键盘、打印机等外部设备接口的调用程序 存放ROM 中 用 INT 类型号 的软中断指令来调用,显示器调用中断号为10H,键盘为16H

PC 机的基本硬件及调用方法 DOS 功能调用 DOS 提供给用户程序可调用的功能子程序 分设备管理、文件管理、目录管理等 用INT 类型号 的软中断指令来调用,显示器、键盘的调用中断号为 21H

扬声器 扬声器控制电路 INTEL 8255A的PB0口控制INTEL 8253通道2是否工作;

键盘及调用程序 键盘的BIOS调用程序采用中断号16H 键操作将引起硬件中断,将键盘的数据送入键盘输入缓冲器,缓冲器中数据可通过BIOS调用程序或DOS功能调用程序读出。

键盘及调用程序 键盘的DOS调用程序采用中断号21H

显示器及调用程序 CGA显示 字符显示—字符块8*8,字符5*7或7*7 8K RAM:40*25个字符 8页 80*25个字符 4页 80*25个字符 4页 首页地址:B8000H

显示器及调用程序 字符显示的位置和显示缓冲器的关系

显示器及调用程序 CGA显示 图形显示—显示内存的位对应显示器上的点 16K RAM 偶数行首地址B8000H 奇数行首地址BA000H 高分辨率—200行×640点/行,每位对应一点 (1亮,0不亮) 中分辨率—200行×320点/行,每两位对应一 点,与彩色寄存器(地址3D9H) 中的D5一起决定象元的颜色

显示器及调用程序 图形显示的位置和显示缓冲器的关系

显示器及调用程序 图形显示的位置和显示缓冲器的关系

显示器及调用程序 编程方法 字符显示:设定字符模式和彩色选择寄存器; 在显示存储器中写入字符及其属性。 图形显示:设定图形模式和彩色选择寄存器; 显示图形分奇数行和偶数行写入显示存储器。 显示器的BIOS和DOS功能调用 功能号—AH 中断号—10H(BIOS调用);21H(DOS调用)

显示器及调用程序 例:用CGA的高分辨率方式在显示屏上显示一斜线 起点座标为(320,100) 终点座标为(335,115)

显示器及调用程序 写像点: AH = 0CH INT 10H DX = 像点行号 CX = 像点列号 AL = 像点颜色

显示器及调用程序 程序示例 黑/白图形方式(640*200) CGA : START: MOV AL, 6 CALL SETMODE MOV BX, 10H MOV AL, 1 MOV CX, 320 MOV DX, 100 LP: CALL DISP INC CX INC DX DEC BX JNZ LP 共画16点 像点颜色 第一点位置

显示器及调用程序 程序示例 SETMODE PROC NEAR MOV AH,0 INT 10H 显示模式设置,AL=6 RET SETMODE ENDP 显示模式设置,AL=6 画点,位置由CX、DX决定 DISP PROC NEAR MOV AH, 0CH INT 10H RET DISP ENDP

显示器及调用程序 例:用图形模块的方式在显示屏上显示一图形“0” 图形点阵为16X16,从第0行的第624点开始显示,对应的起始地址为B804EH 先建立图形“0”的点阵数据 将此数据复制到B804EH开始的地址中

显示器及调用程序 程序示例 图形模块数据的建立 DATA SEGMENT PARA PUBLIC'DATA' DAT DB 1FH,80H,20H,40H,60H,60H,60H,60H DB 60H,60H,60H,60H,60H,60H,60H,60H DB 60H,60H,20H,40H,1FH,80H,00H,00H DATA ENDS

显示器及调用程序 程序示例 定义图形模块数据的地址 MOV AX,0B800H MOV ES,AX MOV SI,0 MOV DI,4EH CALL BL16 定义显示屏位置 数据复制

显示器及调用程序 程序示例 复制程序 CLD LBCL1: MOV CX,8 LBCL2: MOV BX,2 LBCL3: MOVSB DEC BX JNZ LBCL3 ADD DI,4EH ADD SI,2 LOOP LBCL2 CMP SI,22H JZ LBCL5 ADD DI,1D80H MOV SI,2 JMP LBCL1 复制程序

本章知识点 8086程序设计的实验平台 8086程序设计 8086/8088宏汇编语言程序 PC 机的基本硬件和调用 软中断

软中断 中断指令 INT N;N=0~255,对应的中断矢量表 中断过程 依次存放在存储器最低的1K字节中。 1. PSW入栈:PSW(SP),SP-2 SP 2. 清除TF、IF 3. CS入栈: CS(SP),SP-2 SP 4. IP入栈: IP(SP),SP-2 SP 5. 进入N#中断:(N*4)IP,(N*4+2)CS

软中断 注意事项 应避开系统所规定的中断类型; 习惯上采用STI指令开放中断; 填写中断向量表的方法: 1)开辟一数据段 中断号中断向量表的地址用MOV指令 传送中断服务程序的段地址与偏移量 2)利用DOS系统功能调用:AH=25H