ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:37.50KB ,
资源ID:14176339      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14176339.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(什么是散转Word格式文档下载.doc)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

什么是散转Word格式文档下载.doc

1、DPTR的另一个作用是变址寻址,访问程序存储器,做查表指令:如:以dptr为基址寄存器,将dptr的内容与累加器a的内容相加得到变址地址 movc a, a+dptr ; (a)255处理地址表高8位NADD: JMP A+DPTR ;散转至地址表TAB: AJMP PRG0 AJMP PRG1 AJMP PRG255 3)程序说明 这个程序由于使用了AJMP指令,因此所有的处理程序入口PRG0、PRG1、PRG255和散转表TAB都必须在同一2KB范围内。如果一个2KB内放不下所有处理程序,可以把一些较长的处理程序放在其他地方,而在2KB内用LJMP指令转向这些处理程序。如上例PRG1放于2

2、KB内的某地址处,而其实际的处理程序入口为WPRG1,可用如下指令实现: PRG1: LJMP WPRG1 这个散转程序使用的AJMP指令为2字节指令,所以存于R2的分支序号需要乘以2才能保证正确地实现散转。若使用3字节的LJMP指令,存于R2的分支序号需要乘以3。如果(R2)乘以3大于255,则需要修改DPTR的高8位,程序如下: MOV DPTR,#TAB MOV A,R2 MOV B,#3 MUL AB XCH A,B ;3的高8位存在A中 ADD A,DPH ;3的高8位加到DPH上 MOV DPH,A3的低8位在A中 JMP A+DPTR LJMP PRG0 LJMP PRG1 LJ

3、MP PRG255(2)地址偏移表法(在256B范围内转移) 如果转向的程序均在同一页(256B),可以使用地址偏移表来实现转移。案R2的内容转向4个处理程序。 (R2)0、1、2、3,分别转向PRG0、PRG1、PRG2、PRG3。 该方法利用指令JMP A+DPTR与伪指令DB汇编时的计算功能实现散转,例如当(R2)0时,执行MOVC A,A+DPTR后,A中为PRG0TAB,执行JMP A+DPTR时,(A)(DPTR)PRG0TABTABPRG0,故转向PRG0. 使用这种方法,转移表的大小加上各个程序长度必须小于256B,转移表和各处处理程序可以位于程序存储器的任何地方。 MOV D

4、PTR,#TAB ;转移地址表表首 MOVC A+A+DPTR DB PRG0-TAB ;转移程序与转移地址首表的偏移量 DB PRG3-TABPRG0: 处理程序0PRG3: 处理程序3(3)转向地址表法(64KB范围内转移) 当转向范围较大时,可以直接使用转向地址表的方法,它的各项表格为各个转向程序的入口。散转时,使用查表指令,按某个单元的内容查表,找到对应的转向地址,把它装入DPTR中。然后将累加器A清0,再利用JMP A+DPTR指令直接转向相应的处理程序。根据(R2)转向各个处理程序 参考程序: ADD A,R2 ;A(R2)2 JNC NADD INC DPH MOV R3,A ;

5、暂存 MOVC A,A+DPTR XCH A,R3 ;转移地址高8位 INC A MOV DPL,A ;转移地址低8位 MOV DPH,R3 CLR A DW PRG0 DW PRG1 DW PRGn 用这种方法可以实现64KB范围内的转移,但散转数n255。如果n255则应采用双字节加法运算来修改DPTR。根据n(n256)转向相应的处理子程序,n放在(R2、R3)中,各子程序入口地址放于双字节表格中。 CLR C MOV A,R3 RLC A MOV R3,A XCH A,R2 ADD A,DPL MOV DPL,A MOV A,DPH ADDC A,R2 MOV R2,A INC DPT

6、R MOV DPH,R2(4)通过堆栈操作实现多分支程序转移 分支入口程序地址放在表TAB中,表TAB为16位地址。根据分支程序序号,使用查表指令,实现多分支程序的转移。根据(R2)转向n个处理程序(n255) MOV SP,#60H ;设堆栈指针分支程序入口地址表首地址 RL A ;分支序号 MOV R1,A ;暂存A INC A ;先查地址低8位 MOVC A,A+DPTR ;取地址低8位 PUSH ACC ;地址低9位压桟 MOV A,R1 ;恢复A MOVC A,A+DPTR ;取地址高8位 PUSH ACC ;地址高8位压桟 RET ;利用RET指令把PRGn弹给PC DW PRGn

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1