标题: [求助]有段汇编看不懂,求解~~ [打印本页]

作者: n664500560    时间: 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                         ;累加器清零

……

……

 


作者: hfbjjs    时间: 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 位通用临时寄存器来使用.----但是必须掌握清楚使用条件,不能有冲突!否则会影响到程序运行.

仅供参考!


作者: mucyuan    时间: 2011-3-4 18:54
解答的好!我是新手,刚看的时候也不明白!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1