恭喜,你发布的帖子
发布于 2017-05-31 12:59:43
1楼
首先,我觉得程序有DB块数据相加的程序,有些错误,你的疑问是为什么取是的Word,而不是DWORD,这个问题要看你定义的DB块的里的数据
L P##start_adress //应该是一个pointer指针,包含了DB块的信息和地址数据
LAR1
L 0
L W [AR1,P#0.0] //这个是DB块的号的数据,
==I
JC _001 //进行比较,如果为0的话,就跳转到_001,我觉得干脆调到最后不执行算了
T #db_number
OPN DB [#db_number]
L D [AR1,P#0.0]
LAR1 //注意这里,再次使用了LAR1,这个数据是指针数据
L 0
T #result //一个双字的类型,初始化
L #number
back: T #cycle_nmber
L W [AR1,P#0.0] //这个时候取得的数,才是DB块的数据
ITD
L #result
+D //进行加法运算
T #result
+AR1 P#2.0 //地址寄存器自加后才能实现数据的累加
L #cycle_nmber
LOOP back
L #result
T MD100 //最后得到的DB块数据的累加
_001: Nop 0
可以按照这个程序的功能,自己编写一个程序仿真下,就能够理解了。
请填写推广理由:
分享
只看
楼主