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

8253应用举例.doc

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

不论被加数、加数是正数还是负数,只要直接用它们的补码直接相加,当结果不超出补码所表示的范围时,计算结果便是正确的补码形式。但当计算结果超出补码表示范围时,结果就不正确了,这种情况称为溢出。 2. 补码减法 补码减法的运算规则为: 3.2.3 总线周期的概念 为了便于对8086/8088CPU引脚功能的说明,本节简要介绍总线周期的概念。 8086/8088CPU在与存储器或I/O端口交换数据时需要启动一个总线周期。按照数据的传送方向来分,总线周期可分为“读”总线周期(CPU从存储器或I/O端口读取数据)和“写”总线周期(CPU将数据写入存储器或I/O端口) 8086/8088CPU基本的总线周期由4个时钟周期组成,如图3.6所示。时钟周期是CPU的基本时间计量单位,由CPU主频决定,如8086的主频为5MHz,1个时钟周期就是200ns。一个时钟周期又称为一个T状态,因此基本总线周期用T1、T2、T3、T4表示。图3.6(a)给出典型的总线周期波形图。在T1状态CPU把要读/写的存储单元的地址或I/O端口的地址放到地址总线上。若是“写”总线周期,CPU从T2起到T4,把数据送到总线上,并写入存储器单元或I/O端口;若是“读”总线周期,CPU则从T3起到T4从总线上接收数据,T2状态时总线浮空,允许CPU有个缓冲时间把输出地址的写方式转换成输入数据的读方式。 图3.6 8086/8088基本总线周期 图3.6(b)是具有空闲状态的总线周期。如果在一个总线周期之后不立即执行下一个总线周期,即CPU此时执行的指令不需要对存储器或I/O端口进行访问,且目前指令队列满而不需要到内存中读指令,那么系统总线就处于空闲状态,即执行空闲周期。在空闲周期中可包括一个或多个时钟周期,在这期间,在高4位的总线上,CPU仍驱动前一个总线周期的状态信息;而在低16位的总线上,则根据前一个总线周期是读还是写周期来决定。若前一个周期为写周期,CPU会在总线的低16位继续驱动数据信息;若前一个总线周期为读周期,CPU则使总线的低16位处于浮空状态。在空闲周期,尽管CPU对总线进行空操作,但在CPU内部,仍然进行着有效的操作,如执行某个运算、在内部寄存器之间传送数据等。 3.6(c)是具有等待状态的总线周期。在T3状态结束之前,CPU测试READY信号线,如果为有效的高电平,则说明数据已准备好,可进入T4状态;若READY为低电平,则说明数据没有准备好,CPU在T3之后插入1个或多个等待周期TW,直到检测到READY为有效高电平后,CPU会自动脱离TW而进入T4状态。这种延长总线周期的措施允许系统使用低速的存储器芯片。 3.2.4 8086/8088引脚及其功能 例4.3 计算两个多字节十六进制数之和:3B74AC60F8H+20D59E36C1H=? 式中被加数和加数均有5个字节,可以编一个循环程序实现以上运算。假设已将被加数和加数分别存入从DATA1和DATA2开始的两个内存区,且均为低位字节在前,高位字节在后,如图4.15所示。要求相加所得结果仍存回以DATA1为首址的内存区。 程序流程图如图4.16所示。程序如下: MOV CX,5 ;设置循环次数 MOV SI,0 ;置位移量初值 CLC ;清进位CF LOOPER:MOV AL,DATA2[SI];取一个加数 ADC DATA1[SI],AL ;和一个被加数相加 INC SI ;位移量加1 DEC CX ;循环次数减1 JNZ LOOPER ;加完否,若没完,转LOOPER,继续相加 HLT ;程序暂停 图4.16 例4.3的程序流程图 1.加法指令 4.15 例4.3中被加数和加数在内存中的存放情况 AAA指令的操作为: 如果 (AL) ∧0FH9 或 (AF)=1 则 (AL) ←(AL)+06H (AH) ←(AH)+1 (AF) ← 1 (CF) ←(AF) (AL) ←((AL) ∧ 0FH) 否则 (AL) ←((AL) ∧ 0FH) DAA指令的操作为: 如果 (AL) ∧0FH9, (AF)=1 则 (AL) ←(AL)+06H (AF) ← 1 如果 (AL) 9FH 或 (CF)=1 则 (

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档