汇编第8章 IO程序设计

合集下载

汇编语言-IO程序设计

汇编语言-IO程序设计

9.1.1 I/O端口及其分配
I/O接口作为CPU和外设之间的“缓冲”,包 含3种类型的信息。 (1)来自外部设备的数据或者要送往外部设备的 数据,分别保存在数据输入寄存器和数据输出寄 存器中。 (2)用来存放外部设备或者I/O接口部件本身的 状态,保存在状态寄存器中。 (3)用来存放CPU发出的命令,以便控制外部设 备和接口的动作,保存在控制寄存器中。
第9章 IO程序设计
9.1 9.2 9.3 9.4
IO基本概念 直接传送方式 中断传送方式 DMA传送方式
I/O是输入/输出的简写,输入/输出是对外 部设备进行控制和数据交换的过程。
9.1 I/O基本概念
CPU与外设之间的信息传送有多种方式,微机 中通常使用以下3种。 (1)直接传送方式。 (2)中断传送方式。 (3)DMA传送方式。
CPU可以使用两种方式来访问I/O端口: 统一编址方式 独立编址方式
(1)统一编址。从存储空间中划出一部分地 址空间分配给I/O设备,存储空间的地址映射到 I/O接口电路的端口,剩下的部分由内存使用。
(2)独立编址。内存地址空间和I/O地址空 间是相互独立的。
按照PC系列微机系统中I/O接口电路的复杂程 度及应用形式,可以把I/O接口的硬件分为两大 类。 (1)系统板上的I/O接口芯片。 (2)扩展槽上的I/O接口卡。
中断处理程序(Interrupt Service Routine,ISR )处理与中断相关的事务,控制外设进行I/O操作。在 中断处理程序中,应该按顺序完成以下几个步骤。 (1)保存寄存器内容。 (2)进行与该中断源有关的I/O操作。 (3)发送中断结束命令给8259。 (4)恢复寄存器内容。 (5)执行IRETD(IRET)指令返回被中断的程序。

汇编语言程序设计经典课件

汇编语言程序设计经典课件

汇编语言程序设计经典课件1. 引言汇编语言是一种低级程序设计语言,通过使用特定的指令和寄存器对计算机硬件进行直接操作。

本课件旨在帮助读者理解并掌握汇编语言程序设计的基本概念和技巧。

2. 基本概念在开始学习汇编语言之前,有一些基本概念需要了解:2.1 计算机的工作原理•冯·诺依曼体系结构•控制器和算术逻辑单元(ALU) •存储器和寄存器2.2 汇编语言的基本原理•指令集和操作码•寄存器和内存•标志寄存器和条件代码在汇编语言中,数据的表示方式有以下几种:3.1 二进制表示法•正整数、负整数和零•浮点数3.2 十进制表示法•常见数据类型3.3 其他表示法•八进制、十六进制和ASCII码表示法汇编语言包含各种指令,用于执行不同的操作。

以下是一些常见的基本指令:4.1 数据传送指令•MOV指令•XCHG指令4.2 算术和逻辑指令•ADD指令•SUB指令•AND指令•OR指令•XOR指令4.3 跳转指令•JMP指令•JZ指令•JC指令5. 汇编语言的程序结构一个汇编语言程序通常包含以下几个部分:5.1 程序的入口和出口•程序的开始和结束•程序的返回指令5.2 子程序•什么是子程序•如何调用和返回子程序5.3 中断处理程序•什么是中断•如何编写中断处理程序6. 汇编语言的调试和优化6.1 调试工具•机器级调试工具•模拟器和调试器6.2 优化技巧•寄存器的使用•循环优化•数据对齐7. 汇编语言的应用领域汇编语言在很多领域都有广泛的应用,包括但不限于:7.1 嵌入式系统7.2 驱动程序开发7.3 游戏开发7.4 系统安全8. 结语汇编语言是一种能直接与计算机硬件交互的低级语言,它对于理解计算机的工作原理和进行底层编程非常重要。

本课件希望能够为读者提供一个系统而全面的汇编语言程序设计入门指南,并帮助读者在实践中灵活运用所学知识。

汇编语言程序设计教程

汇编语言程序设计教程

