資料介紹
MCS-51系列單片機(jī)作為經(jīng)典的單片機(jī)應(yīng)用十分廣泛,其指令總共有111條。其指令中對操作數(shù)的尋址方式有7種,分別為立即數(shù)尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址。在學(xué)習(xí)相對尋址的內(nèi)容和有關(guān)相對尋址的指令時(shí),許多初學(xué)者會對于偏移量的值和跳轉(zhuǎn)目的地址的值混淆不清,產(chǎn)生疑惑和不解。許多教材對此問題的解釋也不一致,甚至有錯(cuò)誤,這加深了初學(xué)者的困惑和理解錯(cuò)誤。仿真技術(shù)在電子電路設(shè)計(jì)中得到了廣泛的應(yīng)用,利用Protues、偉福軟件等可以很直觀的展示程序的執(zhí)行過程。為了揭示相對尋址的本質(zhì),本文將利用Protues仿真軟件和偉福軟件的仿真功能對相對尋址進(jìn)行剖析。
相對尋址方式是為了程序的相對轉(zhuǎn)移而設(shè)計(jì)的,其過程是以當(dāng)前PC的內(nèi)容為基址,加偏移量作為轉(zhuǎn)移地址,從而實(shí)現(xiàn)程序的轉(zhuǎn)移。轉(zhuǎn)移的目的地址取決于表達(dá)式:目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)數(shù)+偏移量。需要注意的是,偏移量是有正負(fù)號之分的,偏移量的取值范圍是當(dāng)前PC值的-128~+127之間。該表達(dá)式應(yīng)這樣理解:在執(zhí)行轉(zhuǎn)移指令語句時(shí),PC的內(nèi)容是轉(zhuǎn)移指令的下一條指令的地址值,該地址值加上要偏移的地址字節(jié)數(shù)形成新目的地址,然后程序跳轉(zhuǎn)到新的目的地址,其中要偏移的地址字節(jié)數(shù)為8位有符號數(shù)二進(jìn)制數(shù),即偏移量在-128~+127之內(nèi)。那么這個(gè)偏移量是如何得到的呢?在許多教材和文章中均以rel作為相對尋址的標(biāo)志,這些教材和文章對相對尋址的解釋都很相似,其解釋為:以程序計(jì)數(shù)器PC的當(dāng)前值為基址,加上匯編指令中給出的相對偏移量rel,形成新的PC值,即跳轉(zhuǎn)目的地址,相對偏移量rel為一字節(jié)補(bǔ)碼數(shù),其表示范圍為-128~+127[1-8]。舉例來說明此問題,如下面的匯編語言程序語句:
ORG 0200H
MOV A,#36 ;雙字節(jié)指令
JNZ 30H ;雙字節(jié)指令
按這些教材和文章中的解釋,執(zhí)行指令JNZ 08H時(shí)PC值變?yōu)?202H+2,30H就是相對偏移量,該指令執(zhí)行后程序應(yīng)該跳轉(zhuǎn)到目的地址=0202H(轉(zhuǎn)移指令地址)+2(轉(zhuǎn)移指令JZ的字節(jié)數(shù))+30H(偏移量)=0232H上。事實(shí)上這種解釋是錯(cuò)誤的,該跳轉(zhuǎn)指令執(zhí)行后程序不會跳轉(zhuǎn)到計(jì)算出的目的地址上去。筆者認(rèn)為應(yīng)該是:進(jìn)行相對尋址時(shí),確實(shí)是以PC的當(dāng)前值作為基址,加上相對偏移量形成新的目的地址,但是在匯編指令中并不能直接看出相對偏移量,這個(gè)偏移量體現(xiàn)在機(jī)器碼中;而匯編指令中的rel,不管是數(shù)值形式還是符號形式只能是目的地址值,且其距離在當(dāng)前PC值-128~+127的范圍內(nèi)。
- 單片機(jī)原理及應(yīng)用的詳細(xì)資料說明 20次下載
- 51單片機(jī)的匯編指令詳細(xì)資料說明
- 使用51單片機(jī)控制小燈閃爍的程序和資料說明
- 51單片機(jī)例函數(shù)的詳細(xì)資料說明
- 使用51單片機(jī)進(jìn)行按鍵控制的資料說明
- 使用51單片機(jī)進(jìn)行尋址的方式詳細(xì)說明
- 單片機(jī)有哪些尋址方式?7種尋址方式的詳細(xì)資料講解
- 51單片機(jī)的一些特殊寄存器資料說明
- 51單片機(jī)匯編語言的尋址方式詳細(xì)資料說明
- 51單片機(jī)的中斷系統(tǒng)詳細(xì)資料說明
- 51單片機(jī)系列命名規(guī)則資料說明
- 51單片機(jī)教程之51單片機(jī)的串行口應(yīng)用舉例資料說明 18次下載
- MCS-51單片機(jī)結(jié)構(gòu)資料說明 4次下載
- 51單片機(jī)匯編語言教程_單片機(jī)尋址方式與指令系統(tǒng) 0次下載
- CPLD擴(kuò)展51單片機(jī)尋址范圍
- 什么是51單片機(jī)最小系統(tǒng) 2802次閱讀
- PIC系列單片機(jī)的詳細(xì)資料說明 5549次閱讀
- 單片機(jī)的結(jié)構(gòu)和原理說明 5517次閱讀
- 51單片機(jī)的最小系統(tǒng)應(yīng)用說明 8207次閱讀
- PIC單片機(jī)以及51和AVR單片機(jī)的IO口操作方法解析 3127次閱讀
- 80C51單片機(jī)實(shí)現(xiàn)專用寄存器位尋址的設(shè)計(jì)方案 3407次閱讀
- PIC單片機(jī)以及51單片機(jī)和AVR單片機(jī)的IO口操作方法介紹 2049次閱讀
- 51單片機(jī)引腳簡介 5.4w次閱讀
- 如何學(xué)習(xí)51單片機(jī) 5082次閱讀
- 探討單片機(jī)的尋址方式 8372次閱讀
- 如何對51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 基于80C51單片機(jī)位尋址編程 3504次閱讀
- 新手學(xué)習(xí)單片機(jī)的首選:51單片機(jī) 8836次閱讀
- 單片機(jī)8x8矩陣鍵盤原理說明 2.6w次閱讀
- 51單片機(jī)學(xué)習(xí)感悟與51單片機(jī)上拉電阻心得 4295次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論