汇编语言

[复制链接]
查看11 | 回复1 | 2009-4-25 23:57:10 | 显示全部楼层 |阅读模式
MOV DPTR,#TAB4
MOV A,R2
ADD A,R2
JNC NADD
INC DPH
NADD:MOV R3,A
MOVC A,@A+DPTR ;取地址高8位
XCH A,R3
INC A
MOVC A,@A+DPTR ;取地址低8位
MOV DPL,A
MOV DPH,R3
CLR A
JMP @A+DPTR
TAB4:DW OPR0
DW OPR1
DW OPR2
……
DW OPRn
上面程序中MOVC A,@A+DPTR 两个为啥不一样呀,若有这样的规定,先取高八位,再取低八位,那我就更有点不懂了,看下面另一个程序
MOVC A,@A+DPTR ,若A原存放值为E0H ,DPTR中存放值为2000H,则A+DPTR为20E0H,20EOH单元存放的值为47H,则执行该指令后A中为47H。
为什么上面的没有顺序之分类,直接一起加了,也就是16位与8位直接加起来了,同理上面第一个程序,也可以这样理解么

回复

使用道具 举报

千问 | 2009-4-25 23:57:10 | 显示全部楼层
第1个问题:我也没搞明白查表指令后面的注释是什么意思。。。。回答你第2个问题:16位和8位可以直接相加,相加时8位数据和16位数据中的低8位进行相加运算,相加后若产生进位则进到高8位中去。具体的过程你可以自己动笔算一下就明白了。。。。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行