汇编语言程序设计教程汇编语言是一种基于机器指令的低级语言,常用于嵌入式系统和底层编程。

学习汇编语言可以帮助理解计算机底层工作原理,并提高编程效率。

本篇文章将介绍汇编语言程序设计的基础知识和主要步骤。

一、汇编语言的特点汇编语言是一种直接操作计算机硬件的语言,其特点如下:1.与机器语言一一对应:每一条汇编指令对应一条机器指令,更接近计算机底层的执行方式。

2.语法简单:汇编语言的语法相对简单,只包含一些基本指令和寻址方式。

3.高度灵活:汇编语言可以直接访问计算机硬件和寄存器,灵活控制程序的执行流程。

4.高效性能:由于直接操作底层硬件,汇编语言编写的程序通常具有较高的执行效率。

二、汇编语言的基本组成1.汇编指令:汇编指令是汇编语言最基本的语句单元,用于实现具体的操作和控制流程。

2.伪指令:伪指令是用来对程序进行宏汇编定义和控制汇编程序的运行方式的命令。

3.伪操作码:伪操作码用来定义数据和存储空间,如定义变量和常量。

4.标号和标识符:标号用于标记程序中的位置,标识符用于定义变量和常量的名称。

5.注释:注释用于给程序增加解释说明,提高程序的可读性。

三、汇编语言程序设计的步骤1.确定程序的目标和功能:明确程序的需求和目标,确定所需的处理过程和数据结构。

2.设计算法:使用伪代码或流程图的形式描述程序的算法逻辑,包括输入、处理和输出过程。

3.选择合适的汇编指令和寻址方式:根据程序需求,选择适当的指令和寻址方式,确保程序能够正确实现算法逻辑。

4.编写程序源代码:根据算法和选定的指令,编写程序源代码,包括声明、定义变量、初始化和实现算法的具体指令。

5.进行编译和调试:使用汇编编译器将源代码转换为机器码,然后进行程序的调试和测试,确保程序能够正常运行。

6.优化性能和可读性:根据程序的需求和实际运行结果,进行性能优化和代码可读性的提高,提高程序的执行效率和可维护性。

四、汇编语言程序设计的示例下面是一个简单的汇编语言程序示例,实现了计算两个数之和的功能:```section .datanumber1 db 10 ;定义变量number1,并初始化为10number2 db 20 ;定义变量number2,并初始化为20sum db ? ;定义变量sum,用于存储两个数之和section .textglobal _start_start:;将number1和number2的值相加,并保存到sum中mov al, [number1]add al, [number2]mov [sum], al;结束程序mov eax, 1 ;1代表退出程序int 0x80 ;调用系统中断```以上示例通过使用mov和add指令来实现变量的赋值和求和操作。

汇编语言程序设计

汇编语言程序设计

汇编语言程序设计汇编语言是一种底层的计算机语言,它直接与计算机硬件交互,具有灵活性和高效性的特点。

在计算机科学领域,汇编语言程序设计是一门重要的学科。

本文将分析汇编语言程序设计的基本原理和应用,介绍其在实际项目中的应用以及相关的开发工具。

一、汇编语言程序设计的基本原理汇编语言是一种符号化的机器语言,通过使用助记符和标号来描述指令和数据。

它与计算机硬件非常接近,可以直接操作寄存器、内存和其他硬件资源。

汇编语言程序设计的基本原理包括指令的组成、寄存器的使用、内存的管理和流程控制等方面。

1.1 指令的组成汇编语言的指令由操作码和操作数组成。

操作码是指令的功能代码,用于定义指令要执行的操作。

操作数是指令的操作对象,可以是寄存器、内存地址或立即数等。

汇编语言提供了丰富的指令集,包括算术运算、逻辑运算、数据传输、控制转移等多种类型的指令。

1.2 寄存器的使用寄存器是计算机内部用于存储临时数据的高速存储器。

汇编语言通过寄存器来进行数据的传输和运算。

不同的计算机体系结构提供了不同数量和类型的寄存器。

常见的寄存器包括通用寄存器、指令指针寄存器和程序状态寄存器等。

1.3 内存的管理内存是计算机用于存储程序和数据的主要设备。

