日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 80C51單片機指令系統(tǒng)的7種尋址方式

80C51單片機指令系統(tǒng)的7種尋址方式

關(guān)鍵字:80C51單片機 作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:35
尋址方式就是尋找操作數(shù)或指令地址的方式。尋址方式包含兩方面的內(nèi)容:一是操作數(shù)的尋址,二是指令地址的尋址(如轉(zhuǎn)移指令、調(diào)用指令)。尋址方式是計算機性能的具體體現(xiàn),也是編寫匯編語言程序的基礎(chǔ),必須非常熟悉并靈活運用。
對于兩操作數(shù)指令,源操作數(shù)有尋址方式,目的操作數(shù)也有尋址方式。若不特別聲明,后面提到的尋址方式均指源操作數(shù)的尋址方式。
80C51單片機指令系統(tǒng)共有7種尋址方式,包括:立即尋址、寄存器尋址、直接尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址。現(xiàn)以7條指令為例說明這7種尋址方式。


(1)立即尋址:將操作數(shù)直接寫在指令中。
如指令①: MOV  A,#3AH  執(zhí)行的操作是將立即數(shù)3AH送到累加器A中,因為指令中有立即數(shù)3AH,所以稱此尋址方式為立即尋址。注意,立即數(shù)前面必須加“#”號,以區(qū)別立即數(shù)和直接尋址。該指令的執(zhí)行過程如圖1所示。


圖1 立即數(shù)尋址示意圖
(2)寄存器尋址:是指將指令操作數(shù)存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。
如指令②: MOV  A,R0    ;(A)←(R0)
該指令將寄存器R0中的數(shù)送入累加器A中,因為指令源操作數(shù)為寄存器R0,所以稱此尋址方式為寄存器尋址。
如果程序狀態(tài)寄存器PSW的RS1RS0=00(選中第0組工作寄存器,對應(yīng)地址為(00H~07H),設(shè)RAM區(qū)00H的內(nèi)容為20H,則執(zhí)行MOV A,R0指令后,累加器A中的內(nèi)容變?yōu)?0H。該指令執(zhí)行過程如圖2所示。


圖2 寄存器尋址示意圖
(3)直接尋址 :是指把存放操作數(shù)的內(nèi)存單元的地址直接寫在指令中。在80C51單片機中可以直接尋址的存儲器主要有內(nèi)部RAM區(qū)和特殊功能寄存器SFR區(qū)。
 如指令③:MOV  A,30H    ;(A)←(30H)
該指令將地址為30H的存儲單元的內(nèi)容送入累加器A,因為指令源操作數(shù)為地址直接給出的存儲單元,故稱此尋址方式為直接尋址。若(30H)=3AH,指令③執(zhí)行后,(A)=3AH,該指令的執(zhí)行過程如圖3所示。 


                                                     圖3 直接尋址示意圖
(4)寄存器間接尋址:將存放操作數(shù)的存儲單元的地址放在寄存器中,指令中只給出該寄存器。執(zhí)行指令時,首先根據(jù)寄存器的內(nèi)容,找到所需要的操作數(shù)地址,再由該地址找到操作數(shù)并完成相應(yīng)操作。在80C51指令系統(tǒng)中,用于寄存器間接尋址的寄存器有R0、R1和DPTR,稱為寄存器間接尋址寄存器。
注意:間接尋址寄存器前面必須加上符號“@”。
如指令④:MOV  A,@R0  ;(A)←((R0))
該指令將以R0中內(nèi)容為地址的存儲單元的內(nèi)容送入累加器A中,因為指令操作數(shù)是存儲單元,其地址由寄存器R0間接給出,所以稱此尋址方式為寄存器間接尋址。
設(shè)R0=3AH,內(nèi)部RAM 3AH中的值是65H,則指令MOV  A,@R0的執(zhí)行結(jié)果是累加器A的值為65H,該指令的執(zhí)行過程如圖4所示。


