网站大量收购闲置独家精品文档,联系QQ:2885784924

汇编语言第9章..ppt

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言第9章.

* 第九章 输入输出程序设计 9.1 输入输出指令 输入输出(I/O)是指CPU与输入设备和输出设备之间进行的信息传送。CPU与外部设备之间通过输入输出接口相连接。各个设备在输入输出接口中分配了相应的端口。访问不同的设备就是访问其对应的端口。在指令系统中提供了访问输入输出端口的指令。 一、I/O端口寻址方式 在计算机系统,对I/O端口的寻址方式有以下两种方法。 1、存储器编址方法 这种方法是指将I/O端口视为存储器的一个单元,对端口的访问就如同访问存储单元一样。访问存储器的指令和各种寻址方式同样适用对I/O端口的访问。 这种方式的特点是程序设计灵活,但需要占用存储地址空间。 2、I/O端口编址方法 在这种方法中,I/O端口的地址与存储器地址分开,并使用专门的输入指令和输出指令。8086/8088系统中就是采用的这种方式。 端口的地址范围为64K个8位端口或32K个16位端口。地址不分段。存储器地址和I/O端口地址都是通过地址总线传送。为了区分一个地址是存储器地址或端口地址,8086/8088CUP通过一条控制线M/IO或M/IO来控制。 * 当M/IO =1时,总线上地址为访问存储器 * 当M/IO =0时,总线上地址为访问I/O端口 二、输入输出指令 1、输入指令 格式: IN OPRN1,OPRN2 OPRN1为AL(字节输入)或AX(字输入)。OPRN2为输入端口地址,它可以是一个8位地址值,可以访问的端口地址范围0—255,这种方式称为直接端口寻址。也可以是用寄存器DX指定的一个16位地址,可以访问的端口地址范围为0—65535。这种方式称为间接端口寻址。 例如: IN AL,10H;从一个8位端口输入一个字节到AL中 IN AX,30H;从一个16位端口输入一个字到AX中 IN AL,DX ; IN AX,DX ; 2、输出指令 格式:OUT OPRN1,OPRN2 OPRN1为输出端口地址,可以采用与输入指令类似的直接端口寻址和间接端口寻址。OPRN2是AL(字节输出)或AX(字输出)。 例如: OUT 10H,AL;将AL中的数据输出到地址为10H的8位端口中 OUT 30H,AX;将AX中的数据输出到地址为30H的16位端口中 OUT DX,AL;将AL中的数据输出到由DX指定的8位端口中 OUT DX,AX;将AX中的数据输出到由DX指定的16位端口中 9.3 中断概念 一、一般概念 中断是现代计算机系统中必须具备的一个基本的工作控制方式。 所谓中断是指,当计算机正在执行某个程序时,突然发生了某个随机事态,如掉电,计时器计时到,某输入输出设备要求与CUP进行一次数据交换等等。这时,CUP需要中断原有程序的运行,而转去处理这些紧急事态。当处理完后,CUP又返回到原来的程序继续执行。中断处理过程如图所示。 第n条指令 第n+1条指令 中断服务程序 例行程序 例行程序 对随机事态的处理程序称为中断服务程序, 中断控制技术主要应用在下列几种场合: 1、及时处理计算机中的突发故障。如电源掉电,执行指令时产生溢出,内存出错等。 2、协调主机与外设工作速度的矛盾。 3、在实时控制系统中,及时处理各控制点的现场信息。 二、中断源及中断类型码 引起中断的原因或来源称为中断源。8086/8088CUP可以处理256种类型的中断,这些中断源可分为两大类。 1、外部中断 非CUP内部原因产生的中断,称为外部中断。外部中断又分为非屏蔽中断和可屏蔽中断。 ——可以通过标志寄存器中的中断允许位IF控制CUP是否响应中断请求。当IF=1,允许CUP响应可屏蔽中断;IF=0,禁止CUP响应可屏蔽中断。IF由指令STI和CLI设置。 ——不能由IF控制的中断源。当非屏蔽中断发生后,CUP一定要响应。 可屏蔽中断 非屏蔽中断 2、内部中断 由CUP内部发生的事件称为内部中断。如除法运算出错,执行软中断指令、单步执行中断等。 8086/8088为每个中断源都要分配一个中断类型码。中断类型码的分配由操作系统指定, 三、中断矢量表 对中断的处理是通过执行中断服务程序来实现的。为了执行中断服务程序,需要获得中断服务程序的入口地址。在不同的计算机系统中,其获取的方法可能不同,8086/8088采用的是矢量中断结构。 在内存的最小地址的1K

文档评论(0)

叮当文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档