8051指令機械碼 在 大象中醫 Youtube 的精選貼文
8051指令機械碼 在 大象中醫 Youtube 的最讚貼文
8051指令機械碼 在 What is MNEMONICS and OPCODE |8051 Instruction Set in ... 的推薦與評價
Microcontroller 8051 Instruction Set |How to write Program.Introduction to 8051 Microcontroller Instruction Set Writing a Program for any ... ... <看更多>
8051指令機械碼 在 [閒聊] KeilC與8051 - 記憶體與資料- 精華區ASM 的推薦與評價
眾所週知的,8051具有兩百多個指令,其中有很大一部份是作為資料轉移之用:
mov A, Rn
mov A, direct
mov A, @Ri
mov A, #data
mov Rn, A
mov Rn, direct
mov Rn, #data
mov direct, A
mov direct, Rn
mov direct, @Ri
mov direct, #data
mov @Ri, A
mov @Ri, direct
mov @Ri, #data
mov DPTR, #data16
movc A, @A+DPTR
movc A, @A+PC
movx A, @Ri
movx @Ri, A
movx A, @DPTR
movx @DPTR, A
push direct
pop direct
xch A, Rn
xch A, direct
xch A, @Ri
xchd A, @Ri
這些指令當中,絕大部份是用來做為記憶體轉移之用的(mov, movx, xch, xchd),
而其他指令可以作為讀取程式碼段使用(movc)以及記憶程式碼之用(push, pop)
8051在一開始設計之初,其指令集概念為「正交」,亦即希望所有的事情都有其對
映的單一指令,所以我們會看到有四個指令用來將資料存入A,由於8位元最多可以
定址256bytes,所以8051將低128bytes作為一般記憶體,由於SFR佔據了0x80~0xFF
的位址,所以0x80~0xFF的記憶體則必需使用間接記憶體存取。
而16位元的資料則利用DPTR這兩個八位元的暫存器來存取。
由於DPTR是16位元,所以8051最大可以支援64K的外部記憶體(0x0000~0xFFFF)及ROM。
251則利用一個8位元作為分頁,所以最大可以支援256*64K=16M的外部ROM。
因此若我們想要去存取記憶體,可以利用mov的指令,而若想讀取程式的資料,則必
需透過movc這個指令。
翻開keilC的help檔 (C51.pdf,位於安裝目錄下)
第三章的部份說明了關於資料型態的問題:
code Program memory (64 KBytes); accessed by opcode MOVC @A+DPTR.
data Directly addressable internal data memory; fastest access to
variables (128 bytes).
idata Indirectly addressable internal data memory; accessed across the full
internal address space (256 bytes).
bdata Bit-addressable internal data memory; supports mixed bit and byte
access (16 bytes).
xdata External data memory (64 KBytes); accessed by opcode MOVX @DPTR.
far Extended RAM and ROM memory spaces (up to 16MB); accessed by user
defined routines or specific chip extensions (Philips 80C51MX,
Dallas 390).
pdata Paged (256 bytes) external data memory; accessed by opcode MOVX @Rn.
因此若我們想要利用指標去讀取ROM的值,就必需將指標宣告成code的型態:
unsigned char code *pt_rom;
unsigned char tmp;
pt_rom = 0x0000;
pt_rom += 7788;
tmp = *pt_rom;
如此tmp的內容就是位址0x7788的資料了。
--
我只是個想賺 P 幣的迷途小羔羊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.230.137
... <看更多>