汇编语言可以通过直接指定内存地址来读取和写入数据。

内存管理的主要任务包括地址转换、数据的加载和存储、内存保护等。

汇编语言通过使用段寄存器和偏移地址的方式来管理内存。

1.4 流程控制汇编语言支持多种流程控制指令,包括条件跳转、无条件跳转、循环和子程序调用等。

通过这些指令,程序可以根据运行结果来选择不同的执行路径,实现复杂的逻辑功能。

流程控制是程序设计中的重要部分,对于优化程序性能和实现复杂算法非常关键。

二、汇编语言程序设计的应用汇编语言程序设计广泛应用于系统级编程、设备驱动、数字信号处理等领域。

以下是汇编语言程序设计在实际项目中的常见应用。

2.1 操作系统开发操作系统是计算机硬件与用户之间的接口,负责管理硬件资源和为应用程序提供服务。

汇编语言第8章输入输出接口

汇编语言第8章输入输出接口
本章主要内容
(1) I/O接口的基本概念 (2) I/O控制方式 (3) DMA接口技术 (4) 可编程DMA控制器8237
8.1 I/O接口概述
8.1.1 I/O接口的基本功能
(1) 数据缓冲 (2) 提供联络信息 (3) 信号与信息格式的转换 (4) 设备选择 (5) 中断管理 (6) 可编程功能
IOW
图8.4 片选信号的产生
8.2 I/O控制方式
主机与外围设备之间的数据传送控制方式(即I/O控制 方式)主要有三种:
程序控制方式、中断控制方式和直接存储器存取 (DMA)方式。
8.2.1 程序控制方式
程序控制方式是指在程序控制下进行的数据传送方式。 它又分为无条件传送和程序查询传送两种。
地址空间 200~20FH 210~217H 218~2F7H 2F8~2FFH 300~31FH 320~32FH 330~377H 378~37FH
器件/接口适配器 地址空间
游戏卡
380~38FH
扩充部件
390~3AFH
未用
3B0~3BFH
异步通信卡(COM2) 3C0~3CFH
未用
3D0~3DFH
(5) DMA控制器发出存储器写信号MEMW,将数据传送 到由地址总线上的地址所指向的内存单元;
(6) DMA控制器放弃对总线的控制权;
(7) 地址寄存器加1;
(8) 字节计数寄存器减1;
(9) 如果字节计数寄存器的值不为零,则返回第一步,否 则结束。
第8章 作业
8.1 8.2 8.3 8.5 8.6 8.7 8.11
硬盘卡
3E0~3EFH
未用
3F0~3F7H
打印卡
3F8~3FFH

汇编程序设计

汇编程序设计

汇编程序设计汇编程序设计是一种底层的编程语言,它直接操作计算机的硬件资源,可以实现高效的程序运行。

汇编程序设计需要掌握计算机的底层结构和指令集,以及编程的基本思想和技巧。

在实际应用中,汇编程序设计常用于嵌入式系统、驱动程序、操作系统等领域。

汇编程序设计的基本思想是将高级语言编写的程序转换为机器语言,实现对计算机硬件资源的直接控制。

汇编程序设计需要掌握计算机的底层结构和指令集,以及编程的基本思想和技巧。

在实际应用中,汇编程序设计常用于嵌入式系统、驱动程序、操作系统等领域。

汇编程序设计的基本技巧包括寄存器的使用、内存的访问、指令的编写等。

寄存器是计算机中用于存储数据和指令的高速存储器,汇编程序设计中常用的寄存器包括通用寄存器、段寄存器、标志寄存器等。

内存是计算机中用于存储数据和程序的主要存储器,汇编程序设计中需要掌握内存的地址计算、数据的读写等操作。

指令是汇编程序设计的基本单位,汇编程序设计中需要掌握指令的格式、操作码、寻址方式等内容。

汇编程序设计的开发工具包括汇编器、调试器等。

汇编器是将汇编语言转换为机器语言的工具,常用的汇编器有MASM、NASM等。

调试器是用于调试程序的工具,常用的调试器有OllyDbg、GDB等。

在开发汇编程序时,需要使用这些工具进行编译、调试等操作。

汇编程序设计需要掌握计算机的底层结构和指令集,以及编程的基本思想和技巧。

