指令系統(tǒng)及匯編語言程序設(shè)計(jì)_第1頁
指令系統(tǒng)及匯編語言程序設(shè)計(jì)_第2頁
指令系統(tǒng)及匯編語言程序設(shè)計(jì)_第3頁
指令系統(tǒng)及匯編語言程序設(shè)計(jì)_第4頁
指令系統(tǒng)及匯編語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2 指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)2教學(xué)目的教學(xué)目的q熟悉單片機(jī)的尋址方式熟悉單片機(jī)的尋址方式q掌握指令系統(tǒng)中的常用指令的用法掌握指令系統(tǒng)中的常用指令的用法q了解匯編語言偽指令及其用法了解匯編語言偽指令及其用法q熟悉匯編語言程序的三種基本結(jié)構(gòu)熟悉匯編語言程序的三種基本結(jié)構(gòu)北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)3本章內(nèi)容本章內(nèi)容q尋址方式尋址方式q指令系統(tǒng)指令系統(tǒng)q匯編語言指令格式匯編語言指令格式q匯編語言程序設(shè)計(jì)概述

2、匯編語言程序設(shè)計(jì)概述2.1 尋址方式尋址方式 q指令的機(jī)器代碼由操作碼和操作數(shù)組成。其中操指令的機(jī)器代碼由操作碼和操作數(shù)組成。其中操作碼規(guī)定了指令的性質(zhì)和功能,操作數(shù)說明參與操作碼規(guī)定了指令的性質(zhì)和功能,操作數(shù)說明參與操作的數(shù)據(jù)或該數(shù)據(jù)所存放的地址。作的數(shù)據(jù)或該數(shù)據(jù)所存放的地址。q AT89系列單片機(jī)指令系統(tǒng)的尋址方式有系列單片機(jī)指令系統(tǒng)的尋址方式有7種,寄種,寄存器尋址、直接尋址、立即尋址、寄存器間接尋址、存器尋址、直接尋址、立即尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址。變址尋址、相對尋址和位尋址。 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯

3、編語言程序設(shè)計(jì)5尋址方式尋址方式q寄存器尋址寄存器尋址寄存器尋址方式以指令中給出的某一寄存器的內(nèi)容作為操作數(shù)。可以實(shí)現(xiàn)寄存器尋址操作的寄存器包括寄存器組R0R7,累加器ACC,寄存器B,數(shù)據(jù)指針DPTR和進(jìn)位Cy等。q直接尋址直接尋址直接尋址方式在指令中直接給出操作數(shù)所在存儲單元的地址,該地址指出了參與運(yùn)算或傳送的數(shù)據(jù)所在的字節(jié)單元或位的地址。直接尋址方式中操作數(shù)存儲的空間有以下3種:q特殊功能寄存器SFR;q片內(nèi)RAM的低128B(00H7FH);q位地址空間。2.1 尋址方式尋址方式 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)6q立即

4、尋址立即尋址立即尋址方式在指令中直接給出參與操作的常數(shù),操作碼后面緊跟1個(gè)或2個(gè)字節(jié)的操作數(shù)(稱為立即數(shù))。立即尋址時(shí)操作數(shù)存放于程序存儲器中,不占用內(nèi)部RAM單元。在采用立即尋址的指令中立即數(shù)前面必須加上“”號標(biāo)識,可以是一個(gè)8位或16位的二進(jìn)制常數(shù),也可以用十進(jìn)制或十六進(jìn)制表示。q寄存器間接尋址寄存器間接尋址寄存器間接尋址方式以指令中指定寄存器的內(nèi)容作為地址,而該地址單元的內(nèi)容才是操作數(shù)。這是一種二次尋址方式,所以稱為寄存器間接尋址。程序執(zhí)行分兩步完成:首先根據(jù)指令得到寄存器的內(nèi)容,即操作數(shù)的地址;然后根據(jù)地址找到所需要的操作數(shù),并完成相應(yīng)的操作。尋址方式尋址方式2.1 尋址方式尋址方式

