第四章:匯編語言程序設(shè)計的知識_第1頁
第四章:匯編語言程序設(shè)計的知識_第2頁
第四章:匯編語言程序設(shè)計的知識_第3頁
第四章:匯編語言程序設(shè)計的知識_第4頁
第四章:匯編語言程序設(shè)計的知識_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機應(yīng)用技術(shù)全校公共選修課辦公室:計A315-1答疑地點:計A315-1E-mail:第4章

匯編語言程序設(shè)計

4.1匯編語言基本概念4.2匯編語言程序設(shè)計4.1匯編語言基本概念4.1.1程序設(shè)計語言4.1.2匯編語言的語句結(jié)構(gòu)4.1.3偽指令返回本章首頁4.1.1程序設(shè)計語言 按照語言的結(jié)構(gòu)及其功能可以分為三種:1.機器語言:機器語言是用二進制代碼0和1表示指令和數(shù)據(jù)的最原始的程序設(shè)計語言。2.匯編語言:在匯編語言中,指令用助記符表示,地址、操作數(shù)可用標(biāo)號、符號地址及字符等形式來描述。3.高級語言:高級語言是接近于人的自然語言,面向過程而獨立于機器的通用語言。返回本節(jié)4.1.2匯編語言的語句結(jié)構(gòu) 1.匯編語言的指令類型

MCS-51單片機匯編語言,包含兩類不同性質(zhì)的指令。(1)基本指令:即指令系統(tǒng)中的指令。它們都是機器能夠執(zhí)行的指令,每一條指令都有對應(yīng)的機器碼。(2)偽指令(指示性指令):匯編時不生成機器指令,僅用于控制匯編的指令。是目標(biāo)機不執(zhí)行的指令,無機器碼。2.匯編語言的語句格式返回本節(jié)匯編語言源程序是由匯編語句(即指令)組成的。匯編語言的每一條語句一般由四部分組成。[標(biāo)號:]

助記符 [操作數(shù)]

[;注釋]START:MOVA,30H;A←(30H)標(biāo)號:由1~8個字符組成的語句地址符號,必須以字母開頭,其余字符可使用字母或數(shù)字。標(biāo)號既可代表本條指令,也可代表本條指令操作碼在ROM中存放的第一個存儲單元地址。標(biāo)號必須以冒號“:”結(jié)束。助記符:又稱操作符,是指令的必不可少部分,它使用接近于人類自然語言的形式幫助人們記住指令的功能,如MOV(傳送)、ORL(或邏輯運算)等。操作數(shù):參加操作的數(shù)據(jù)或數(shù)據(jù)所在存儲單元的地址。操作數(shù)允許沒有、1個、2個或3個,按指令的操作功能而設(shè)置。當(dāng)有多個操作數(shù)時,每個操作數(shù)之間用逗號“,”隔開。若有兩個操作數(shù),則目的操作數(shù)在前,源操作數(shù)在后。操作結(jié)果存放的存儲單元稱為目的操作數(shù),操作數(shù)的來源稱為源操作數(shù)。目的操作數(shù)與助記符之間用空格隔開。2.匯編語言的語句格式注解:用分號“;”開頭,為本條指令的操作功能說明。按照有無操作數(shù)劃分,指令可分成兩大類:無操作數(shù)指令和有操作數(shù)指令。前一類指令由助記符組成;后一類指令由助記符和操作數(shù)組成。4.1.3偽指令 1.ORG:匯編起始地址用來說明以下程序段在存儲器中存放的起始地址。例如程序: ORG 1000H START: MOV A,#20H MOV B,#30H ┇2.EQU:賦值 給變量標(biāo)號賦予一個確定的數(shù)值。為匯編程序提供匯編說明的指令叫做偽指令。偽指令無機器代碼,不能被執(zhí)行。一個完整的匯編程序僅有可執(zhí)行指令是不完善的,必須要有偽指令才能使程序完整。匯編過程離不開偽指令提供的信息。匯編程序中用到的偽指令如表4-1所示。4.1.3偽指令 分類偽指令功能程序開始、結(jié)束ORGENDSEGMENT表示程序的起始位置表示源程序匯編結(jié)束表示所生成的段再定為類型數(shù)據(jù)定義DBDWDSDBIT定義字節(jié)數(shù)據(jù)定義字數(shù)據(jù)以字節(jié)為單位預(yù)留空間定義位地址數(shù)據(jù)符號定義EQUBITSETDATA給符號名賦值給符號名賦位地址給符號名賦值且可以重新定義給制定符號賦與內(nèi)部地址表4-1單片機偽指令這些偽指令中,有7條是常用的,現(xiàn)介紹如下。1.程序起始地址偽指令格式:ORG16位地址功能:ORG后面的16位地址就是源程序第1條指令的存放地址,位于程序ROM中。