在实际应用中,汇编程序设计常用于嵌入式系统、驱动程序、操作系统等领域。

汇编程序设计的基本思想是将高级语言编写的程序转换为机器语言,实现对计算机硬件资源的直接控制。

汇编程序设计的基本技巧包括寄存器的使用、内存的访问、指令的编写等。

汇编程序设计的开发工具包括汇编器、调试器等。

总之,汇编程序设计是一种底层的编程语言,需要掌握计算机的底层结构和指令集,以及编程的基本思想和技巧。

在实际应用中,汇编程序设计常用于嵌入式系统、驱动程序、操作系统等领域。

汇编程序设计的基本思想是将高级语言编写的程序转换为机器语言,实现对计算机硬件资源的直接控制。

汇编语言程序设计

汇编语言程序设计汇编语言是一种低级编程语言,它提供了一种让计算机可以直接理解的指令集。

它的核心价值在于,它可以控制电脑硬件的精细动作,并且比高级语言更加高效和快速。

汇编语言程序设计是一种重要的计算机科学和技术。

汇编语言是一种编程语言,它与普通的高级编程语言不同,它不能被用户直接看懂,而是需要特定的编程器才能将它翻译成计算机可以理解的机器语言。

汇编语言与其他类型的语言一样,它也有自己的编码规则。

汇编语言的作用主要是让计算机可以完成复杂的任务,并将程序指令转化为计算机可以理解的机器代码语言。

汇编语言可以让计算机更加快速、准确地完成运算和操作。

汇编语言程序设计的基本原理是,使用指令给计算机发出指令,让它完成特定的动作,然后将结果保存到特定的内存位置。

汇编语言的指令是用二进制形式表示的,它能够控制电脑硬件的精细动作,实现计算机的动态控制,提供快速、可靠的程序。

汇编语言程序设计的重要价值在于,它可以实现更加高效的程序,降低程序的运行时间,减少计算机内存的使用,保证程序的可移植性。

汇编语言还可以完成一些复杂而又不可能用高级语言实现的操作,提高计算机性能。

汇编语言程序设计具有独特的优势,在现代计算机编程中占据着重要的地位。

它不仅可以使计算机更加高效地完成任务,而且可以更好地满足用户的要求。

汇编语言程序设计能够使计算机在多种硬件中实现程序的运行,为人们的日常生活提供更加高效的服务。

汇编语言程序设计是一项高技术,它需要有专业的技术知识,熟练掌握汇编程序设计的相关技术,并有深入地构建、测试和调试汇编语言程序的经验才能够胜任。

汇编语言程序设计不仅是计算机科学的一门基础课,也是计算机技术及应用的一个重要组成部分。

汇编语言程序设计是一门技术性的课程,它既涉及机器语言的编程思想,又涉及计算机系统的结构与运行原理。

学习汇编语言的学生,需要有良好的数学基础,要掌握编程语言的特性和语法,正确理解计算机原理,才能真正掌握汇编语言程序设计的基本技术。

汇编实验五IO程序设计

实验报告学院:计算机科学与信息学院专业:网络工程班级:姓名学号实验组实验时间指导教师王晓鹏成绩实验项目名称实验五、I/O程序设计实验目的1、掌握I/O程序设计。

2、掌握in指令和out指令的使用。

实验要求1、程序算法流程图。

2、源程序清单。

3、程序运行结果。

4、调试过程中遇到的问题和解决的方法。

实验内容1、编写一个简单发声程序,通过控制61H端口的次低位从而控制扬声器。

实验数据源程序:.model small.stack.data.code.startupmov bx,50000 mov al,0b6h out 43h,al mov ax,533h out 42h,al mov al,ahout 42h,alin al,61h mov ah,alor al,3out 61h,al wait1:mov cx,5000 delay:loop delay dec bxjnz wait1 mov al,ahout 61h,al.exit 0End程序算法流程图:开始初始化设置定时器开扬声器通播放声音延时N 次数满否?Y关闭扬声器结束运行结果:实验总结在刚开始时,由于拼写错误,把exit 0 写成了eixt 0,导致错误,改正过后运行正确。