5、北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)7q變址尋址(基址寄存器變址尋址(基址寄存器+變址寄存器間接尋址)變址寄存器間接尋址) 變址尋址指令由基址寄存器和變址寄存器組成,16位寄存器DPTR(數(shù)據(jù)指針)或PC(程序計(jì)數(shù)器)作為基址寄存器,8位累加器A作為變址寄存器。q相對尋址相對尋址 相對尋址主要是針對跳轉(zhuǎn)指令而言的。對于跳轉(zhuǎn)指令,轉(zhuǎn)去的目標(biāo)指令的地址是通過正在執(zhí)行的指令地址來確定的,即以當(dāng)前程序計(jì)數(shù)器PC值為基準(zhǔn),加上指令中給定的偏移量rel所得結(jié)果而形成實(shí)際的轉(zhuǎn)移地址。q位尋址位尋址 AT89C52片內(nèi)RAM有兩個(gè)區(qū)域可以進(jìn)行位尋址

6、:一是20H2FH的16個(gè)單元共128位的位地址;二是字節(jié)地址為8的倍數(shù)的12個(gè)特殊功能寄存器,共92個(gè)位地址。 尋址方式尋址方式2.1 尋址方式尋址方式 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)8qAT89C52AT89C52單片機(jī)的尋址方式多種,總的來說有以下幾個(gè)單片機(jī)的尋址方式多種,總的來說有以下幾個(gè)原則:原則:q對程序存儲器只能采用立即尋址和變址尋址方式;q對特殊功能寄存器空間只能采用直接尋址方式,不能采用寄存器間接尋址方式;q內(nèi)部數(shù)據(jù)存儲器高128B只能采用寄存器間接尋址方式,不能采用直接尋址方式;q內(nèi)部數(shù)據(jù)存儲器低128B既

7、能采用寄存器間接尋址方式,又能采用直接尋址方式;q外部擴(kuò)展數(shù)據(jù)存儲器只能采用MOVX指令訪問。尋址方式尋址方式2.1 尋址方式尋址方式 2.2 指令系統(tǒng)指令系統(tǒng) q數(shù)據(jù)傳送指令(數(shù)據(jù)傳送指令(29條)條)q算術(shù)運(yùn)算指令(算術(shù)運(yùn)算指令(24條)條)q邏輯運(yùn)算指令(邏輯運(yùn)算指令(24條)條)q位操作類指令(位操作類指令(17條)條)q控制轉(zhuǎn)移類指令(控制轉(zhuǎn)移類指令(17條)條)北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)10q數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令操作可以在累加器A、工作寄存器R0R7、內(nèi)部數(shù)據(jù)存儲器、外部數(shù)據(jù)存儲器和程序存儲器之

8、間進(jìn)行。指令系統(tǒng)指令系統(tǒng)2.2 指令系統(tǒng)指令系統(tǒng) 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)11q數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令q以累加器A為目的操作數(shù)的指令,MOV(Move) q以寄存器Rn為目的操作數(shù)的指令 q以直接地址為目的操作數(shù)的指令 q以間接地址為目的操作數(shù)的指令q16位數(shù)據(jù)傳送指令q查表指令,MOVC(Move Code)q累加器A與片外RAM數(shù)據(jù)傳送指令,MOVX(Move External RAM) q堆棧操作指令,PUSH,POPq數(shù)據(jù)交換指令,XCH(Exchange),XCHD(Exchange Low-order Di

9、git),SWAP指令系統(tǒng)指令系統(tǒng)2.2 指令系統(tǒng)指令系統(tǒng) 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)12q數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令例2.5 共陰極數(shù)碼管對應(yīng)的顯示代碼程序。ORG0000HMOVA,30H ;PC=0000,雙字節(jié)指令MOVA,#80H ;PC=0002,雙字節(jié)指令MOVC A,A+PC ;PC=0004,雙字節(jié)指令 ;PC=0006 0RG 0086H SEGTAB: DB 3FH,06H,5BH,4FH,66H;對應(yīng)于字符0,l,2,3,4 DB 6DH,7DH,07H,7FH,67H;對應(yīng)于字符5,6,7,8,9指

