導航:首頁 > 操作系統 > 51單片機acc

51單片機acc

發布時間:2022-11-15 03:51:16

Ⅰ 51單片機的ACC寄存器

「我做一個實驗,直接給ACC賦值,等於0x00.讓數碼管顯示它的第3位,卻顯示的是1.,不管給ACC賦什麼值都是1.」
你把這段程序發來看看

Ⅱ 單片機MCS-51匯編語言中的ACC.7,OV,ACC是什麼意思

匯編語言中 ACC 和A都是表示累加器A的, ACC.7就是表示累加器的第7位。算是位操作,OV是溢出位,是特殊功能寄存器psw中的第2位,也是位操作的。希望你能理解。

Ⅲ 51單片機中ACC怎麼用

A和ACC的實質是一樣的,對應地址都是0E0H,
只是匯編在使用時,在格式上取了兩個名字。
你看看它們的使用方法,有的地方用A,有的地方用ACC,會發現有一定的規律。
當其要進行位表示時,必須用ACC,
比如要寫成ACC.7,而不能寫成A.7
但當其作為8位二進制數時,ACC和A都能用
但還是有區別
比如 INC ACC和INC A 都能用
ACC是地址的調用
而A是累加器調用
由於PUSH、POP 是直接定址,後面一定跟的是直接地址
所以在進棧和出棧的時候 不能用A 只能用Acc
有這么一說
累加器有A、ACC和E0H三種表示形式,分屬兩種不同的定址方法,使用A時,為寄存器定址,指令碼為04H,使用ACC和E0H時,為直接定址,指令碼為05E0H
INC A 是寄存器定址
INC A 是單位元組指令,轉換成機器碼是:04H,機器碼中沒有明確指出操作數,隱含操作
數是累加器A,所以把這種方式定址叫寄存器定址。
INC ACC是直接定址
INC ACC 是雙位元組指令,轉換成機器碼是:05H,E0H。機器碼中包含了累加器A的地址E0H
這個 E0H 可以換成其他直接地址,所以這種方式定址叫直接定址。
PUSH 和 POP 指令只支持直接定址,所以不能用 A
PUSH ACC 機器碼:C0H E0H
POP ACC 機器碼:D0H E0H

Ⅳ 在51單片機中,A和ACC的具體的關系是什麼呢

  1. 累加器A與ACC區別

  2. 累加器寫成A或ACC在51匯編語言指令中是有區別的。

  3. ACC在匯編後的機器碼必有一個位元組的操作數,是累加器的位元組地址E0H,A在匯編後則隱含在指令操作碼中。

  4. 所以在指令中A不能用ACC來替代,而對A的特殊功能寄存器直接定址和累加器某一位的定址要用ACC,而不能寫成A。

  5. 例如,指令INCA的機器碼是04H,屬於寄存器定址,寫成ACC後則成了INCDIRECT的格式,對應機器碼為05E0H。

  6. A和ACC都表示累加器,但A是累加器的代號,在指令中默認是無地址的,而ACC是累加器在中的直接地址(OEH),可出現在用直接定址的任何地方,例如:

    PUSHACC POPACC

  7. 類似:工作寄存器R0~R7在指令中也有兩種不同的寫法,生成的機器碼也不同,如:

  8. MOV40H,R0,

  9. MOV40H,00H

  10. 假設當前工作寄存器為0組,前者屬於寄存器定址,後者屬於存儲器直接定址。但R0和00H的級別不同,00H只是RAM區的一個普通單元,其讀寫速度要比慢得多。微型計算機內部通常設置工作寄存器組,運算的結果可以放在寄存器中而不必每次都放到存儲器里,可以提高機器的工作速度。其實寄存器也是一種存儲器,只不過它是CPU中的部件,速度最快而已。

  11. 寄存器和一般的存儲器是混疊的,同一單元用不同的指令,它就會執行不同的功能。

  12. 一般的說法:A表示了累加器中的內容【寄存器定址】;ACC表示了累加器的地址【直接定址】。

  13. A和ACC的實質是一樣的,對應地址都是0E0H,只是匯編在使用時,在格式上取了兩個名字。使用有一定的規律:

  14. 當其要進行位表示時,必須用ACC,比如要寫成ACC.7,而不能寫成A.7;

  15. 但當其作為8位二進制數時,ACC和A都能用,但還是有區別:比如INCACC和INCA都能用,還有PUSHACC,POPACC不可以寫成PUSHA和POPA

  16. 在KeilC中用了這樣一個命令:PUSHA,匯編時提示錯誤,後來我把PUSHA改為PUSHACC就可以通過了,請問這是什麼回事?A與ACC是同一個寄存器嗎?

  17. 所謂「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。這與位定址有關系,位地址有四種:直接位地址;位元組地址加位序號;位名稱;特殊寄存器加位序號。

  18. 為什麼pushacc必須用acc,而不能用a,相反movx@dptr,a只能用a,而不能用ac?acc和a有什麼區別?ACCisregister。Aisaunseparatablepartofopcode。

  19. 在mov指令中可通用,用"a"時為2位元組1周期;用"acc"時為3位元組2周期。

  20. 盡管物理地址相同,但push是對寄存器操作,而movx是對累加器操作。

  21. 匯編結果:"inca"為"04h"運行時間1周期;"incacc"為"05h,e0h"運行時間2周期。

  22. 通俗的解釋為:acc是地址為E0H的寄存器,A是標準的無地址的累加器,自然後者便捷,但兩者在值上互為鏡像