还有就是声音播放时间太短,后来把mov bx,5000改成了mov bx,50000,播放时间就变长了。

指导教师意见签名:年月日注:各学院可根据教学需要对以上栏木进行增减。

表格内容可根据内容扩充。

汇编语言设计 教案 第八章 输入输出程序设计


IRET
中断操作步骤
利用保留的中断类型号扩充中断功能,需要在中断向量表中建立相应的中断 向量。为中断类型N设置中断向量的方法: MOV AX ,0 MOV ES ,AX MOV BX ,N﹡4 MOV AX ,OFFSET INHAND MOV ES :WORD PTR [BX] ,AX MOV AX ,SEG INHAND MOV ES :WORD PTR[BX+2] ,AX ②
中断命令寄存器 (I/O)端口 )端口20H
7
R
6
SL
5
EOI
4
0
3
0
2
L2
1
L1
0
L0
中断标志位IF的设置: STI ;设置中断允许位(IF=1),允许中断(开中断) CLI ;清除中断允许位(1F=0),禁止中断(关中断) 中断命令寄存器:EOI是中断结束位,当EOI为1 时,当前正在处理的硬件中断请求就被清除,所以在 中断处理完成后,必须把中断结束位置为1。 结束硬件中断用下面的指令: MOV AL ,20H ;20H = 00100000B,置EOI 为1 OUT 20H ,AL ;
本例中CX=6000 它决定发声频率 值小声音尖锐, 值大声音低沉。 DX=1000决定 发声时间长短。
POP DX POP AX RET SOUND ENDP
例:打印字符程序PRT CHAR。 打印字符程序PRT—CHAR PRT CHAR。 这是一个采用查询方式的打印字符程序。程序通过 反复读取并测试打印机的状态来控制输出。在打印机接 口中,数据寄存器的端口地址为378H,状态寄存器的端 口地址为379H,控制寄存器的端口地址为37AH
中断逻辑
0 除法 错误

汇编第8章IO程序设计课件.

N
开始
传送完?
Y
结束 查询传送工作流程
7
2.中断传送方式
采用中断方式, CPU执行主程序,等待中断 的发生。I/O设备与CPU并行操作,进行数据传 发申请 中断源 输的准备工作。当输入设备将数据准备好,或者 中断服务程序 输出设备空闲时,便通过I/O接口向CPU发申请 中断。CPU在每执行完一条指令之后都会检查是 否有中断请求,只要满足中断响应条件,CPU就 发申请 暂停执行当前的程序,转向执行中断处理程序, 中断服务程序 进行数据传送,等传送完成后,CPU 返回到被中 断的主程序,继续进行原来的工作。
长格式: IN AL, PORT (字节) IN AX, PORT (字) 执行操作:(AL) ( PORT ) (字节) (AX) ( PORT+1, PORT )(字) 短格式: MOV DX, PORT IN AL, DX (字节) 长格式: IN AX, DX (字) 执行操作:(AL) ( (DX) ) (字节) (AX) ( (DX)+1, (DX) )(字)
– 过程演示
4
8.1 I/O 设备的数据传送方式
1、查询方式 (程序控制方式) 2 、中断方式
3 、DMA方式 (直接存储器存取方式/成组传送方式)
6
1.查询传送方式
CPU和内存通过端口与外部设备进行通信。CPU在 执行主程序过程中,当需要进行I/O操作时,很难保证输 入设备已经准备好了数据,或者是输出设备已经处在可 查询过程使CPU很容易 读外设状态 以接收数据的状态。因此,一般要在外部设备准备就绪 与不同速度的外设实现 N 并且I/O 接口已经做好数据传送的情况下,才能进行数据 速度配合,使接口电路 准备好? Y 传送,这种传送方式称为查询传送方式。 十分简单,适用于较少 传送数据 数据传输情况下使用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