10、令系統(tǒng)指令系統(tǒng)2.2 指令系統(tǒng)指令系統(tǒng) 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)13q算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令包括加、減、乘、除基本四則運(yùn)算和加1(增量)、減1(減量)運(yùn)算。除加1和減1指令外,算術(shù)運(yùn)算指令影響進(jìn)位Cy、半進(jìn)位Ac、溢出位Ov三個(gè)標(biāo)志位。q1不帶進(jìn)位的加法指令,ADDq2帶Cy進(jìn)位的加法指令A(yù)DDC和帶Cy的減法指令SUBB q3加l指令I(lǐng)NC 和減1指令DECq4十進(jìn)制調(diào)整指令,DA q5乘法指令,MUL q6除法指令,DIV 指令系統(tǒng)指令系統(tǒng)2.2 指令系統(tǒng)指令系統(tǒng) 北京航空航天大學(xué)出版社北京航空航天大學(xué)

11、出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)14q邏輯運(yùn)算指令邏輯運(yùn)算指令邏輯運(yùn)算指令包括清0,求反、移位、與、或、異或等操作。操作助記符:CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL。q1邏輯與指令,ANL q2邏輯或指令,ORL q3邏輯異或指令,XRL q4累加器清0和取反指令,CLR,CPL q5移位指令,RL(Rotate Left),RLC(Rotate Left With Carry Flag),RR(Rotate right),RRC(Rotate Right With Carry Flag) 指令系統(tǒng)指令系統(tǒng)北京航空航天大學(xué)出版社北京航空

12、航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)15q位(布爾)操作類指令位(布爾)操作類指令A(yù)T89C52有1個(gè)布爾處理機(jī),它具有一套處理位變量的指令集,它以進(jìn)位標(biāo)志Cy作為累加器C,以片內(nèi)RAM地址20H2FH單元中的128位和地址為8的倍數(shù)的SFR的位地址單元作為操作數(shù),進(jìn)行位變量的傳送、修改和邏輯操作等。q1位傳送指令,MOV q2位清0,置1,取反指令,CLR,SETB(Set Bit),CPLq3位運(yùn)算指令,ANL,ORLq4位條件轉(zhuǎn)移指令,JC,JNC ,JB,JNB,JBC 指令系統(tǒng)指令系統(tǒng)2.2 指令系統(tǒng)指令系統(tǒng) 北京航空航天大學(xué)出版社北京航空航天大學(xué)出版

13、社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)16q控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令程序在執(zhí)行過程中,有時(shí)因?yàn)椴僮鞯男枰?,不能按順序逐條執(zhí)行指令,而需要改變程序的運(yùn)行方向,完成這些操作需要利用控制轉(zhuǎn)移類指令。q1無條件轉(zhuǎn)移指令,AJMP,LJMP,SJMP,JMP q2條件轉(zhuǎn)移指令 累加器A判零轉(zhuǎn)移指令,JZ,JNZ 比較轉(zhuǎn)移指令,CJNE 減一條件轉(zhuǎn)移指令,DJNZq3子程序調(diào)用和返回指令 調(diào)用指令,ACALL 返回指令,RET,RETIq4空操作指令指令系統(tǒng)指令系統(tǒng)2.2 指令系統(tǒng)指令系統(tǒng) 2.3 匯編語言指令格式匯編語言指令格式 q匯編語言執(zhí)行指令格式匯編語言執(zhí)行指令格式q匯編偽指令匯