[例4.1]

ORG0120HSTART:MOVA,#80H

表示目標(biāo)程序從ROM的0120H存儲單元開始存放,START標(biāo)號地址就是0120H。2.程序結(jié)束偽指令格式:END或END標(biāo)號功能:表示匯編結(jié)束,位于源程序結(jié)尾處。子程序后面的END不用加標(biāo)號;主程序后面的END需要加標(biāo)號,該標(biāo)號只能是ORG后面執(zhí)行指令的標(biāo)號,即主程序第一條執(zhí)行指令的標(biāo)號或符號地址?!纠?.2】主程序中END的位置。

ORG0120HSTART:MOVA,#80H

SJMP$;本指令是執(zhí)行指令,用于動態(tài)停 機

ENDSTART ;本指令是偽指令,不執(zhí)行,表示 匯編到此結(jié)束3.字節(jié)定義偽指令格式:標(biāo)號:DB

字節(jié)數(shù)據(jù)、字符或表達式功能:在ROM中開辟數(shù)據(jù)存儲區(qū),以字節(jié)為單位依次存放著DB后面的數(shù)據(jù)。這些數(shù)據(jù)如果是字符(必須用單引號括起),將以ASCII碼形式出現(xiàn);如果是表達式,則存放著表達式的值。數(shù)據(jù)區(qū)的起始地址可以用標(biāo)號代替?!纠?.3】程序如下:偽指令YYY:DB01H,04H,09H,‘A’就是從0124H單元開始創(chuàng)建一個數(shù)據(jù)區(qū),依次存放的內(nèi)容是 (0124H)=01H, (0125H)=04H, (0126H)=09H, (0127H)=41H,其中41H是字符A的ASCII碼,這個數(shù)據(jù)區(qū)的首址0124H可以使用標(biāo)號YYY代替。4.字定義偽指令格式:標(biāo)號:DW

字數(shù)據(jù)、字符或表達式功能:在程序ROM中開辟以字為單位存放的數(shù)據(jù)存儲區(qū),一個字占兩個單元,依次存放。例4.4:偽指令 ABC:DWABCDH,EFH,'AB'要求匯編在程序ROM中從ABC單元開始創(chuàng)建一個數(shù)據(jù)區(qū),以字為單位存放數(shù)據(jù),從ABC單元依次存放ABH、CDH、00H、EFH、41H、42H。5.存儲區(qū)定義偽指令格式:標(biāo)號:DS數(shù)值功能:從標(biāo)號地址開始預(yù)留幾個字節(jié)的存儲單元,供程序備用。DS后面的數(shù)值就是預(yù)留的個數(shù)。該指令中也可以不要標(biāo)號?!纠?.5】ORG300AH

DS5 ;從300AH單元開始,空出 5個存儲單元給程序使用6.符號定義偽指令格式:符號EQU數(shù)值或數(shù)值表達式功能:匯編識別結(jié)果,把數(shù)值或數(shù)值表達式的值賦給符號,在下面的程序中若出現(xiàn)符號,它的大小就是所賦值?!纠?.6】

XEQU30H ;X=30H

MOVA,X ;結(jié)果A=30H7.位符號定義偽指令格式:符號BIT位地址功能:將位地址賦給符號,該符號只要出現(xiàn)就代表位操作地址。【例4.7】

BINKOUBITP1.0 ;將位地址P1.0賦給 符號BINKOU

