找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2658|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機DPTR查表類的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:450037 發(fā)表于 2019-1-13 14:00 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么R2R3要先清c然后左移一位啊,clr   c
rlc     a不明白為什么要這么做

Screenshot_20190113-134956.jpg (276.11 KB, 下載次數(shù): 38)

Screenshot_20190113-134956.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:467418 發(fā)表于 2019-1-13 15:49 | 只看該作者
加法ADD可能會產(chǎn)生進位,然后ADDC是帶進位的加法運算,所以C要先清零。(接觸單片機沒多久,但這應(yīng)該是一個原因)
回復(fù)

使用道具 舉報

板凳
ID:467418 發(fā)表于 2019-1-13 16:00 | 只看該作者
加法會產(chǎn)生進位,使C置1,所以要先清C,而且,ADDC是帶進位的加法計算。
回復(fù)

使用道具 舉報

地板
ID:94031 發(fā)表于 2019-1-13 16:13 | 只看該作者
rlc     a  是循環(huán)左移,不清c,c值會左移到a的最低字節(jié)。
回復(fù)

使用道具 舉報

5#
ID:7485 發(fā)表于 2019-1-13 18:14 | 只看該作者
RLC是帶C的循環(huán)左移指令,指令執(zhí)行后:C的值送入最低位就是A0位,A0位送入A1......,依次往上,最高位A7送入C,執(zhí)行該指令之前,C中的值不確定,就有可能出錯,所以必須清零。RRC指令也一樣。只是方向相反。
回復(fù)

使用道具 舉報

6#
ID:450037 發(fā)表于 2019-1-13 18:43 來自觸屏版 | 只看該作者
ahshmj 發(fā)表于 2019-1-13 18:14
RLC是帶C的循環(huán)左移指令,指令執(zhí)行后:C的值送入最低位就是A0位,A0位送入A1......,依次往上,最高位A7送 ...

程序里循環(huán)左移一位是什么意思?為什么要循環(huán)左移一位
回復(fù)

使用道具 舉報

7#
ID:401564 發(fā)表于 2019-1-13 20:36 | 只看該作者
前面幾個用過匯編16位查表嗎?
R2和R3是分別放了一個16位數(shù)據(jù)的高位和低位,左移一位是為了要乘以2,先清除C標志位,等到低位的R3位移的時候,R3的7位(就是最高位)就會變成C位,之前的清除的C位就變成了R3的0位,再R2帶進位位移的時候,C就變成了R2的0了,這樣就可以達到一個乘以2的作用
至于為什么要乘以2,因為TAB2:DW  這個表是以兩個字節(jié)來存放的,因為是占用了兩個字節(jié)的,乘以2之后,再把這個結(jié)果當成表的偏移量來查表,才能得到正確的值
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表