14、編偽指令北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)18q匯編語言執(zhí)行指令格式匯編語言執(zhí)行指令格式 標(biāo)號: 操作碼操作數(shù)1,操作數(shù)2;注釋 標(biāo)號代表程序的起始地址、程序名稱或轉(zhuǎn)移的目標(biāo)地址,由用戶定義的符號組成。操作碼與操作數(shù)應(yīng)按規(guī)定要求書寫,操作碼是指令的核心,不可缺少。操作碼和操作數(shù)之間必須用空格分隔,操作數(shù)與操作數(shù)之間必須用逗號“,”分隔。注釋是為了提高程序的可讀性對指令作的說明,注釋前應(yīng)加上分號“;”。匯編語言指令格式匯編語言指令格式2.3 匯編語言指令格式匯編語言指令格式北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編

15、語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)19q匯編偽指令匯編偽指令q1定位偽指令,ORGq2結(jié)束匯編偽指令,END q3數(shù)據(jù)說明偽指令 定義字節(jié)偽指令,DB 定義字偽指令,DW 定義存儲空間偽指令,DS q4賦值偽指令,EQUq5數(shù)據(jù)地址賦值偽指令,DATAq6位地址賦值偽指令,BIT匯編語言指令格式匯編語言指令格式2.3 匯編語言指令格式匯編語言指令格式2.4 匯編語言程序設(shè)計(jì)概述匯編語言程序設(shè)計(jì)概述 q匯編語言的特點(diǎn)匯編語言的特點(diǎn)q匯編語言程序設(shè)計(jì)的步驟匯編語言程序設(shè)計(jì)的步驟q匯編語言程序的基本結(jié)構(gòu)匯編語言程序的基本結(jié)構(gòu)北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)

16、指令系統(tǒng)及匯編語言程序設(shè)計(jì)21q匯編語言的特點(diǎn)匯編語言的特點(diǎn)q用匯編語言編寫的程序效率高,占用存儲空間小,運(yùn)行速度快;q匯編語言是面向計(jì)算機(jī)的;q匯編語言程序能夠直接管理和控制硬件設(shè)備;q匯編語言缺乏通用性,程序不易移植。匯編語言程序設(shè)計(jì)概述匯編語言程序設(shè)計(jì)概述2.4 匯編語言程序設(shè)計(jì)概匯編語言程序設(shè)計(jì)概述述北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)22q匯編語言程序設(shè)計(jì)的步驟匯編語言程序設(shè)計(jì)的步驟q建立數(shù)學(xué)模型 q確定算法q制定程序流程圖q確定數(shù)據(jù)結(jié)構(gòu)q寫出源程序q上機(jī)調(diào)試程序匯編語言程序設(shè)計(jì)概述匯編語言程序設(shè)計(jì)概述2.4 匯編語言程序

17、設(shè)計(jì)概匯編語言程序設(shè)計(jì)概述述北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)23q匯編語言程序的基本結(jié)構(gòu)匯編語言程序的基本結(jié)構(gòu)q順序結(jié)構(gòu) q分支結(jié)構(gòu) 單分支結(jié)構(gòu) 多分支結(jié)構(gòu)q循環(huán)結(jié)構(gòu)匯編語言程序設(shè)計(jì)概述匯編語言程序設(shè)計(jì)概述2.4 匯編語言程序設(shè)計(jì)概匯編語言程序設(shè)計(jì)概述述北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社2指令系統(tǒng)及匯編語言程序設(shè)計(jì)指令系統(tǒng)及匯編語言程序設(shè)計(jì)24q匯編語言程序的基本結(jié)構(gòu)匯編語言程序的基本結(jié)構(gòu)q循環(huán)結(jié)構(gòu)程序舉例例2.13 AT89C52的晶振為12MHz,設(shè)計(jì)10ms延時(shí)程序。解:12MHz晶振的機(jī)器周期為1,可用雙重循環(huán)寫出延時(shí)程序。根據(jù)指令的執(zhí)行周期計(jì)算延遲時(shí)間。 ORG0000HDEL: MOV R7,#40 ;單周期DEL1:MO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論