圖4 寄存器間接尋址示意圖
(5)變址尋址 :是指將基址寄存器與變址寄存器的內(nèi)容相加,結(jié)果作為操作數(shù)的地址。DPTR或PC是基址寄存器,累加器A是變址寄存器。這種尋址方式稱為變址尋址。該尋址方式主要用于查表操作。
當(dāng)執(zhí)行指令⑤時,設(shè)(A)=50H ,(DPTR)=2007H,(2057H)=60H ,指令⑤執(zhí)行后MOVC A,@A+DPTR ;(A)←((A)+(DPTR))=(50H+2007H)=(2057H)=60H。
該指令將DPTR中的基地址2007H與A中的偏移地址50H相加,形成實際地址2057H,再將地址為2057H的存儲單元中的內(nèi)容60H送入累加器A中。顯然這種尋址方式稱為變址尋址。該指令執(zhí)行過程如圖5所示。


圖5 變址尋址示意圖
(6)相對尋址 :是指程序計數(shù)器PC的當(dāng)前內(nèi)容與指令中的操作數(shù)相加,其結(jié)果作為跳轉(zhuǎn)指令的轉(zhuǎn)移地址(也稱目的地址)。這種尋址方式稱為相對尋址。該類尋址方式主要用于跳轉(zhuǎn)指令。
如指令⑥:SJMP rel    ;(PC)←(PC)+rel
當(dāng)執(zhí)行指令⑥時,設(shè)當(dāng)前(PC)=2009H,而相對偏移量rel=02H,則執(zhí)行該指令后,(PC)=2009H+02H=200BH,即程序由地址為2009H處跳轉(zhuǎn)到200BH處執(zhí)行,其跳轉(zhuǎn)的距離為相對偏移量rel=02H。由于指令中的操作數(shù)為相對偏移量rel ,所以稱這種尋址方式為相對尋址。該指令的執(zhí)行過程如圖6所示。


圖6 相對尋址示意圖
(7)位尋址 :指令中操作數(shù)為8位二進制數(shù)某一位,稱為位尋址。80C51單片機中,操作數(shù)不僅可以按字節(jié)為單位進行操作,也可以按位進行操作。當(dāng)我們把某一位作為操作數(shù)時,這個操作數(shù)的地址稱為位地址。
位尋址區(qū)包括專門安排在內(nèi)部RAM中的兩個區(qū)域:一是內(nèi)部RAM的位尋址區(qū),地址范圍是20H~2FH,共16個RAM單元,位地址為00H~7FH;二是特殊功能寄存器SFR中有11個寄存器可以位尋址。參見位地址的定義。
例如:SETB  ACC.0  ;(ACC.0)←1  該指令將累加器的最低位ACC.0置1,由于指令中的操作數(shù)為一位二進數(shù),故稱此尋址方式為位尋址。該指令的執(zhí)行過程如圖7所示。 


  圖7 位尋址示意圖
由尋址方式的討論可知,操作數(shù)按類型可分為:立即數(shù)、寄存器、存儲單元、位操作數(shù)、相對偏移量。而存儲單元地址又可有直接尋址,寄存器間接尋址,變址尋址三種。
各種尋址方式對應(yīng)操作數(shù)的指令符號規(guī)定如下。
(1)#data:表示8位立即數(shù),如#3AH。
(2)#data16:表示16位立即數(shù),即0000H~FFFFH。
(2)Rn:表示寄存器R0~R7。
(3)direct:表示片內(nèi)存儲單元的直接地址, 如30H。
(4)addr16,addr11:表示指令中的16位或11位轉(zhuǎn)移地址。
(5)rel:表示相對偏移量,如 02H。
(6)bit:表示位地址,如ACC.0。
(7)(   ):表示存儲單元的內(nèi)容,如(30H)=40H。
(8)((  )):表示間接尋址的存儲單元內(nèi)容,((R0))=(7FH)=50H。

編輯:admin  最后修改時間:2018-06-27

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

泸水县| 梁平县| 香港 | 开封市| 东乡县| 宜城市| 蚌埠市| 景德镇市| 武胜县| 德格县| 高清| 华坪县| 城口县| 广饶县| 阳泉市| 安龙县| 铜陵市| 日喀则市| 乐安县| 瑞丽市| 林西县| 宿州市| 石屏县| 布尔津县| 都昌县| 芦溪县| 罗江县| 麦盖提县| 郎溪县| 淮北市| 甘南县| 平果县| 井研县| 万州区| 吉首市| 莲花县| 灌云县| 新竹市| 巧家县| 辰溪县| 嘉定区|