waitf proc push
waitf1: in and cmp je mov loop pop ret
waitf endp
near ax
al, 61h al, 10h al, ah waitf1 ah, al waitf1 ax
16
(2)定时器触发方式
可编程时间间隔定时器8253/8254 计数器0:用于控制系统时钟正常运转,端口地
址为40H。 计数器1:用于存储器刷新 ,端口地址为41H。 计数器2:用于控制扬声器发声,端口地址为
42H。 公用的控制寄存器:端口地址为43H
17
8253/8254定时器作为发声源
计数器2 的G端与61H端口的bit0位相连,将61H端口的bit0位置成1,那 么计数器2就被启动,此时将有一组信号从OUT端输出,信号的频率可以 用程序控制(设初值);若61H端口bit0位为0,则定时器被关闭,OUT端就 会恒定为1。
DW 3 DUP(294),330,392,392
;3,4节
DW 330,294,262,294,4 DUP(330) ;5,6节
DW 294,294,330,294,262,-1
OUT 43H,AL
;方式3、双字节写和二进制计数方式写到控制口
MOV DX,12H ;设置被除数(DX:AX)=1193181.7Hz
MOV AX,348CH
DIV DI
;其商(AX)为预置值
OUT 42H,AL ;先送LSB MOV AL,AH OUT 42H,AL ;后送MSB
20
IN AL,61H ;读8255端口B(61H)原值
CPU个惟一编号—接—口称为端口数地据址(或 外设
端口号PORT)。 8086CPU采用I/O端口独控立制编址的
方式,采用16位地址最多能管理
64K个端口,即端口占64KB地址空 间,端口号为I/0O~接65口535。必须使用
CPU与外设交换专的门信的息I类/O型指:令访端问口端的口编。址方式
1、控制信息——命令寄存器 ① I/O端口与存储器统一编址
10
8.2 程序直接控制 I/O 方式
I/O 指令是主机与外设进状行态通寄信存的器最的基端本途径。DOS 功能调用和BIOS例行程序中的口地输址入(/0输0~出FF功H能) 也是由IN和 OUT指令完成的。
例:循环测试某状态寄存器的2位是否为1
读I/O状态
AGAIN: IN TEST JZ
AL, STATUS_PORT AL, 00000100B AGAIN
dec jne ……
cx, 2800 wait1
dx sound
;控制延迟时间,即脉宽 ;8086CPUloop指令 ;执行17个时钟周期 ;延迟时间2800*17*T ;(T为主频的倒数)
;假如系统频率为4.7MHZ, ;得到延迟时间为10ms
14
使用LOOP指令实现延迟的程序延迟时间依赖CPU主 频和LOOP指令的执行周期,为了建立一个与处理器 无关的时间延迟,IBM采用了一种利用硬件产生时间 延迟的方法。
2、状态信息——状态寄存器 3、数据信息——数据寄存器
② I/O端口单独编址(80X86微 机)
2
累加器专用传送指令IN/OUT
(只能用AX或AL与端口传送信息)
输入指令 IN (I/O CPU)
长格式: IN AL, PORT (字节)
IN AX, PORT (字)
执行操作:(AL) ( PORT )
MOV AH,AL ;保存端口原值
OR AL,3
OUT 61H,AL ;接通扬声器
WAIT1:MOV CX,633 ;等待10ms
call waitf ;调用延时15.08*10-6s
DEC BX
;入口参数(BX)=循环次数
JNZ WAIT1
;音长=BX*10ms
MOV AL,AH ;写回61H口原值,关闭扬声器 OUT 61H,AL
21
POP DI POP DX POP CX POP BX POP AX RET GENSOUND ENDP CODE ENDS
END
;恢复寄存器 ;子程序结束返回
返回本节
22
演奏乐曲程序
表1 音律与频率对应表
音名 C D E F G A B C D E F G A B C



唱名 1 2 3 4 5 6 7 1 2 3 4 5 6 7 i
(字节)
(AX) ( PORT+1, PORT )(字)
PORT是端口地 址(00~FFH)
短格式: MOV DX, PORT
输出指令 OUT (CPU I/O)
IN AL, DX (字节) IN AX, DX (字)
长格式:
执行操作:(AL) ( (DX) ) (字节)
OUT PORT, AL (字节) OUT PORT, AX (字)
DEV2: IN AL, STAT2 TEST AL, STAT2_BIT JZ DEV3 CALL FAR PTR PROC2
DEV3: IN AL, STAT3 TEST AL, STAT3_BIT JZ DEV1 CALL FAR PTR PROC3
优:程序安排或修改 设备的优先次序 缺:查询等待浪费 CPU大量有效时间
第8章 输入输出程序设计
总线
CPU MEM I/O接口
CPU可与I以/O直接接口读进写行3通个信地是方的 数通据过:接口电路内部的一组
寄存(器1实)现C的PU,内这部些的寄寄存存器; 器称(为2端)口内,存包单括元:;数据 端口(、3状)态端端口口。和命令端口。
I/O设备
1
CPU与外设

