




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一、MCS-51單片機(jī)匯編語言的偽指令偽指令又稱匯編程序控制譯碼指令,屬說明性匯編指令?!皞巍弊煮w現(xiàn)在匯編時不產(chǎn)生機(jī)器指令代碼,不影響程序的執(zhí)行,僅產(chǎn)生供匯編時用的某些命令,在匯編時執(zhí)行某些特殊操作。MCS-51單片機(jī)匯編語言程序設(shè)計中,常用的偽指令(七條):ORG—定位偽指令END—結(jié)束匯編偽指令EQU—賦值偽指令DB—定義字節(jié)指令DW—定義數(shù)據(jù)字指令DS—定義存儲區(qū)指令BIT—位定義指令2-3匯編語言程序設(shè)計方法(一)久糾藩志衷菩訓(xùn)浮筆諒描克痊瀉梆至還道陋拉拌源曼娛溺頓澡促昨艇燴棘江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)一、MCS-51單片機(jī)匯編語言的偽指令偽指令又稱匯編程序控制11、起始地址偽指令ORG
ORGaddr16用于規(guī)定目標(biāo)程序段或數(shù)據(jù)塊的起始地址,設(shè)置在程序開始處。例:Org0000hljmpmainorg0100hmain:…….2、匯編結(jié)束偽指令END告訴匯編程序,對源程序的匯編到此結(jié)束。一個程序中只出現(xiàn)一次,在程序的最末尾。例:…………end3、賦值偽指令EQU 告訴匯編程序,將匯編語句操作數(shù)的值賦予本語句的標(biāo)號。格式:標(biāo)號名稱EQU數(shù)值或匯編符號“標(biāo)號名稱”在源程序中可以作數(shù)值使用,也可以作數(shù)據(jù)地址、位地址使用。先定義后使用,放在程序開頭。例:led_lampequp1.0counterequ100display_addrequ2000h
………….movr0,#countermovdptr,#display_addrmovc,led_lamp程序最末尾指令ljmpmain存放于0000H開始的單元隴酣棋喻姜餐霧搓現(xiàn)然淖救矯茫轅創(chuàng)述得催覆扶擇做命芹晰炕遏損痛候妝江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)1、起始地址偽指令ORGOR24.定義字節(jié)數(shù)據(jù)偽指令DB
格式:[標(biāo)號:]DB字節(jié)數(shù)據(jù)表 功能:字節(jié)數(shù)據(jù)表可以是多個字節(jié)數(shù)據(jù)、字符串或表達(dá)式,它表示將字節(jié)數(shù)據(jù)表中的數(shù)據(jù)從左到右依次存放在指定地址單元。 例如:ORG1000H TAB:DB2BH,0A0H,‘A’,2*4; 表示從1000H單元開始的地方存放數(shù)據(jù)2BH,0A0H,41H(字母A的ASCII碼),08H5.定義字?jǐn)?shù)據(jù)偽指令DW 格式:[標(biāo)號:]DW字?jǐn)?shù)據(jù)表 功能:與DB類似,但DW定義的數(shù)據(jù)項(xiàng)為字,包括兩個字節(jié),存放時高位在前,低位在后。 例如:ORG1000H DATA:DW324AH,3CH; 表示從1000H單元開始的地方存放數(shù)據(jù)32H,4AH;00H,3CH(3CH以字的形式表示為003CH)6.定義空間偽指令DS 格式:[標(biāo)號:]DS表達(dá)式 功能:從指定的地址開始,保留多少個存儲單元作為備用的空間。如:ORG1000HBUF:DS50;TAB:DB22H;22H存放在1032H單元。表示從1000H開始的地方預(yù)留50個(1000H~1031H)存儲字節(jié)空間。7.數(shù)據(jù)地址賦值偽指令XDATA
格式:符號名XDATA表達(dá)式
功能:將表達(dá)式的值或某個特定匯編符號定義為一個指定的符號名,可以先使用后定義,并且用于雙字節(jié)數(shù)據(jù)定義。 例如:DELAYXDATA0356H
LCALLDELAY;執(zhí)行指令后,程序轉(zhuǎn)到0356H單元執(zhí)行逐瘍淑尸繳遲氏僚友兩堪涯凸斯閘站棗迎帝揀周鰓氛共懶兼菱響八辭睬防江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)6.定義空間偽指令DS逐瘍淑尸繳遲氏僚友兩堪涯凸斯閘站棗迎帝3常見的偽指令8.符號定義偽指令EQU或“=”
格式:符號名EQU表達(dá)式或符號名=表達(dá)式 功能:將表達(dá)式的值或某個特定匯編符號定義為一個指定的符號名,只能定義單字節(jié)數(shù)據(jù),并且必須遵循先定義后使用的原則,因此該語句通常放在源程序的開頭部分。
例如:
LEN=10
SUMEQU21H … MOVA,#LEN;執(zhí)行指令后,累加器A中的值為0AH …瞄索冉汗肛借啟繁跋易順擁炸脆孽臥粱慮泳仟廠硼劍弓葫孔欺杉猶紫分徒江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)常見的偽指令8.符號定義偽指令EQU或“=”瞄索冉汗肛借啟4題意分析、熟悉并了解匯編語言指令的基本格式和主要特點(diǎn)、明確被控對象對軟件的要求、設(shè)計出算法等。分配內(nèi)存工作區(qū)及有關(guān)端口地址。畫出程序流程圖。編寫較復(fù)雜的程序時,畫出程序流程圖是十分必要的。程序流程圖也稱為程序框圖,是根據(jù)控制流程設(shè)計的,它可以使程序清晰,結(jié)構(gòu)合理,便于調(diào)試。編制匯編源程序。仿真、調(diào)試和優(yōu)化程序。固化程序。二、單片機(jī)匯編語言程序設(shè)計的基本步驟如下浩亂莊淘鎖殉員搓術(shù)儉毖嚎攣窘滄暫榴窒飼尿福庫拒竟新膠身存誕蠶釁錨江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)題意分析、熟悉并了解匯編語言指令的基本格式和主要特點(diǎn)、明5順序程序:順序程序是最簡單、最基本的程序結(jié)構(gòu),其特點(diǎn)是按指令的排列順序一條條地執(zhí)行,直到全部指令執(zhí)行完畢為止。分支程序:分支程序是通過轉(zhuǎn)移指令對相應(yīng)條件的判斷實(shí)現(xiàn)改變程序的執(zhí)行方向的設(shè)計方法。循環(huán)程序:在程序中需要反復(fù)的執(zhí)行的程序段,為了避免在程序中多次的編寫,可以通過利用條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令來控制程序的執(zhí)行。三:單片機(jī)匯編語言程序主要的幾種程序設(shè)計方法:按桅杠撤克盛抵誅椽勉館佰偷駒健岔偶睡揖輩邯冶東戎抖褲躁頤翻浸涸悠江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)順序程序:順序程序是最簡單、最基本的程序結(jié)構(gòu),其特點(diǎn)是按指令6一、順序程序
順序程序是最簡單的程序結(jié)構(gòu),在順序程序中沒有任何的轉(zhuǎn)移指令,以下是一個典型的例子。例1:字節(jié)(雙字)加法。將內(nèi)部RAM30H開始的4個單元中存放的4字節(jié)十六進(jìn)制數(shù)和內(nèi)部RAM40H單元開始的4個單元中存放的4字節(jié)十六進(jìn)制數(shù)相加,結(jié)果存放到40H開始的單元中。(如0a0ab234fh存放在片內(nèi)RAM30h開始的4個單元如圖所示)30H31H33H32H加數(shù)
1存放處4FH23HABHA0H匡嘛禹朱步鐮勿論請精嚷澡讕晝爪鑿竿慰申寺鶴哨芥橇抒客蛾悉浙樂業(yè)瑤江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)一、順序程序順序程序是最簡單的程序7題意分析示意圖(1)題意分析。題目的要求如圖所示。30H31H33H32H加數(shù)
1存放處4FH23HABHA0H43H42H41H40H7BH56H80HE8H加數(shù)
2存放處43H42H41H40HCAH79H2BH89H相加結(jié)果存放處+A0AB234FE880567B892B79CA1垮占伯組儲絢碳玲騰澈適湃隋盔精忙無崗薪謊討警真杰繪曳嫡靳費(fèi)搶桅漫江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)題意分析示意圖(1)題意分析。30H318ORG 0000H MOV A,30H ADD A,40H MOV 40H,A ;最低字節(jié)加法并送結(jié)果 MOV A,31H ADDC A,41H MOV 41H,A ;第二字節(jié)加法并送結(jié)果(2)匯編語言源程序。按照雙字節(jié)加法的思路,實(shí)現(xiàn)4字節(jié)加法的源程序如下:年互稠憂街篇稱名跨紹汗粘交良貼蕪茨砂祿仆宜災(zāi)岸誼陛鍘李凸雪挽控膛江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)ORG 0000H(2)匯編語言源9MOV A,32H ADDCA,42H MOV 42H,A ;第三字節(jié)加法并送結(jié)果 MOV A,33H ADDC A,43H MOV 43H,A ;第四字節(jié)加法并送結(jié)果,進(jìn)位位在CY中SJMP$ END恤走尉墨繁塢久琺壘害扮辜擅濟(jì)畦徹我濰喊板殿蟹產(chǎn)暈榆挎捷喀舍財篆粕江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)MOV A,32H恤走尉墨繁塢久琺壘10分支程序分支程序可以分為:單分支雙分支多分支承鱉權(quán)迅梢氈政貫嘛饅玖齋點(diǎn)輪馳威黃對淵禹襲錯壇遞僚瞻售叉區(qū)縮群怠江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)分支程序分支程序可以分為:承鱉權(quán)迅梢氈政貫嘛饅玖齋點(diǎn)輪馳威黃11單分支單分支程序的基本結(jié)構(gòu):條件成立?程序段下條指令NY哮砸硯夏轍刀公巋窮點(diǎn)酥睫角貯魁稈磚半毀戌戎浮妙奶噴繭凳降歉飛挽做江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)單分支單分支程序的基本結(jié)構(gòu):條件成立?程序段下條指令NY哮砸12雙分支雙分支程序的基本結(jié)構(gòu):程序段1條件成立?程序段2NY論鞏弛牲澳倡究堆韻凜是空戊伐爛絆歉朋敲訣戳舞蕉液赤哦糾互灌炯鐳妻江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)雙分支雙分支程序的基本結(jié)構(gòu):程序段1條件成立?程序段2NY論13多分支多分支程序的基本結(jié)構(gòu):程序段2條件N=?程序段N-10N程序段1程序段N1N-1……炯莫霞雜狄趴哨贛猙皺殃鹿窒慎專難維昆惕渺錫搭消儡嘛疚娠兇壓島省匹江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)多分支多分支程序的基本結(jié)構(gòu):程序段2條件N=?程序段N-1014例:如圖所示,設(shè)計一段程序?qū)崿F(xiàn)功能:如果(A)中1的個數(shù)為奇數(shù),所有的二極管發(fā)光;如果全0,則只讓VD0-VD3發(fā)光;否則全滅。單分支程序舉例捐解椽奶殉萍龐痔咽苔綁采滌岡甲論犧掌耪稼豆桅刪鋅裁柏腳課條浦獄蹈江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)例:如圖所示,設(shè)計一段程序?qū)崿F(xiàn)功能:如果(A)中1的個數(shù)為奇15開始位P=1?(A)=0?P2FFHP200HP20FH結(jié)束YYNNORG0000H
JBP,JISH
JZ QUAN
MOVP2,#00HSJMP TOendJISHU:MOVP2,#0FFHSJMPTOendQUAN:MOVP2,#0FHTOend:SJMP$END流程圖:源程序:判斷奇偶標(biāo)志位的值判斷(A)的值是否為0(A)有偶數(shù)個1,二極管滅(A)有奇數(shù)個1,二極管全亮(A)為0,VD0-VD3亮注意:在MCS-51單片機(jī)中,實(shí)現(xiàn)單分支常用的指令有:JZ、JNZ、DJNZ、CJNE、JC、JNC、JB、JNB、JBC等。虛線框代表一個單分支網(wǎng)腦戎蘸但隅逮蓄腆鳴求慌人謄足壇囪姐蝦滔伶路冪俱蟲眩么蜀尸寨壹耗江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)開始位P=1?(A)=0?P2FFHP200HP20F16雙分支程序設(shè)計例:內(nèi)部RAM的40H單元和50H單元各存放了一個8位無符號數(shù),請比較這兩個數(shù)的大小,比較結(jié)果用發(fā)光二極管顯示(LED為低有效):若(40H)≥(50H),則P1.0管腳連接的LED1發(fā)光;若(40H)<(50H),則P1.1管腳連接的LED2發(fā)光。埃菩腐馴憐竹塑漫場漣撻銀堿桿傻佃力需麗讕安蠶寅映襲忿婆肌鈍放張諾江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)雙分支程序設(shè)計埃菩腐馴憐竹塑漫場漣撻銀堿桿傻佃力需麗讕安蠶寅17題意分析:本例是典型的分支程序,根據(jù)兩個無符號數(shù)的比較結(jié)果(判斷條件),分別點(diǎn)亮相應(yīng)的發(fā)光二極管。比較兩個無符號數(shù)常用的方法是將兩個數(shù)相減,然后判斷有否借位CY。若CY=0,無借位,則X≥Y;若CY=1,有借位,則X<Y。程序的流程圖如下圖所示。按鱗雁潛錢隊(duì)幟裁眨晌畢弗挽褥踏沮紳眠幕京脾城龜標(biāo)祈脈挺費(fèi)澳櫻酬略江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)題意分析:按鱗雁潛錢隊(duì)幟裁眨晌畢弗挽褥踏沮紳眠幕京脾城龜標(biāo)18兩數(shù)比較流程圖X-YX≥Y,LED1點(diǎn)亮CY=1?X<Y,
YNLED2點(diǎn)亮開始結(jié)束臥蠅憂演收浴離喧晤輥鋪幼庶十坷詛埔舍喻盈豬罕當(dāng)車氣漢旁準(zhǔn)示瞞豌壕江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)兩數(shù)比較流程圖X-YX≥Y,LED1點(diǎn)亮CY=1?19源程序如下:XDATA40H;數(shù)據(jù)地址賦值偽指令DATAYDATA50HORG 0000HMOV A,X ;(X)→ACLR C ;CY=0 SUBB A,Y ;帶借位減法,A-(Y)-CY→A財湛艷擯尺堆氓緬所項(xiàng)三賒令駕搔毗扯沒痊勸力囪象肇眨公院哀渭英狡氦江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)源程序如下:財湛艷擯尺堆氓緬所項(xiàng)三賒令駕搔毗扯20JCL1 ;CY=1,轉(zhuǎn)移到
L1 CLR P1.0 ;CY=0,(40H)≥(50H),點(diǎn)亮P1.0連接的LED1SJMPFIN;直接跳轉(zhuǎn)到結(jié)束等待L1:CLRP1.1 ;(40H)<(50H),點(diǎn)亮P1.1接的LED2FIN:SJMP$ END
窗涼瞥抵價吭蠅以渝疼猩岔溉木官肖惜扣拎卞臟轄猶奮覽第溯羔馳杯遂戒江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)JCL1 21多分支程序舉例例:在某單片機(jī)系統(tǒng)中,按下一按鍵,鍵值(代表哪個鍵被按下)存放在內(nèi)部RAM的40H單元內(nèi)。設(shè)計一段程序?qū)崿F(xiàn)功能:如果(40H)=00H,調(diào)用子程序SUB1;如果(40H)=01H,調(diào)用子程序SUB2;如果(40H)=02H,調(diào)用子程序SUB3;如果(40H)=03H,調(diào)用子程序SUB4;如果(40H)=04H,調(diào)用子程序SUB5。狹霧透闖她坍設(shè)甄貴吁麓井毅棚甚博澗撓棠園郭遭炸部私造隕賀鬃鄭毯齊江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)多分支程序舉例例:在某單片機(jī)系統(tǒng)中,按下一按鍵,鍵值(代表哪22流程圖……..(40H)=?調(diào)SUB1調(diào)SUB2調(diào)SUB3調(diào)SUB4調(diào)SUB5=00H=02H=03H=04H=01H折現(xiàn)號癟皺室賄擱食道追拂緒譬荔聾粳謂晃步亥馴五季辣墾搗朽硫衛(wèi)樣聯(lián)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)流程圖……..(40H)=?調(diào)SUB1調(diào)SUB2調(diào)SUB3調(diào)23程序清單……MOV40H,A
MOVDPTR,#TABRLAADDA,40HJMP@A+DPTR……
TAB:LCALLSUB1LCALLSUB2LCALLSUB3LCALLSUB4LCALLSUB5設(shè)定表格首地址40H×3傳送給A查表轉(zhuǎn)移轉(zhuǎn)移地址表燴動怎冒碉鏟痢定確爍螟循績胰灣戮儒應(yīng)飄老舜考惡荷銻特翰鍬遙楊抱療江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)程序清單……設(shè)定表24循環(huán)程序循環(huán)程序是一種很重要的程序結(jié)構(gòu)。結(jié)構(gòu)流程圖一般如下圖所示:循環(huán)次數(shù)夠否?循環(huán)初始化置循環(huán)次數(shù)循環(huán)體下一條指令NY騙留憚詫詐砧糕鐐沂仆蹭孩帕弊蔓攔迄娶痛菜沂絞鵲貸譽(yù)苯店癸由屆澄君江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)循環(huán)程序循環(huán)程序是一種很重要的程序結(jié)構(gòu)。結(jié)構(gòu)流程圖一般如下圖25例1:設(shè)計一段程序?qū)崿F(xiàn)功能:統(tǒng)計(A)中1的個數(shù),把結(jié)果存入30H單元中。循環(huán)程序舉例解題思路:要統(tǒng)計1的個數(shù),可以利用RLC指令把A帶上Cy循環(huán)左移,如果移入Cy的是1,就讓(30H)加1,重復(fù)8次,可以統(tǒng)計出結(jié)果。30H00HR208H(循環(huán)次數(shù))RLCACy=0?30H(30H)+1(R2)-1=0?下一條指令NYYN……MOV30H,#00HMOVR2,#08HLOOP:RLCAJNCNEXTINC30HNEXT:DJNZR2,LOOP……30H賦初始值,置循環(huán)次數(shù)移位,判斷Cy是否為1,為1則30H自加1判斷是否結(jié)束棱少濕彼二娘坤欲楚毆葬迢淹策秸僧簍央伴炳唐蟻孫鄰裹豺微勉租緯甭促江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)例1:設(shè)計一段程序?qū)崿F(xiàn)功能:統(tǒng)計(A)中1的個數(shù),把結(jié)果存入26例:將內(nèi)部RAM單元中20H單元到2FH單元的數(shù)傳到外部RAM中的2000H到200FH單元中.R2←10H,R0←20HDPTR←2000HNA←@R0@DPTR←AR0←(R0)+1DPTR←(DPTR)+1(R2)-1=0?ENDY流程圖:肅飯橙瓦粳溶寬靠恭送冤搓歲到液灸擦往梆猶號眨汾婁雹疲硝操迫平皇溪江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)例:將內(nèi)部RAM單元中20H單元到2FH單元的數(shù)傳到外部RA27源程序:
ORG0000H
MOVR0,#20H
MOVDPTR,#2000H
MOVR2,#10H
LOOP:MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR2,LOOP
SJMP$
END設(shè)置進(jìn)行數(shù)據(jù)傳送的內(nèi)部和外部RAM的首地址利用ACC進(jìn)行數(shù)據(jù)傳送設(shè)定循環(huán)次數(shù)RAM地址加“1”循環(huán)次數(shù)判定味皮彩寂販敢丟醛建厚炭前劃摳蛔諷秋胡鼻字灘言嗽了型殖幅郎汕硒層弛江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)源程序:
ORG0000H
28
排序程序程序名:BUBBLE功能:將片內(nèi)RAM數(shù)據(jù)塊由大到小排序入口參數(shù):R0指向數(shù)據(jù)塊首地址,R2存放數(shù)據(jù)塊長度出口參數(shù):仍存放原來位置占用資源:R0,R1,R2,R3,R5,A,PSW;00H位徐交陵箋早蜜勝姻妖樂牟組砂娜漸砸級霸他濤舌熟擔(dān)神鉛順恫憲醒珊呼掘江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)排序程序程序名:BUBBLE徐交陵箋早蜜勝姻妖29BUBBLLE:MOVA,R0MOVR1,AMOVA,R2MOVR5,ABUBB1:CLR00HDECR5MOVA,@R1BUB1:INCR1MOVB,@R1CJNEA,B,BUB0BUB0:JNCBUB2SETB00HXCHA,@R1
BUB2:DECR1MOV@R1,AINCR1MOVA,@R1DJNZR5,BUB1MOVA,R0MOVR1,AMOVA,R2MOVR5,AJB00H,BUBB1RET漾忌翱蛤圾震某粟呸押句經(jīng)僚捅忌哥檢植檀壓楊遠(yuǎn)胡篡絢挖勃默前棕扦硼江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)BUBBLLE:MOVA,R0BUB2:DECR130一、MCS-51單片機(jī)匯編語言的偽指令偽指令又稱匯編程序控制譯碼指令,屬說明性匯編指令。“偽”字體現(xiàn)在匯編時不產(chǎn)生機(jī)器指令代碼,不影響程序的執(zhí)行,僅產(chǎn)生供匯編時用的某些命令,在匯編時執(zhí)行某些特殊操作。MCS-51單片機(jī)匯編語言程序設(shè)計中,常用的偽指令(七條):ORG—定位偽指令END—結(jié)束匯編偽指令EQU—賦值偽指令DB—定義字節(jié)指令DW—定義數(shù)據(jù)字指令DS—定義存儲區(qū)指令BIT—位定義指令2-3匯編語言程序設(shè)計方法(一)久糾藩志衷菩訓(xùn)浮筆諒描克痊瀉梆至還道陋拉拌源曼娛溺頓澡促昨艇燴棘江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)一、MCS-51單片機(jī)匯編語言的偽指令偽指令又稱匯編程序控制311、起始地址偽指令ORG
ORGaddr16用于規(guī)定目標(biāo)程序段或數(shù)據(jù)塊的起始地址,設(shè)置在程序開始處。例:Org0000hljmpmainorg0100hmain:…….2、匯編結(jié)束偽指令END告訴匯編程序,對源程序的匯編到此結(jié)束。一個程序中只出現(xiàn)一次,在程序的最末尾。例:…………end3、賦值偽指令EQU 告訴匯編程序,將匯編語句操作數(shù)的值賦予本語句的標(biāo)號。格式:標(biāo)號名稱EQU數(shù)值或匯編符號“標(biāo)號名稱”在源程序中可以作數(shù)值使用,也可以作數(shù)據(jù)地址、位地址使用。先定義后使用,放在程序開頭。例:led_lampequp1.0counterequ100display_addrequ2000h
………….movr0,#countermovdptr,#display_addrmovc,led_lamp程序最末尾指令ljmpmain存放于0000H開始的單元隴酣棋喻姜餐霧搓現(xiàn)然淖救矯茫轅創(chuàng)述得催覆扶擇做命芹晰炕遏損痛候妝江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)1、起始地址偽指令ORGOR324.定義字節(jié)數(shù)據(jù)偽指令DB
格式:[標(biāo)號:]DB字節(jié)數(shù)據(jù)表 功能:字節(jié)數(shù)據(jù)表可以是多個字節(jié)數(shù)據(jù)、字符串或表達(dá)式,它表示將字節(jié)數(shù)據(jù)表中的數(shù)據(jù)從左到右依次存放在指定地址單元。 例如:ORG1000H TAB:DB2BH,0A0H,‘A’,2*4; 表示從1000H單元開始的地方存放數(shù)據(jù)2BH,0A0H,41H(字母A的ASCII碼),08H5.定義字?jǐn)?shù)據(jù)偽指令DW 格式:[標(biāo)號:]DW字?jǐn)?shù)據(jù)表 功能:與DB類似,但DW定義的數(shù)據(jù)項(xiàng)為字,包括兩個字節(jié),存放時高位在前,低位在后。 例如:ORG1000H DATA:DW324AH,3CH; 表示從1000H單元開始的地方存放數(shù)據(jù)32H,4AH;00H,3CH(3CH以字的形式表示為003CH)6.定義空間偽指令DS 格式:[標(biāo)號:]DS表達(dá)式 功能:從指定的地址開始,保留多少個存儲單元作為備用的空間。如:ORG1000HBUF:DS50;TAB:DB22H;22H存放在1032H單元。表示從1000H開始的地方預(yù)留50個(1000H~1031H)存儲字節(jié)空間。7.數(shù)據(jù)地址賦值偽指令XDATA
格式:符號名XDATA表達(dá)式
功能:將表達(dá)式的值或某個特定匯編符號定義為一個指定的符號名,可以先使用后定義,并且用于雙字節(jié)數(shù)據(jù)定義。 例如:DELAYXDATA0356H
LCALLDELAY;執(zhí)行指令后,程序轉(zhuǎn)到0356H單元執(zhí)行逐瘍淑尸繳遲氏僚友兩堪涯凸斯閘站棗迎帝揀周鰓氛共懶兼菱響八辭睬防江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)6.定義空間偽指令DS逐瘍淑尸繳遲氏僚友兩堪涯凸斯閘站棗迎帝33常見的偽指令8.符號定義偽指令EQU或“=”
格式:符號名EQU表達(dá)式或符號名=表達(dá)式 功能:將表達(dá)式的值或某個特定匯編符號定義為一個指定的符號名,只能定義單字節(jié)數(shù)據(jù),并且必須遵循先定義后使用的原則,因此該語句通常放在源程序的開頭部分。
例如:
LEN=10
SUMEQU21H … MOVA,#LEN;執(zhí)行指令后,累加器A中的值為0AH …瞄索冉汗肛借啟繁跋易順擁炸脆孽臥粱慮泳仟廠硼劍弓葫孔欺杉猶紫分徒江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)常見的偽指令8.符號定義偽指令EQU或“=”瞄索冉汗肛借啟34題意分析、熟悉并了解匯編語言指令的基本格式和主要特點(diǎn)、明確被控對象對軟件的要求、設(shè)計出算法等。分配內(nèi)存工作區(qū)及有關(guān)端口地址。畫出程序流程圖。編寫較復(fù)雜的程序時,畫出程序流程圖是十分必要的。程序流程圖也稱為程序框圖,是根據(jù)控制流程設(shè)計的,它可以使程序清晰,結(jié)構(gòu)合理,便于調(diào)試。編制匯編源程序。仿真、調(diào)試和優(yōu)化程序。固化程序。二、單片機(jī)匯編語言程序設(shè)計的基本步驟如下浩亂莊淘鎖殉員搓術(shù)儉毖嚎攣窘滄暫榴窒飼尿福庫拒竟新膠身存誕蠶釁錨江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)題意分析、熟悉并了解匯編語言指令的基本格式和主要特點(diǎn)、明35順序程序:順序程序是最簡單、最基本的程序結(jié)構(gòu),其特點(diǎn)是按指令的排列順序一條條地執(zhí)行,直到全部指令執(zhí)行完畢為止。分支程序:分支程序是通過轉(zhuǎn)移指令對相應(yīng)條件的判斷實(shí)現(xiàn)改變程序的執(zhí)行方向的設(shè)計方法。循環(huán)程序:在程序中需要反復(fù)的執(zhí)行的程序段,為了避免在程序中多次的編寫,可以通過利用條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令來控制程序的執(zhí)行。三:單片機(jī)匯編語言程序主要的幾種程序設(shè)計方法:按桅杠撤克盛抵誅椽勉館佰偷駒健岔偶睡揖輩邯冶東戎抖褲躁頤翻浸涸悠江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)順序程序:順序程序是最簡單、最基本的程序結(jié)構(gòu),其特點(diǎn)是按指令36一、順序程序
順序程序是最簡單的程序結(jié)構(gòu),在順序程序中沒有任何的轉(zhuǎn)移指令,以下是一個典型的例子。例1:字節(jié)(雙字)加法。將內(nèi)部RAM30H開始的4個單元中存放的4字節(jié)十六進(jìn)制數(shù)和內(nèi)部RAM40H單元開始的4個單元中存放的4字節(jié)十六進(jìn)制數(shù)相加,結(jié)果存放到40H開始的單元中。(如0a0ab234fh存放在片內(nèi)RAM30h開始的4個單元如圖所示)30H31H33H32H加數(shù)
1存放處4FH23HABHA0H匡嘛禹朱步鐮勿論請精嚷澡讕晝爪鑿竿慰申寺鶴哨芥橇抒客蛾悉浙樂業(yè)瑤江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)一、順序程序順序程序是最簡單的程序37題意分析示意圖(1)題意分析。題目的要求如圖所示。30H31H33H32H加數(shù)
1存放處4FH23HABHA0H43H42H41H40H7BH56H80HE8H加數(shù)
2存放處43H42H41H40HCAH79H2BH89H相加結(jié)果存放處+A0AB234FE880567B892B79CA1垮占伯組儲絢碳玲騰澈適湃隋盔精忙無崗薪謊討警真杰繪曳嫡靳費(fèi)搶桅漫江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)題意分析示意圖(1)題意分析。30H3138ORG 0000H MOV A,30H ADD A,40H MOV 40H,A ;最低字節(jié)加法并送結(jié)果 MOV A,31H ADDC A,41H MOV 41H,A ;第二字節(jié)加法并送結(jié)果(2)匯編語言源程序。按照雙字節(jié)加法的思路,實(shí)現(xiàn)4字節(jié)加法的源程序如下:年互稠憂街篇稱名跨紹汗粘交良貼蕪茨砂祿仆宜災(zāi)岸誼陛鍘李凸雪挽控膛江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)ORG 0000H(2)匯編語言源39MOV A,32H ADDCA,42H MOV 42H,A ;第三字節(jié)加法并送結(jié)果 MOV A,33H ADDC A,43H MOV 43H,A ;第四字節(jié)加法并送結(jié)果,進(jìn)位位在CY中SJMP$ END恤走尉墨繁塢久琺壘害扮辜擅濟(jì)畦徹我濰喊板殿蟹產(chǎn)暈榆挎捷喀舍財篆粕江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)MOV A,32H恤走尉墨繁塢久琺壘40分支程序分支程序可以分為:單分支雙分支多分支承鱉權(quán)迅梢氈政貫嘛饅玖齋點(diǎn)輪馳威黃對淵禹襲錯壇遞僚瞻售叉區(qū)縮群怠江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)分支程序分支程序可以分為:承鱉權(quán)迅梢氈政貫嘛饅玖齋點(diǎn)輪馳威黃41單分支單分支程序的基本結(jié)構(gòu):條件成立?程序段下條指令NY哮砸硯夏轍刀公巋窮點(diǎn)酥睫角貯魁稈磚半毀戌戎浮妙奶噴繭凳降歉飛挽做江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)單分支單分支程序的基本結(jié)構(gòu):條件成立?程序段下條指令NY哮砸42雙分支雙分支程序的基本結(jié)構(gòu):程序段1條件成立?程序段2NY論鞏弛牲澳倡究堆韻凜是空戊伐爛絆歉朋敲訣戳舞蕉液赤哦糾互灌炯鐳妻江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)雙分支雙分支程序的基本結(jié)構(gòu):程序段1條件成立?程序段2NY論43多分支多分支程序的基本結(jié)構(gòu):程序段2條件N=?程序段N-10N程序段1程序段N1N-1……炯莫霞雜狄趴哨贛猙皺殃鹿窒慎專難維昆惕渺錫搭消儡嘛疚娠兇壓島省匹江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)多分支多分支程序的基本結(jié)構(gòu):程序段2條件N=?程序段N-1044例:如圖所示,設(shè)計一段程序?qū)崿F(xiàn)功能:如果(A)中1的個數(shù)為奇數(shù),所有的二極管發(fā)光;如果全0,則只讓VD0-VD3發(fā)光;否則全滅。單分支程序舉例捐解椽奶殉萍龐痔咽苔綁采滌岡甲論犧掌耪稼豆桅刪鋅裁柏腳課條浦獄蹈江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)例:如圖所示,設(shè)計一段程序?qū)崿F(xiàn)功能:如果(A)中1的個數(shù)為奇45開始位P=1?(A)=0?P2FFHP200HP20FH結(jié)束YYNNORG0000H
JBP,JISH
JZ QUAN
MOVP2,#00HSJMP TOendJISHU:MOVP2,#0FFHSJMPTOendQUAN:MOVP2,#0FHTOend:SJMP$END流程圖:源程序:判斷奇偶標(biāo)志位的值判斷(A)的值是否為0(A)有偶數(shù)個1,二極管滅(A)有奇數(shù)個1,二極管全亮(A)為0,VD0-VD3亮注意:在MCS-51單片機(jī)中,實(shí)現(xiàn)單分支常用的指令有:JZ、JNZ、DJNZ、CJNE、JC、JNC、JB、JNB、JBC等。虛線框代表一個單分支網(wǎng)腦戎蘸但隅逮蓄腆鳴求慌人謄足壇囪姐蝦滔伶路冪俱蟲眩么蜀尸寨壹耗江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)開始位P=1?(A)=0?P2FFHP200HP20F46雙分支程序設(shè)計例:內(nèi)部RAM的40H單元和50H單元各存放了一個8位無符號數(shù),請比較這兩個數(shù)的大小,比較結(jié)果用發(fā)光二極管顯示(LED為低有效):若(40H)≥(50H),則P1.0管腳連接的LED1發(fā)光;若(40H)<(50H),則P1.1管腳連接的LED2發(fā)光。埃菩腐馴憐竹塑漫場漣撻銀堿桿傻佃力需麗讕安蠶寅映襲忿婆肌鈍放張諾江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)雙分支程序設(shè)計埃菩腐馴憐竹塑漫場漣撻銀堿桿傻佃力需麗讕安蠶寅47題意分析:本例是典型的分支程序,根據(jù)兩個無符號數(shù)的比較結(jié)果(判斷條件),分別點(diǎn)亮相應(yīng)的發(fā)光二極管。比較兩個無符號數(shù)常用的方法是將兩個數(shù)相減,然后判斷有否借位CY。若CY=0,無借位,則X≥Y;若CY=1,有借位,則X<Y。程序的流程圖如下圖所示。按鱗雁潛錢隊(duì)幟裁眨晌畢弗挽褥踏沮紳眠幕京脾城龜標(biāo)祈脈挺費(fèi)澳櫻酬略江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)題意分析:按鱗雁潛錢隊(duì)幟裁眨晌畢弗挽褥踏沮紳眠幕京脾城龜標(biāo)48兩數(shù)比較流程圖X-YX≥Y,LED1點(diǎn)亮CY=1?X<Y,
YNLED2點(diǎn)亮開始結(jié)束臥蠅憂演收浴離喧晤輥鋪幼庶十坷詛埔舍喻盈豬罕當(dāng)車氣漢旁準(zhǔn)示瞞豌壕江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)兩數(shù)比較流程圖X-YX≥Y,LED1點(diǎn)亮CY=1?49源程序如下:XDATA40H;數(shù)據(jù)地址賦值偽指令DATAYDATA50HORG 0000HMOV A,X ;(X)→ACLR C ;CY=0 SUBB A,Y ;帶借位減法,A-(Y)-CY→A財湛艷擯尺堆氓緬所項(xiàng)三賒令駕搔毗扯沒痊勸力囪象肇眨公院哀渭英狡氦江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)源程序如下:財湛艷擯尺堆氓緬所項(xiàng)三賒令駕搔毗扯50JCL1 ;CY=1,轉(zhuǎn)移到
L1 CLR P1.0 ;CY=0,(40H)≥(50H),點(diǎn)亮P1.0連接的LED1SJMPFIN;直接跳轉(zhuǎn)到結(jié)束等待L1:CLRP1.1 ;(40H)<(50H),點(diǎn)亮P1.1接的LED2FIN:SJMP$ END
窗涼瞥抵價吭蠅以渝疼猩岔溉木官肖惜扣拎卞臟轄猶奮覽第溯羔馳杯遂戒江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)JCL1 51多分支程序舉例例:在某單片機(jī)系統(tǒng)中,按下一按鍵,鍵值(代表哪個鍵被按下)存放在內(nèi)部RAM的40H單元內(nèi)。設(shè)計一段程序?qū)崿F(xiàn)功能:如果(40H)=00H,調(diào)用子程序SUB1;如果(40H)=01H,調(diào)用子程序SUB2;如果(40H)=02H,調(diào)用子程序SUB3;如果(40H)=03H,調(diào)用子程序SUB4;如果(40H)=04H,調(diào)用子程序SUB5。狹霧透闖她坍設(shè)甄貴吁麓井毅棚甚博澗撓棠園郭遭炸部私造隕賀鬃鄭毯齊江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)多分支程序舉例例:在某單片機(jī)系統(tǒng)中,按下一按鍵,鍵值(代表哪52流程圖……..(40H)=?調(diào)SUB1調(diào)SUB2調(diào)SUB3調(diào)SUB4調(diào)SUB5=00H=02H=03H=04H=01H折現(xiàn)號癟皺室賄擱食道追拂緒譬荔聾粳謂晃步亥馴五季辣墾搗朽硫衛(wèi)樣聯(lián)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)流程圖……..(40H)=?調(diào)SUB1調(diào)SUB2調(diào)SUB3調(diào)53程序清單……MOV40H,A
MOVDPTR,#TABRLAADDA,40HJMP@A+DPTR……
TAB:LCALLSUB1LCALLSUB2LCALLSUB3LCALLSUB4LCALLSUB5設(shè)定表格首地址40H×3傳送給A查表轉(zhuǎn)移轉(zhuǎn)移地址表燴動怎冒碉鏟痢定確爍螟循績胰灣戮儒應(yīng)飄老舜考惡荷銻特翰鍬遙楊抱療江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)程序清單……設(shè)定表54循環(huán)程序循環(huán)程序是一種很重要的程序結(jié)構(gòu)。結(jié)構(gòu)流程圖一般如下圖所示:循環(huán)次數(shù)夠否?循環(huán)初始化置循環(huán)次數(shù)循環(huán)體下一條指令NY騙留憚詫詐砧糕鐐沂仆蹭孩帕弊蔓攔迄娶痛菜沂絞鵲貸譽(yù)苯店癸由屆澄君江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)江蘇大學(xué)嵌入式系統(tǒng)與單片機(jī)課件匯編語言程序設(shè)計方法(一)循環(huán)程序循環(huán)程序是一種很重要的程序結(jié)構(gòu)。結(jié)構(gòu)流程圖一般如下圖55例1:設(shè)計一段程序?qū)崿F(xiàn)功能:統(tǒng)計(A)中1的個數(shù),把結(jié)果存入30H單元中。循環(huán)程序舉例解題思路:要統(tǒng)計1的個數(shù),可以利用RLC指令把A帶上Cy循環(huán)左移,如果移入Cy的是1,就讓(30H)加1,重復(fù)8次,可以統(tǒng)計出結(jié)果。30H00HR208H(循環(huán)次數(shù))RLCACy=0?30H(30H)+1(R2)-1=0?下一條指令NYYN
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 清廉課題申報書怎么寫
- 科研課題申報書抄襲
- 別墅擴(kuò)建土建合同范本
- 衛(wèi)浴勞動合同范本
- 音樂 課題申報書
- 國家立項(xiàng)課題申報書
- 合同附合同范本
- 單項(xiàng)委托預(yù)定酒店合同范本
- 養(yǎng)殖土雞合同范本
- 中環(huán)租房合同范本
- 基于杜邦分析法的蔚來汽車經(jīng)營財務(wù)分析及建議
- 2024人教版初中數(shù)學(xué)新教材培訓(xùn)心得體會
- TCECA-G 0310-2024 離網(wǎng)制氫靈活消納與柔性化工系統(tǒng)開發(fā)規(guī)范
- 產(chǎn)科腹部四步觸診要點(diǎn)
- 2024年3月時政熱點(diǎn)(一)
- 2024天津市衛(wèi)生健康委員會所屬天津市衛(wèi)生健康促進(jìn)中心選聘3人(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 咨詢行業(yè)人工智能應(yīng)用研究
- SLT 478-2021 水利數(shù)據(jù)庫表結(jié)構(gòu)及標(biāo)識符編制總則
- 2024年春學(xué)期人教版小學(xué)道德與法治六年級下冊教學(xué)計劃附教學(xué)進(jìn)度表
- MIL-STD-1916抽樣計劃表(抽樣數(shù))大
- 中考數(shù)學(xué)一輪復(fù)習(xí)各章節(jié)復(fù)習(xí)有答案完美版
評論
0/150
提交評論