㈠ 單片機查表指令movc什麼意思
MOVC指令意思是表示程序存儲器里的內容和別的存儲單元進行傳送的,主要是用在累加器A和程序存儲器的數據傳送。
單片機的操作語言使用的是匯編語言,是一種用於電子計算機、微處理器、微控制器或其它可編程器件的低級語言。
包括通用數據傳送指令MOV、條件傳送指令CMOVcc、堆棧操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交換指令XCHG/XLAT/BSWAP、地址或段描述符選擇子傳送指令LEA/LDS/LES/LFS/LGS/LSS等。
(1)單片機a查表擴展閱讀
測試指令BT、位測試並置位指令BTS、位測試並復位指令BTR、位測試並取反指令BTC、位向前掃描指令BSF、位向後掃描指令BSR等。
加法指令ADD/ADC、減法指令SUB/SBB、加一指令INC、減一指令DEC、比較操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符號擴展指令CBW/CWDE/CDQE、十進制調整指令DAA/DAS/AAA/AAS、邏輯運算指令NOT/AND/OR/XOR/TEST等。
無條件轉移指令JMP、條件轉移指令Jcc/JCXZ、循環指令LOOP/LOOPE/LOOPNE、過程調用指令CALL、子過程返回指令RET、中斷指令INTn、INT3、INTO、IRET等。
㈡ MCS-51單片機查表程序
ADD A,#16和ADD A,#7屬於查表修正指令,這是為了使用MOVC A,@A+PC這條查表指令所必需的。查表修正指令的特徵在於,其後緊跟的指令一定是MOVC A,@A+PC。這樣做的目的是確保當累加器A中的數值與程序計數器PC中的當前內容相加後,形成的查表地址與表格TABLE的首地址對齊。如果不這樣做,查表地址可能會出錯。
修正值的具體數值不是固定的,它取決於編寫的指令數量。一般來說,每條指令佔用2個位元組,個別指令如MOVC A,@A+PC可能需要3個位元組。因此,使用這種查表修正指令時,需要提前人工計算出它的修正值。然而,MOVC A,@A+DPTR是一個例外,它不需要人工計算修正,因為編譯時匯編軟體會自動計算出查表指令距離表首地址的長度,並自行修正。
在「問題補充」中,示例代碼進一步說明了查表指令的使用。MOV A,@R0將寄存器R0中的內容作為單元地址,並將該單元地址中的數據傳送至累加器A。ANL A,#0FH將累加器A中的內容與十六進制立即數0F進行邏輯「與」運算,實際是將累加器A中的高4位清零,而低4位保持不變。隨後,ADD A,#16將累加器A中的內容與十進制立即數16相加,修正後的結果再傳送給A。
最後一條指令MOVC A,@A+PC是典型的查表指令之一。其含義是將累加器A中的內容與程序計數器PC中的當前內容相加,相加後的結果作為要讀取的程序存儲器ROM的單元地址,並將該單元地址中的內容傳送給累加器A。
長久沒有光顧「知道」網站,沒想到一上來就敲了這么多字,不知道樓主是否能看懂。
㈢ 請問各位大俠,在單片機裡面,查表怎麼寫。
查表是程序設計中常用的一種技術,其基本原理是將數據預先存儲在程序存儲器中,程序運行時通過索引從存儲器中讀取數據。查表的過程主要包括准備表數據和使用查表指令兩部分。
在准備表數據時,可以使用如下指令:tab:db **
其中,tab是表的首地址標識符。
查表指令方面,51單片機提供了兩條指令:movc a,@a+dptr和movc a,@a+pc。通常情況下,movc a,@a+dptr
這條指令被更頻繁地使用。在使用查表指令之前,需要先確定表的首地址,並將其賦值給dptr寄存器,可以使用如下指令:
mov dptr,#tab
在查表過程中,根據需要查找的具體數據項編號,將該編號賦值給a寄存器,然後執行:
movc a,@a+dptr這樣,a寄存器中便存儲了查表結果。
㈣ 單片機查表MOVC A,@A+PC誰能給個簡單例子並詳細的解釋
.
.
.
MOVC A,@A+PC
RET
DB: xxH,xxH,xxH...
.
.不懂的說,給你做個示範.看懂沒
用 MOVC A,@A+PC
不如用 MOVC A@A+DPTR
你肯定是為了考試是吧.
哎!單片機是一門電子專業科.可以說是電子藝術
㈤ MCS-51系列單片機有哪些查表指令它們有何本質區別當表的長度超過256個位元組時應如何處理
【答案】:(1)查表指令有兩條:MOVC A,@A+DPTR和MOVC A,@A+PC。(2)本質區別(書P163):存放表格首地址的寄存器不同。前者將表格首地址存放在數據指針DPTR中,因此,可將表格數存放在64KB范圍內的任何有空餘的地址段,供任意次查找;後者表格首地址存放在PC當前值所指定的地址單元中,這樣,表格數就緊跟在查表指令之後,而查表指令執行完後程序還需從PC的當前值所指定的地址處繼續執行後續程序。由於PC值的特性決定了此表格數據局限於較小的、一次性查表的表格數。(3)當表的長度超過256個位元組時,對於採用DPTR作為基址時,可採用DPL、DPH分開計算的方法進行查表。對於採用PC作為基址時,表格地址到PC值之間不能超過256個位元組,否則訪問不到。
㈥ movc是什麼指令
movc是c51單片機匯編中的查表指令。
簡單來說,movc就像是單片機中的一個小助手,專門負責幫你快速找到並獲取表格中的數據,讓你的程序更加高效、簡潔。