CLR??BINKOU ;P1.0清零4.2匯編語言程序設(shè)計4.2.1匯編語方程序設(shè)計步驟4.2.2順序程序4.2.3分支程序4.2.4循環(huán)程序4.2.5子程序4.2.6位操作程序 返回本章首頁4.2.1匯編語方程序設(shè)計步驟1.分析問題2.確定算法3.設(shè)計程序流程圖4.分配內(nèi)存單元5.編寫匯編語言源程序6.調(diào)試程序返回本節(jié)匯編語言程序的基本結(jié)構(gòu)有3種:順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)。4.2.2順序程序 順序程序是一種最簡單,最基本的程序。特點:程序按編寫的順序依次往 下執(zhí)行每一條指令,直到 最后一條?!纠?.2.1】將30H單元內(nèi)的兩位BCD碼拆開并轉(zhuǎn)換成ASCII碼,存入RAM兩個單元中。程序流程如圖所示。參考程序如下:結(jié)束取數(shù)據(jù)低4位轉(zhuǎn)換成ASCII碼存ASCII碼取數(shù)據(jù)高4位轉(zhuǎn)換成ASCII碼存ASCII碼開始

ORG 2000HMOV A,30H ;取值A(chǔ)NL A,#0FH ;取低4位ADD A,#30H ;轉(zhuǎn)換成ASCII碼MOV 32H,A ;保存結(jié)果MOVA,30H ;取值SWAP A ;高4位與低4位互換ANL A,#0FH ;取低4位(原來的高4位)ADD A,#30H ;轉(zhuǎn)換成ASCII碼MOV31H,A ;保存結(jié)果SJMP $END【例4.2.1】將30H單元內(nèi)的兩位BCD碼拆開并轉(zhuǎn)換成ASCII碼,存入RAM兩個單元中。參考程序如下:【例4.2.2】設(shè)X、Y兩個小于10的整數(shù)分別存于片內(nèi)30H、31H單元,試求兩數(shù)的平方和并將結(jié)果存于32H單元。解:兩數(shù)均小于10,故兩數(shù)的平方和小于100,可利用乘法指令求平方。程序流程如圖所示。參考程序如下:結(jié)束取數(shù)據(jù)X求X2暫存X2取數(shù)據(jù)Y求Y2求X2+Y2開始保存平方和 ORG 2000HMOV A,30H ;取30H單元數(shù)據(jù)MOV B,A ;將X送入B寄存器MUL AB ;求X2,結(jié)果在累加器中MOV R1,A ;將結(jié)果暫存于R1寄存器中MOVA,31H ;取31H單元數(shù)據(jù)MOV B,A ;將Y送入B寄存器MUL AB ;求Y2,結(jié)果在累加器中ADD A,R1 ;求X2+Y2MOV 32H,A ;保存數(shù)據(jù)SJMP $ ;暫停END【例4.2.2】試求30H、31H單元兩數(shù)的平方和并將結(jié)果存于32H單元。4.2.3分支程序 1.分支程序的基本形式

分支程序有三種基本形式,如圖4-3所示。分支程序的設(shè)計要點如下: (1)先建立可供條件轉(zhuǎn)移指令測試的條件。 (2)選用合適的條件轉(zhuǎn)移指令。 (3)在轉(zhuǎn)移的目的地址處設(shè)定標(biāo)號。程序在執(zhí)行過程中,要根據(jù)測試條件決定程序的走向,這種程序稱為分支結(jié)構(gòu)程序。當(dāng)程序從一條支路往下繼續(xù)執(zhí)行時,其它分支支路上的指令不再被執(zhí)行。分支程序中必須要有控制轉(zhuǎn)移類指令,測試結(jié)果不同,程序的走向不同。條件滿足?AYN(a)條件滿足?ABNY(b)(c)A0A1AnK=0K=1…K=nK=?……圖4-3分支程序結(jié)構(gòu)流程圖2.雙向分支程序設(shè)計舉例【例4.2.3】設(shè)X存在30H單元中,根據(jù)下式 X+2 X>0Y= 100 X=0 求出Y值,將Y值存入31H單元。∣X∣X<0解:根據(jù)數(shù)據(jù)的符號位判別該數(shù)的正負,若最高位為0,再判別該數(shù)是否為0。程序流程如圖4-4所示。 A為負數(shù)?取數(shù),A←(30H)開始結(jié)束A=0?YNNA←|X|A←64HA←X+2存數(shù),(31H)←A(30H)圖4-4例4.2.3程序流程圖參考程序如下: ORG 1000H MOV A,30H ;取數(shù) JB ACC.7,NEG ;負數(shù),轉(zhuǎn)NEG JZ ZER0 ;為零,轉(zhuǎn)ZER0 ADD A,#02H ;為正數(shù),求X+2 AJMPSAVE ;轉(zhuǎn)到SAVE,保存數(shù)據(jù)ZER0:MOV A,#64H ;數(shù)據(jù)為零,Y=100 AJMPSAVE ;轉(zhuǎn)到SAVE,保存數(shù)據(jù)NEG:DEC A ; CPL A ;求∣X∣SAVE:MOV 31H,A ;保存數(shù)據(jù) SJMP $ ;暫停3.多向分支程序設(shè)計舉例多路分支程序的特點是根據(jù)不同輸入條件或運算結(jié)果,轉(zhuǎn)去執(zhí)行不同的處理程序。多路分支程序通常使用間接轉(zhuǎn)移指令JMP@A+DPTR實現(xiàn)。具體操作可以通過查轉(zhuǎn)移地址表或查轉(zhuǎn)移指令表完成。使用轉(zhuǎn)移地址表時,應(yīng)事先將轉(zhuǎn)移地址排成表格駐進存儲器,表格的內(nèi)容依次作為轉(zhuǎn)移目標(biāo)的地址。使用轉(zhuǎn)移指令表時,同樣需事先將不同程序的轉(zhuǎn)移指令列成表格,查表時查到哪個程序的轉(zhuǎn)移指令,就執(zhí)行哪個程序。3.多向分支程序設(shè)計舉例【例4.2.4】