Ⅳ 51單片機中acc是幾個位元組

ACC是一個特殊寄存器,八位的,佔一個位元組

Ⅵ MCS-51單片機復位後,專用寄存器ACC的狀態

復位後ACC=0
PC=0000H
SP=07H
B=00H
PSW=00H
DPTR=0000H
P0~P3=FFH
TMOD=00H
TCON=00H
SCON=00H
SBUF=XXH

Ⅶ 51單片機的ACC能再c語言中直接用么

如果在Keil裡面,加上reg51.h頭文件ACC是可以直接使用的,因為頭文件裡面已經定義好了。

Ⅷ 單片機MCS-51匯編語言中的ACC.7,OV,ACC是什麼意思

ACC就是A,是8位累加器,要具體對A上的每一位操作的時候,就要用ACC.*。
ACC.7就是ACC的第七位,比如說A的值是11011010,那麼ACC.7就等於1(第七位就是左數第二位)。
OV是psw上的溢出標志位,開始為0,如果之前的運算結果溢出,OV就會變成1

Ⅸ 51單片機中「ACC」怎麼用

A和ACC的實質是一樣的,對應地址都是0E0H,
只是匯編在使用時,在格式上取了兩個名字。
你看看它們的使用方法,有的地方用A,有的地方用ACC,會發現有一定的規律。
當其要進行位表示時,必須用ACC,
比如要寫成ACC.7,而不能寫成A.7
但當其作為8位二進制數時,ACC和A都能用
但還是有區別
比如 INC ACC和INC A 都能用
ACC是地址的調用
而A是累加器調用
由於PUSH、POP 是直接定址,後面一定跟的是直接地址
所以在進棧和出棧的時候 不能用A 只能用Acc
有這么一說
累加器有A、ACC和E0H三種表示形式,分屬兩種不同的定址方法,使用A時,為寄存器定址,指令碼為04H,使用ACC和E0H時,為直接定址,指令碼為05E0H
INC A 是寄存器定址
INC A 是單位元組指令,轉換成機器碼是:04H,機器碼中沒有明確指出操作數,隱含操作
數是累加器A,所以把這種方式定址叫寄存器定址。
INC ACC是直接定址
INC ACC 是雙位元組指令,轉換成機器碼是:05H,E0H。機器碼中包含了累加器A的地址E0H
這個 E0H 可以換成其他直接地址,所以這種方式定址叫直接定址。
PUSH 和 POP 指令只支持直接定址,所以不能用 A
PUSH ACC 機器碼:C0H E0H
POP ACC 機器碼:D0H E0H

閱讀全文

與51單片機acc相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163