⑴ 單片機中A與Acc有什麼區別
累加器A與ACC區別
累加器寫成A或ACC在51匯編語言指令中是有區別的。
ACC在匯編後的機器碼必有一個位元組的操作數,是累加器的位元組地址E0H,A在匯編後則隱含在指令操作碼中。
所以在指令中A不能用ACC來替代,而對A的特殊功能寄存器直接定址和累加器某一位的定址要用ACC,而不能寫成A。
例如,指令INCA的機器碼是04H,屬於寄存器定址,寫成ACC後則成了INCDIRECT的格式,對應機器碼為05E0H。
A和ACC都表示累加器,但A是累加器的代號,在指令中默認是無地址的,而ACC是累加器在中的直接地址(OEH),可出現在用直接定址的任何地方,例如:
PUSHACC
POPACC
類似:工作寄存器R0~R7在指令中也有兩種不同的寫法,生成的機器碼也不同,如:
MOV40H,R0,
MOV40H,00H
假設當前工作寄存器為0組,前者屬於寄存器定址,後者屬於存儲器直接定址。但R0和00H的級別不同,00H只是RAM區的一個普通單元,其讀寫速度要比慢得多。微型計算機內部通常設置工作寄存器組,運算的結果可以放在寄存器中而不必每次都放到存儲器里,可以提高機器的工作速度。其實寄存器也是一種存儲器,只不過它是CPU中的部件,速度最快而已。
寄存器和一般的存儲器是混疊的,同一單元用不同的指令,它就會執行不同的功能。
一般的說法:A表示了累加器中的內容【寄存器定址】;ACC表示了累加器的地址【直接定址】。
A和ACC的實質是一樣的,對應地址都是0E0H,只是匯編在使用時,在格式上取了兩個名字。使用有一定的規律:
當其要進行位表示時,必須用ACC,比如要寫成ACC.7,而不能寫成A.7;
但當其作為8位二進制數時,ACC和A都能用,但還是有區別:比如INCACC和INCA都能用,還有PUSHACC,POPACC不可以寫成PUSHA和POPA
在KeilC中用了這樣一個命令:PUSHA,匯編時提示錯誤,後來我把PUSHA改為PUSHACC就可以通過了,請問這是什麼回事?A與ACC是同一個寄存器嗎?
所謂「A」是相關指令對累加器A的預設指定(不佔操作數指令),而PUSH和POP沒有預設指定累加器,要訪問累加器就必須採用其所允許的直接定址方式,「ACC」就是累加器A的地址。PUSH是直接定址,後面一定跟的是直接地址。你可以看到reg51.h中ACC的直接地址是0xe0;也可以PUSHE0h;累加器有A、ACC和E0H三種表示形式,分屬兩種不同的定址方法,使用A時,為寄存器定址,指令碼為04H,使用ACC和E0H時,為直接定址,指令碼為05E0H。可A的位7,為什麼非得用ACC.7而不用A.7。這與位定址有關系,位地址有四種:直接位地址;位元組地址加位序號;位名稱;特殊寄存器加位序號。
為什麼pushacc必須用acc,而不能用a,相反movx@dptr,a只能用a,而不能用ac?acc和a有什麼區別?ACCisregister。Aisaunseparatablepartofopcode。
在mov指令中可通用,用"a"時為2位元組1周期;用"acc"時為3位元組2周期。
盡管物理地址相同,但push是對寄存器操作,而movx是對累加器操作。
匯編結果:"inca"為"04h"運行時間1周期;"incacc"為"05h,e0h"運行時間2周期。
通俗的解釋為:acc是地址為E0H的寄存器,A是標準的無地址的累加器,自然後者便捷,但兩者在值上互為鏡像
⑵ 單片機中的a<<5什麼意思
單片機中的a<<5是立即數5放入寄存器a,然後將2000h放入寄存器dptr,然後將dptr這個地址+5中的內容放入a中,也就是將地址2006h中的內容載入到寄存器a中.
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
⑶ 單片機ACALL是什麼意思
單片機ACALL是短調用子程序的意思。
ACALL是2K位元組范圍的內子程序調用指令,也就是其定址范圍在這條指令的2K位元組范圍內,超出編譯時將報錯。
與此對應的是長調用指令LCALL,長調用指令可以調用64kb范圍內程序存儲器中的任何一個子程序。
⑷ 51單片機中A、B、C、D表示什麼
用來判斷相應操作是否已經執行或者實踐是否發生。
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。
⑸ 單片機的A口是什麼在哪裡
A口就是AD0--AD7,因為AD的意思是既可以當數據線,也可以當地址線
⑹ 單片機匯編語言中A是什麼意思
1 是累加器的匯編名稱
2 是數據 二進制是1010 十進制是10 十六進制是A
⑺ 單片機中寄存器A和B有什麼區別
單片機中寄存器A和B區別為:使用不同、存放不同、他用不同。
一、使用不同
1、寄存器A:輸入/輸出指令必須通過寄存器A使用。
2、寄存器B:輸入/輸出指令不通過寄存器B,在乘法和除法運算中配合寄存器A使用。
二、存放不同
1、寄存器A:寄存器A用於存放參與算術或邏輯運算的低位元組執作數及運算結果。
2、寄存器B:寄存器B用於存放參與算術或邏輯運算的高位元組執作數及運算結果。
三、他用不同
1、寄存器A:寄存器A也可在循環和串操作中充當累計器。
2、寄存器B:寄存器B也可用作間接定址的地址寄存器和基地址寄存器。
⑻ 51單片機片內硬體結構中的a是什麼意思
51單片機片內硬體結構中的a指的是運算器或累加器,同時也是儲存運算結果的寄存器.
⑼ 51單片機復位後(A)等於什麼
51單片機復位後A等於00H。
A等於00H,表明累加器已被清零。
單片機的復位操作使單片機進入初始化狀態,其中包括使程序計數器PC等於0000H,這表明程序從0000H地址單元開始執行。
⑽ 單片機指令中A是什麼意思啊不懂,求高手指點…… MOV A,80H;80H->A,機器碼7480
A是累加器的意思。
機器碼就是程序編譯完成後最終生成的單片機程序代碼,對這句而言7480,就是將80H這個數傳送給累加器。