沈陽芯碩科技有限公司為您提供維晟ws51f7030 系列的總體架構(gòu)�,?傮w架構(gòu)
1.1 8051 內(nèi)核
1.1.1 簡介
標準 8051 即 mcs-51 為 12 周期的 8051 cpu,,而 ws51f7030 系列芯片采用的是單周期 8051 cpu,完全兼容mcs-51 指令集,。
1.1.2 尋址方式
8051 的內(nèi)核尋址方式有:立即尋址,、直接尋址、間接尋址,、寄存器尋址,、相對尋址、變址尋址和位尋址,。
1.1.2.1 立即尋址
立即尋址是在指令操作數(shù)中直接給出參與運算的操作數(shù),,指令舉例如下:
mov a, #60h 這條指令把 60h 直接送到累加器 a
1.1.2.2 直接尋址
直接尋址指令操作數(shù)給出的是參與運算操作數(shù)的地址。直接尋址方式只能用于特殊功能寄存器,、內(nèi)部位地址空間,,而特殊功能寄存器和位地址空間只能用直接尋址方式訪問。指令舉例如下:
anl 50h,, #91h 把 50h 單元中的數(shù)與 91h 相“與”,,結(jié)果存放在 50h 單元中,其中 50h 為內(nèi)部 ram的地址
1.1.2.3 間接尋址
間接尋址采用 r0 或 r1 前添加”@”符號來表示,。假設(shè) r1 中是 40h,,內(nèi)部存儲器 40h 單元的數(shù)據(jù)為 55h,則指令為mov a,, @r1 把數(shù)據(jù) 55h 傳送至累加器 a
1.1.2.4 寄存器尋址
寄存器尋址對選定的工作寄存器 r7-r0,、累加器 a、通用寄存器 b,、地址寄存器和進位 c 中的數(shù)進行操作,,其中寄存器 r7-r0 由指令碼的低 3 位表示,acc,、b,、dptr 及進位 c 隱含在指令碼中。因此,,寄存器尋址也包含一種隱含尋址方式,。工作寄存器工作區(qū)由狀態(tài)寄存器 psw 的 rs1、rs0 決定,。指令操作數(shù)的寄存器均指當前工作區(qū)的寄存器,。
inc r0 r0 中的數(shù)據(jù)+1 寫回 r0
1.1.2.5 相對尋址
相對尋址是將程序計數(shù)器 pc 中的當前值與指令第二字節(jié)給出的數(shù)相加,其結(jié)果作為轉(zhuǎn)移指令的轉(zhuǎn)移地址,。轉(zhuǎn)移地址也成為轉(zhuǎn)移目的地址,,pc 中的當前值成為基地址,指令第二字節(jié)給出的數(shù)成為偏移量,。由于目的地址是相對于 pc 中的基地址而言,,所以這種尋址方式成為相對尋址。偏移量為帶符號的數(shù),,所能表示的范圍為+127--128,。這種尋址方式主要用于轉(zhuǎn)移指令。
jc $+50h 表示若進位位 c 為 0,,則程序計數(shù)器 pc 中的內(nèi)容不改變,,即不轉(zhuǎn)移。若進位位 c 為 1,,則以 pc 中的當前值及基地址,,加上偏移量 50h 后得到的結(jié)果作為該轉(zhuǎn)移指令的目的地址
1.1.2.6 變址尋址
在變址尋址方式中,指令操作數(shù)制定一個存放變址基址的變址寄存器,。變址尋址時,,偏移量與變址基值相加,其結(jié)果作為操作數(shù)的地址,。變址寄存器有程序計數(shù)器 pc 和地址寄存器 dptr,。
movc a, @a+dptr 表示累加器 a 為偏移量寄存器,,其內(nèi)容與地址寄存器 dptr 中的內(nèi)容相加,,其結(jié)果作為操作數(shù)的地址,取出該單元中的數(shù)送入累加器 a 中
1.1.2.7 位尋址
位尋址是指對一些可進行位操作的內(nèi)部 ram 和特殊功能寄存器進行位操作時的尋址方式,。在進行位操作時,,借助于進位位 c 作為位操作累加器,,指令操作數(shù)直接給出該位的地址,然后根據(jù)操作碼對該位進行位操作,。mov c,, 20h 將地址為 20h 的位操作寄存器值送入進位位 c 中
1.1.3 寄存器描述
1.1.3.1 程序計數(shù)器 pc
程序計數(shù)器 pc 寄存器為 16 位,是專門用來控制指令執(zhí)行順序的寄存器,,它沒有寄存器地址,。單片機上電或復(fù)位后,pc 值為 0,,單片機從零地址開始執(zhí)行程序,。
1.1.3.2 累加器 acc
累加器 acc 是一個常用的寄存器,指令系統(tǒng)中采用 a 作為累加器的助記符,,常用于存放算術(shù)或邏輯運算的操作數(shù)及運算結(jié)果,。
1.1.3.3 通用寄存器 b
b 在乘除法運算中需要和 acc 配合使用。mul ab 指令把 acc 和 b 中 8 位無符號數(shù)相乘,,所得的 16 位乘積的低字節(jié)存放在 a 中,,高字節(jié)存放在 b 中。div ab 指令用 b 除以 a,,整數(shù)商存放在 a 中,,余數(shù)存放在 b 中。寄存器 b 還可以用作通用暫存寄存器,。
1.1.3.4 堆棧指針 sp
堆棧指針 sp 是一個 8 位寄存器,。它指示出堆棧頂部在內(nèi)部 ram 塊中的位置。系統(tǒng)復(fù)位后,,sp 初始化位 07h,,使得堆棧事實上由 08h 單元開始,考慮 08h-1fh 單元分別屬于工作寄存器組 1-3,,若在程序設(shè)計中用到這些區(qū),,則 sp 改變?yōu)?80h 或的為宜。在程序調(diào)試中,,經(jīng)常出現(xiàn)堆棧溢出的情況,,為了方便找到程序故障,設(shè)置了一個記錄堆棧的寄存器 spmax,,可以通過 debug 接口讀出,,地址 0x1a。
1.1.3.5 數(shù)據(jù)指針 dptr
數(shù)據(jù)指針 dptr0/dptr1 是兩個 16 位寄存器,,它們的高位字節(jié)寄存器用 dp0h/dp1h表示,,低位字節(jié)寄存器用 dp0l/dp1l 表示,通過 dps(psw.1)可選擇使用 dptr0/dptr1。每個 dptr 既可以作為一個 16 位寄存器來處理,,也可以作為 2 個獨立的 8 位寄存器 dp0h/dp1h 和 dp0l/dp1l 來處理,。
1.1.3.6 狀態(tài)寄存器 psw
狀態(tài)寄存器 psw 是 cpu 的狀態(tài)寄存器。在 cpu 做算術(shù)運算或者邏輯運算時,,對應(yīng)的 psw 狀態(tài)位會發(fā)生改變,。
聯(lián)系時請說明是在云商網(wǎng)上看到的此信息,謝謝,!
聯(lián)系電話:024-85718900,13802923731,,歡迎您的來電咨詢,!
本頁網(wǎng)址:
http://gaojuwu.com/cp/46665859.html
推薦關(guān)鍵詞:
華大半導(dǎo)體,
汽車電子,
電力系統(tǒng),
醫(yī)療電子,
消防電子