欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2954|回復: 6
收起左側

關于單片機DPTR查表類的問題

[復制鏈接]
ID:450037 發表于 2019-1-13 14:00 來自觸屏版 | 顯示全部樓層 |閱讀模式
為什么R2R3要先清c然后左移一位啊,clr   c
rlc     a不明白為什么要這么做
Screenshot_20190113-134956.jpg
回復

使用道具 舉報

ID:467418 發表于 2019-1-13 15:49 | 顯示全部樓層
加法ADD可能會產生進位,然后ADDC是帶進位的加法運算,所以C要先清零。(接觸單片機沒多久,但這應該是一個原因)
回復

使用道具 舉報

ID:467418 發表于 2019-1-13 16:00 | 顯示全部樓層
加法會產生進位,使C置1,所以要先清C,而且,ADDC是帶進位的加法計算。
回復

使用道具 舉報

ID:94031 發表于 2019-1-13 16:13 | 顯示全部樓層
rlc     a  是循環左移,不清c,c值會左移到a的最低字節。
回復

使用道具 舉報

ID:7485 發表于 2019-1-13 18:14 | 顯示全部樓層
RLC是帶C的循環左移指令,指令執行后:C的值送入最低位就是A0位,A0位送入A1......,依次往上,最高位A7送入C,執行該指令之前,C中的值不確定,就有可能出錯,所以必須清零。RRC指令也一樣。只是方向相反。
回復

使用道具 舉報

ID:450037 發表于 2019-1-13 18:43 來自觸屏版 | 顯示全部樓層
ahshmj 發表于 2019-1-13 18:14
RLC是帶C的循環左移指令,指令執行后:C的值送入最低位就是A0位,A0位送入A1......,依次往上,最高位A7送 ...

程序里循環左移一位是什么意思?為什么要循環左移一位
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表