不同外设具有的端口数各不相同, 计算机中为每一个端口都状赋态予一
OUT 61H , AL
…….
MOV AL , AH
;恢复原状态, pop ax
OUT 61H , AL
19
扬声器发声通用子程序
GENSOUND
PROC FAR
PUSH AX
PUSH CX
PUSH DX
PUSH DI
;入口参数(DI)=指定声音的频率
MOV AL,0B6H ;向8253-5/8254-2计数器2写控制字
若将bit0位置0,则定时器关闭,此时OUT端为1,这时 候如果连续改变bit1位的状态,也可以从喇叭中听到声音, 这就是位触发方式;若将bit1位置0,则开关关闭,此时即使 打开定时器也不能听到声音。
IN
AL , 61H
;读状态
MOV AH , AL
;保存原状态,push ax
OR
AL , 00000011B ;置bit0,bit1为1
使用I/O指令直接控 制输入输出比调用 DOS功能或BIOS例行 程序效率更高,但其 对硬件的依赖性很大, 所以一般的程序设计 还是尽可能使用DOS 或BIOS功能调用。
12
发声系统
为了具有音响输出能力,系统板上装有一个2.25英寸的扬声器 以及控制电路和驱动电路。控制电路能以位触发和定时器控制两 种不同的方式驱动扬声器发声。
…… wait1: mov
call dec jnz …….
cx, 633 ;633* 15.08*10-6s =10ms
waitf ;调用延时15.08*10-6s
bx
;BX 控制音频
wait1
15
利用硬件产生延迟的方法,与处理器无关
;-----------------------利用端口61h的PB4延时15.08*10-6s子程序 ;-----------------------入口参数为CX,必须装入15.08*10-6s的倍数
(AX) ( (DX)+1, (DX) )(字)功能:将寄存器中内容输出到指定端口。
端口号>255时, 先送到DX
短格式: MOV DX , PORT OUT DX, AL (字节) OUT DX, AX (字)
3
访问端口:
– in al,60h;从60h号端口读入一个字节 – 执行时与总线相关的操作:
设备控制寄存器( 61h )
控制其它外部设备
1
0
1/0 0
2号定时器门控
与 门
放大器
(1)位触发方式 程序直接控制PPI(8255A可编程序外围接口芯片)的输出控
制寄存器(I/O端口61H)的1位,使该位按所需的频率进行1和 0的交替变化,从而控制开关电路产生一串脉冲波形,经放大后 驱动扬声器发声。如果控制这一串脉冲的脉宽和长度就可以产生 不同频率和不同音长的声音。
系统将定时器产生的方波信号同8255的端口B相与来控制扬声器发声, 因此当PB1=1时,才能控制扬声器的音调。在系统中8255的B口地址为 61H。
图 控制扬声器发声原理图
18
扬声器驱动
与门用在这里相当一个“可控开关”,如果将61H端口 的bit0、bit1位都置成1,则相当于既打开了定时器又打开了 开关,这时候定时器产生的声音信号就会送到放大器推动喇 叭发声;称为 定时器触发方式
– 过程演示
4
8.1 I/O 设备的数据传送方式
1、查询方式 (程序控制方式) 2 、中断方式 3 、DMA方式 (直接存储器存取方式/成组传送方式)
6
1.查询传送方式
CPU和内存通过端口与外部设备进行通信。CPU在
执行主程序过程中,当需要进行I/O操作时,很难保证输 入设备已经准备开好始了数据,或查者询是过输程出使设C备P已U很经容处易在可 以接收数据读的外状设态状。态因此,一与般不要同在速外度部的设外备设准实备现就绪
频率 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5 (Hz) 3 4 6 7 9 2 4 6 9 3 4 9 4 9 2
相关文档
最新文档