根據(jù)R0的值轉(zhuǎn)向7個分支程序。 R0<10,轉(zhuǎn)向SUB0; R0<20,轉(zhuǎn)向SUB1;

R0<60,轉(zhuǎn)向SUB5; R0=60,轉(zhuǎn)向SUB6;解:利用JMP@A+DPTR指令直接給PC賦值,使程序?qū)崿F(xiàn)轉(zhuǎn)移。程序流程如圖4-5所示。K=?轉(zhuǎn)SUB0轉(zhuǎn)SUB1轉(zhuǎn)SUB6K=0K=1……K=6開始圖4-5多向分支程序流程圖返回本節(jié)參考程序如下: ORG2000H MOVDPTR,#TAB;轉(zhuǎn)移指令表首地址 MOVA,R0 ;取數(shù) MOVB,#10 …… DIV AB ;A10,商在A中 CLR C RLCA ;A←2A JMP@A+DPTR ;PC←A+DPTRTAB: AJMPSUB0 ;轉(zhuǎn)移指令表 AJMPSUB1

…… AJMPSUB5 AJMPSUB64.2.4循環(huán)程序 有一部分指令需要重復(fù)執(zhí)行的程序,稱為循環(huán)程序。循環(huán)程序的優(yōu)點是程序簡練,且占用較少的程序存儲空間,設(shè)計程序的時間大為縮短,但程序執(zhí)行的時間不會減少。設(shè)計循環(huán)程序的主要工作是確定循環(huán)體(重復(fù)執(zhí)行的那部分指令)和設(shè)置循環(huán)條件。分析一個循環(huán)程序,一般由4個部分組成:(1)

初始化部分,這是為循環(huán)所做的準(zhǔn)備,如設(shè)置循環(huán)次數(shù),設(shè)置地址指針等。(2)

循環(huán)體部分,這是為了解決題目要求而設(shè)計的重復(fù)執(zhí)行指令。(3)

控制循環(huán)修改部分,這是為了下一次執(zhí)行循環(huán)體所做的準(zhǔn)備,例如循環(huán)次數(shù)減1,地址指針加1等。(4)

循環(huán)判斷部分,用于判斷是進行循環(huán)還是退出循環(huán)。循環(huán)程序在安排上既可以先循環(huán)后判斷,也可以先判斷后循環(huán)。4.2.4循環(huán)程序 1.循環(huán)程序的結(jié)構(gòu)(如圖4-6所示)☆循環(huán)程序按結(jié)構(gòu)形式,有單重循環(huán)與多重循環(huán)?!钤诙嘀匮h(huán)中,只允許外重循環(huán)嵌套內(nèi)重循環(huán)?!畈辉试S循環(huán)相互交叉,也不允許從循環(huán)程序的外部跳入循環(huán)程序的內(nèi)部(如圖4-7所示)。

