單片機(jī)指令系統(tǒng)的尋址方式

發(fā)布時(shí)間:2024-03-22
要正確執(zhí)行指令,就必須能得到正確的操作數(shù)和操作碼。操作碼字段在機(jī)器里的表示比較簡單,只需對每一種操作指定確定的二進(jìn)制代碼就可以了。指令的操作數(shù)字段的情況就比較復(fù)雜,操作數(shù)可能就在指令中,也有可能在寄存器或存儲器中,這此設(shè)備內(nèi)的數(shù)據(jù)要正確進(jìn)行操作就要在指令中指出其地址,尋找操作數(shù)地址的方法稱為尋址方式。51系列單片機(jī)指令系統(tǒng)的尋址方式有以下7種。
一、立即尋址
在這種尋址方式中,指令中跟在操作碼后面的一個(gè)字節(jié)就是實(shí)際操作數(shù)。在這種尋址方式中,指令中跟在操作碼后面的一個(gè)字節(jié)就是實(shí)際操作數(shù)。立即數(shù)前面必須有符號“#”。
例:mov a, #0ffh ; ffh →(a)將立即數(shù)ffh送入累加器a。
這條指令為雙字節(jié)指令,操作數(shù)ffh以指令形式存放在程序存儲器內(nèi)。
二、直接尋址
直接尋址就是在指令中包含了操作數(shù)的地址,該地址直接給出了參加運(yùn)算或傳送的數(shù)據(jù)所在的字節(jié)單元或位。直接尋址方式中操作數(shù)存儲的空間有三種。
(1)訪問內(nèi)部低128個(gè)字節(jié)單元(00h~7fh),指令中直接給出地址。
例:mov a, 70h ; 70h)→(a)把ram 70h單元中的內(nèi)容送累加器a。
(2)訪問特殊功能寄存器,只能用直接尋址方式進(jìn)行訪問。
例:mov ie, #85h ; 85h→(ie)。ie為特殊功能寄存器,其字節(jié)地址為a8h。
(3) 位地址空間的訪問,指令中以位名稱或者位地址的形式給出。
例:mov c, 00h ; 將00h單元的內(nèi)容→進(jìn)位位c。
三、寄存器尋址
寄存器尋址是指以某一個(gè)可尋址的寄存器的內(nèi)容為操作數(shù)。寄存器尋址指令中,操作數(shù)域中給出的是操作數(shù)所在的寄存器,寄存器的內(nèi)容才是本條指令的操作數(shù)。
四個(gè)寄存器組共有32個(gè)通用寄存器,但指令中使用的是當(dāng)前工作寄存器組,因此在使用寄存器尋址指令前,必須先將rs0,s1位置位,確定當(dāng)前工作寄存器組。
例:mov a, ri ;(ri)→(a)。
四、寄存器間接尋址
在這種尋址方式中,操作數(shù)所指定的寄存器中存放的不是操作數(shù)本身,而是操作數(shù)的地址。寄存器間接尋址方式把指令中寄存器的內(nèi)容作為地址,再到該地址單元取得操作數(shù)。變址尋址寄存器間接尋址用符號“@”表示。
例:mov a, @rj ;((rj))→(a)。
若r0內(nèi)容為11h,而內(nèi)部ram 11h單元中的內(nèi)容是33h,則指令mov a,@r0的功能是將33h這個(gè)數(shù)送到累加器a。
五、基址寄存器加變址寄存器間接尋址
基址加變址寄存器間接尋址以dptr或pc的內(nèi)容為基地址,然后,在這個(gè)基地址的基礎(chǔ)上加上累加器a中的地址偏移量形成真正的操作數(shù)地址。這種尋址方式常用于查表操作。
例: movc a, @a+dptr ;(dptr)+(a))→(a)。
movc a, @a+pc ;((pc)+(a))→(a)。
a中為無符號數(shù),指令功能是a的內(nèi)容和dptr或當(dāng)前pc的內(nèi)容相加得到程序存儲器的有效地址,把該存儲器單元中的內(nèi)容送到a。
六、相對尋址
相對尋址是將程序計(jì)數(shù)器pc中的當(dāng)前值(該當(dāng)前值是指執(zhí)行完這條相對轉(zhuǎn)移指令后的pc的字節(jié)地址)為基準(zhǔn),加上指令中給定的偏移量所得結(jié)果而形成實(shí)際的轉(zhuǎn)移地址。這種尋址方式主要用于轉(zhuǎn)移指令指定轉(zhuǎn)移的目標(biāo)地址。
一般將相對轉(zhuǎn)移指令操作碼所在地址稱為源地址,轉(zhuǎn)移后的地址稱為目的地址,目的地址的計(jì)算方法如下:
目的地址=源地址+相對轉(zhuǎn)移指令字節(jié)+相對偏移值
七、位尋址
位尋址是指對片內(nèi)ram的位尋址區(qū)和某些可位尋址的特殊功能寄存器進(jìn)行位操作時(shí)的尋址方式。位地址表示一個(gè)可作位尋址的單元,它或者在內(nèi)部ram中或者是一個(gè)硬件的位。
例:mov c, 20h ; 將20h單元的內(nèi)容→進(jìn)位位c 。
上一個(gè):中興手機(jī)掉水里怎么辦
下一個(gè):蘋果電腦怎樣安裝cad(蘋果電腦怎么安裝cad2017)

u盤能修好嗎(u盤可以去哪里修)
關(guān)于暫時(shí)取消ad與pads的封裝庫文件下載的通知-
烹飪油煙對人體健康的影響
茶花盆栽種植養(yǎng)護(hù)方式
紫蘇病蟲害危害及防治
巴魯夫編碼器,日本喜開理CKD全系列產(chǎn)品,CKD氣缸,CKD電磁閥,CKD氣動元件
訂購房屋定金可以退嗎
建筑企業(yè)基于工程風(fēng)險(xiǎn)管理
打開網(wǎng)址顯示-虛擬主機(jī)/數(shù)據(jù)庫問題
臺式電腦截屏鍵,電腦截圖按什么鍵
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos