找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4672|回复: 2
打印 上一主题 下一主题
收起左侧

[求助]有段汇编看不懂,求解~~

[复制链接]
跳转到指定楼层
楼主
ID:27899 发表于 2011-1-26 20:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

代码如下:

MOV DPTR,#TAB        ;置分支入口地址表首址
MOV A,R7                  ; 分支转移序号送A
ADD A,R7                  ;分支转移序号乘以2
MOV R3,A                 ;暂存人R3
MOVC A,@A+DPTR     ;处理程序入口地址的低8位暂存入R3//    ?问题所在,这个怎么就是把低八位存入呢
XCH A,R3

INC  A

MOVC A,@A+DPTR     ;处理程序入口地址的低8位送入DPL//     ?这个一样道理??

MOV DPL,A

MOV DPH,R3               ;处理程序入口地址的高8位送入DPH

CLR A                         ;累加器清零

……

……

 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:27770 发表于 2011-1-27 04:07 | 只看该作者

MOVC A,@A+DPTR     ;处理程序入口地址的低8位暂存入R3//   

?问题所在,这个怎么就是把低八位存入呢

解答:

DPTR 是一个16位的索引寄存器,比较特殊.它由 DPH(高字节) 与 DPL(低字节) 组合而成.----没有它,就无法直接或间接访问 64K 的内部或外部的地址空间!

通常,我们对 DPTR 进行直接赋值,可以直接给它最大 65535 的数据(16BIT).但是,如果我们通过其它寄存器(或 A))间接赋值时,由于这些寄存器只有 8 位,因此,这种操作总是把这个 8 位存入到 DPL 去.

就象一台汽车可以装载 8 吨物资,但是,你每次只能运送 100 公斤物资给它,不能一下子满载.
存入--写入--赋值---拷贝到----移动到----.....都代表相同意思,就是把一个数据放入去某个寄存器.

某些情况下,也可以把 DPTR 作为一个 16 位或 2 个 8 位通用临时寄存器来使用.----但是必须掌握清楚使用条件,不能有冲突!否则会影响到程序运行.

仅供参考!

回复

使用道具 举报

板凳
ID:28220 发表于 2011-3-4 18:54 | 只看该作者
解答的好!我是新手,刚看的时候也不明白!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表