進入循環(huán)體只能從循環(huán)體的第一條指令進入,離開循環(huán)體既可以從循環(huán)體的最后一條指令退出,也可以從循環(huán)體中間跳出,顯然只需在循環(huán)體內(nèi)設(shè)置一條條件轉(zhuǎn)移指令便可跳出。(a)當(dāng)型循環(huán)結(jié)構(gòu)(b)直到型循環(huán)結(jié)構(gòu)循環(huán)結(jié)束?循環(huán)體YN初始化修改循環(huán)參數(shù)結(jié)束部分開始結(jié)束循環(huán)結(jié)束?循環(huán)體Y初始化修改循環(huán)參數(shù)結(jié)束部分開始N結(jié)束圖4-6循環(huán)結(jié)構(gòu)程序流程圖外循環(huán)中循環(huán)內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)內(nèi)循環(huán)(a)嵌套正確(b)嵌套正確(c)交叉不正確圖4-7多重循環(huán)示意圖4.2.4循環(huán)程序 2.循環(huán)程序設(shè)計舉例4.2.4循環(huán)程序 【例4.2.5】有一數(shù)據(jù)塊從片內(nèi)RAM的30H單元開始存入,設(shè)數(shù)據(jù)塊長度為10個單元。根據(jù)下式: X+2 X>0Y=100 X=0求出Y值,并將Y值放回原處。∣X∣X<0解:設(shè)置一個計數(shù)器控制循環(huán)次數(shù),每處理完一個數(shù)據(jù),計數(shù)器減1。程序流程如圖4-8所示。A=0?YYNNYNA為負數(shù)?取數(shù),A←((R1))開始結(jié)束A←∣X∣A←64HA←X+2存數(shù),((R1))←A(30H)設(shè)置地址指針R1、計數(shù)器R0初值R1←R1+1;R0←R0-1R0=0?圖4-8例4.5的程序流程圖返回本節(jié)4.2.4循環(huán)程序 參考源程序如下: ORG 2000H MOV R0,#10 MOV R1,#30HSTART: MOV A,@R1 ;取數(shù) JBACC.7,NEG;若為負數(shù),轉(zhuǎn) NEG JZ ZER0 ;若為零,轉(zhuǎn)ZER0 ADD A,#02H ;若為正數(shù),求X+2 AJMPSAVE ;轉(zhuǎn)到SAVE,保存數(shù)據(jù)ZER0: MOV A,#64H ;數(shù)據(jù)為零,Y=1004.2.4循環(huán)程序 AJMPSAVE;轉(zhuǎn)到SAVE,保存數(shù)據(jù)NEG:DEC A CPL A ;求∣X∣SAVE:MOV@R1,A ;保存數(shù)據(jù) INCR1 ;地址指針指向下一個地址 DJNZR0,START;數(shù)據(jù)未處理完,繼 ;續(xù)處理 SJMP $ ;暫停4.2.5子程序 能夠獨立完成一段功能的小程序,稱為子程序,例如完成兩個字節(jié)相加、數(shù)制轉(zhuǎn)換、求補碼等等。子程序編好以后,存放在ROM的某個地方,當(dāng)主程序需要時,就可以調(diào)用它。有了子程序,能夠使主程序更為簡練、明朗。子程序在設(shè)計時,除了一般程序設(shè)計的要求外,還有結(jié)合自身的一些注意事項。子程序中必然要用到寄存器和存儲單元,如果這些寄存器或存儲單元在主程序中已經(jīng)在使用,那么在調(diào)用子程序之前,必須首先把它們存放的內(nèi)容推入堆棧中保護起來。

1.子程序概念4.2.5子程序 入棧操作通常在子程序一開始進行,因此,子程序一開始多為入棧指令。當(dāng)子程序執(zhí)行完畢返回主程序時,理應(yīng)要把入棧的內(nèi)容彈出到相應(yīng)的寄存器或存儲單元中,才不致于影響主程序的執(zhí)行。出??梢栽诜祷刂鞒绦蚯斑M行。

1.子程序概念所謂調(diào)用子程序,暫時中斷主程序的執(zhí)行,而轉(zhuǎn)到子程序的入口地址去執(zhí)行子程序。如下圖所示。RETLCALLSUB4.2.5子程序

1.子程序概念調(diào)用子程序應(yīng)注意:(1)子程序占用的存儲單元和寄存器。(2)參數(shù)的傳遞。(3)子程序經(jīng)過調(diào)用后得到的數(shù)據(jù)來完成程序之間的參數(shù)傳遞。

(4)嵌套調(diào)用與遞歸調(diào)用。如下圖所示。LCALLARETRETLCALLB4.2.5子程序

1.子程序概念子程序從主程序接收到的已知條件稱為子程序的入口參數(shù)。子程序的運算結(jié)果稱為出口參數(shù)。在調(diào)用子程序之前,主程序必須把入口參數(shù)設(shè)置恰當(dāng),滿足子程序的要求。子程序也要把出口參數(shù)設(shè)置恰當(dāng),才能讓主程序享用。入、出口參數(shù)在主、子程序之間傳遞時,要采取雙方均認可并都能接受的方式。實現(xiàn)參數(shù)傳遞有多種方法,常用的有用累加器、用工作寄存器、用堆棧等幾種傳遞參數(shù)方法,各種不同的傳遞參數(shù)方法有各自不同的優(yōu)點。2.子程序設(shè)計舉例4.2.5子程序 【例4.2.6】用工作寄存器傳遞參數(shù)。兩個64位無符號數(shù)相加。設(shè)兩數(shù)分別放在20H和30H開始的單元中,各占8個字節(jié),相加的和放在從20H開始的單元中。;對主程序的要求:調(diào)用前將工作寄存器的內(nèi)容入?;驎捍嬗诩拇嫫骰虼鎯卧?。調(diào)用后直接從工作寄存器獲取子程序結(jié)果;調(diào)用子程序標(biāo)號:TWOADD;入口參數(shù):兩數(shù)分別放在20H和30H開始的單 元中,各占8個字節(jié),;出口參數(shù):20H開始的8個單元中是相加的和TWOADD:LOOP:LOOP1:ORGPUSHPUSHPUSHMOVMOVMOVCLRINCINCMOVADDCMOV0120HR0R1R2R0,#1FHR1,#2FHR2,#08HCR0R1A,@R0A,@R1@R0ALOOP1:INCINCMOVADDCMOVDJNZPOPPOPPOPRETR0R1A,@R0A,@R1@R0AR2,LOOP1R2R1R04.2.6位操作程序 【例4.2.7】編寫一程序,實現(xiàn)圖中的邏輯運算電路。其中P3.1、P1.1、P1.0分別是單片機端口線上的信息,RS0、RS1是PSW寄存器中的兩個標(biāo)志位,30H、31H是兩個位地址,運算結(jié)果由P1.0輸出。使用位操作指令的程序統(tǒng)稱為位操作程序。這一類程序尤其適合于各種復(fù)雜的邏輯運算。P3.1P1.130H31HRS1RS0&≥1&&P1.04.2.6位操作程序 【例4.2.7】程序如下: ORG 0000HMOV C,P3.1ANL C,P1.1CPL CMOV20H,C ;暫存數(shù)據(jù)MOVC,30HORL C,31HANL C,RS1ANL C,20HANL C,RS0MOV P1.0,C ;輸出結(jié)果SJMP $習(xí)題與思考題2.1MCS-51單片機的1條可執(zhí)行指令由哪幾部分組成?各部分分別起什么作用?2.2單片機指令長度有多少字節(jié)?2.3查表寫出下列指令的機器碼字節(jié)數(shù)和時鐘周期數(shù)。2.4寫出下列指令的機器碼。

(1)ANLC,/34H(2)RET(3)MOVR4,A(4)PUSH45H(5)DEC@R(6)SUBBA,R5(1)ADDA,#FBH(2)ORL45H,A(3)CPLA(4)DIVAB(5)INC@R0(6)POP68H2.5設(shè)單片機晶振時鐘頻率為12MHz,寫出下列指令的執(zhí)行時間。2.6寫出下列指令源操作數(shù)和目的操作數(shù)的尋址方式。(1)RRA(2)XCHA,40H(3)JBC23H,NEXT(4)MOVR6,A(5)NOP(6)RETI(1)ORLC,45H(2)ORLA,45H(3)MOVA,45H(4)ADDCA,45H(5)XRL45H,A(6)ORL45H,A2.7判斷下列MCS-51單片機指令是否正確。ADDA,R7ADDR7,ASUBA,R7SUBBA,R7INC

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論