已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
CHAPTER4PROGRAMDESIGNOFASSEMBLELANGUAGE主講教師黃英CONTENTS41INTRODUCTIONOFASSEMBLELANGUAGE2411FEATURES2412FORMAT242BASICSTRUCTURES2421SEQUENTIALPROGRAM2422BRANCHINGPROGRAM34221SINGLEBRANCHINGPROGRAM34222MULTIBRANCHINGPROGRAM111BYUSINGSOMECJNEINSTRUCTIONS112BYUSING“ADDRESSTABLE”133BYUSING“JUMPINSTRUCTIONTABLE”154BYUSINGSTACKOPERATION18423CIRCULARSTRUCTURE2343DELAYTIMEPROGRAM24431SINGLECYCLEDELAYTIMEPROGRAM24432LONGDELAYTIMEPROGRAM(MULTICYCLE)25433ADJUSTINGDELAYTIMERANGE25434GETDIFFERENTTIMINGWITHBASICDELAYPROGRAM2544PSEUDOINSTRUCTION2545HOWTOEDITANDASSEMBLETHESOURCEPROGRAM2541INTRODUCTIONOFASSEMBLELANGUAGE411FEATURES1PRODUCESTHEOPTIMIZEDPROGRAM2PROGRAMMERMUSTBEFAMILIARWITHHARDWARE3MANAGEANDCONTROLHARDWAREDIRECTLY4NOTUNIVERSAL,CANTBETRANSPLANTED412FORMAT(DETAILEDINFORMATIONP77)42BASICSTRUCTURES3TYPESSEQUENTIALSTRUCTUREBRANCHINGSTRUCTURECIRCULARSTRUCTURE421SEQUENTIALPROGRAMFOREXAMPLE3BYTEUNSIGNEDCONSTANTSADDITION422BRANCHINGPROGRAM4221SINGLEBRANCHINGPROGRAMUSINGJUMPINSTRUCTIONSP6768JZ,JNZ,CJNE,DJNZ(條件轉(zhuǎn)移指令)P7374JC,JNC,JB,JNB,JBC(位控制轉(zhuǎn)移指令)ASSUMEDTHAT50H52HCELLSOFINTERNALRAMHAVETHREEAUGENDSRESPECTIVELY(BEGINNINGWITHHIGHBYTES),53H55HCELLSOFINTERNALRAMHAVETHREEADDENDSRESPECTIVELY(BEGINNINGWITHHIGHBYTES)REQUIREMENTDESIGNAPROGRAMTOPUTTHEADDITIONRESULTINTO50H52HCELLS(BEGINNINGWITHHIGHBYTES),ANDTHECARRYBITINTO20HBITOFBITADDRESSABLEAREAMOVR0,52HMOVR1,55HMOVA,R0ADDA,R1MOVR0,ADECR0DECR1MOVA,R0ADDCA,R1MOVR0,ADECR0(50H/51H/52H)11H/22H/33HDECR1(53H/54H/55H)77H/88H/99HMOVA,R0ADDCA,R1112233HMOVR0,A778899HCLRAADDCA,00HMOVR0,20HMOVR0,AFOREXAMPLECOMPARETHEVALUESSTARTCLRCCLEARTHECARRYBITMOVDPTR,ST1SETTHEDATAPOINTERMOVXA,DPTRMOVR2,APUTTHE1STCONSTANTINTOR2INCDPTRMOVXA,DPTRPUTTHE2STCONSTANTINTOASUBBA,R2AAR22ST1STJNCBIG1IFNOCARRY,THENTHE2STCONSTANTISBIGGERXCHA,R2ELSE1STCONSTANTISBIGGER,ANDPUTINTOABIG0INCDPTRLETDPTRPOINTSTOTHERESULTCELLMOVXDPTR,ASAVETHEBIGGERCONSTANTRETBIG1MOVXA,DPTRPUTTHE2STCONSTANTINTOASJMPBIG04222MULTIBRANCHINGPROGRAMINSTRUCTIONSETHASNOMULTIBRANCHINGINSTRUCTION4METHODSTOREALIZEMULTIBRANCHING1BYUSINGSOMECJNEINSTRUCTIONS2BYUSING“ADDRESSTABLE”3BYUSING“JUMPINSTRUCTIONTABLE”4BYUSINGSTACKOPERATION1BYUSINGSOMECJNEINSTRUCTIONSCJNEA,DATA,RELPUTTHEBRANCHINGNUMBERINTOAFOREXAMPLETEMPERATURECONTROLSYSTEMCJNEA,55H,LOOP1IFTAT55(UPPERVALUELIMIT),THENJUMPTOLOOP1AJMPFHTAT55,JUMPTOMAINPROGRAMFH(返回)LOOP1JNCJWIFCY0,TAT55,THENJUMPTOJW(降溫)CJNEA,54H,LOOP2IFTAT54(LOWERVALUELIMIT),THENJUMPTOLOOP2AJMPFHTAT54,JUMPTOMAINPROGRAM(FH)LOOP2JCSWIFCY1,TAT55,THENEXECUTESTHETEMPERATUREDOWNPROCESSINGSUBPROGRAM(JW)IFTA(R1SAVESHIGH8BITADDRESS)ANLA,0FHFETCHLOW4BITFROMHIGHADDRESS,ANDCLEARHIGH4BITANLP2,0F0HFETCHHIGH4BITFROMP2PORT,ANDCLEARLOW4BITOFP2ORLP2,ANOTCHANGEHIGH4BITOFP2,ANDSENDLOW4BITOFP2MOVXA,R0FETCHDATAFROMEXTERNALRAM(4KB)TOA(R0SAVESLOW8BITADDRESS)SJMPDONESTOPBR3MOVDPL,R003PUTLOW8BITADDRESSOFEXTERNALRAMTODPLMOVDPH,R1PUTHIGH8BITADDRESSOFEXTERNALRAMTODPHMOVXA,DPTRFETCHDATAFROMEXTERNALRAM(64KB)TOADONESJMPSTOP3BYUSING“JUMPINSTRUCTIONTABLE”FOREXAMPLER300,01,02,03,MOVA,R3PUTTHEBRANCHINGNUMBERINTOARLAABRANCHINGNUMBER2MOVDPTR,BRTABLETDPTRPOINTTOBASEADDRESSOFOFFSETTABLEJMPADPTRJUMPTOTHECORRESPONDINGSUBROUTINE,PCADPTRBRTABAJMPROUT0JUMPTOROUT0AJMPROUT1JUMPTOROUT1AJMPROUT2JUMPTOROUT2AJMPROUT3JUMPTOROUT3AJMPROUTNJUMPTOROUTNWHY“RLA”WHENR300,NEEDJUMPTOBRTAB0,SOA00,WHENR301,NEEDJUMPTOBRTAB2,SOA02,WHENR302,NEEDJUMPTOBRTAB4,SOA04,WHENR303,NEEDJUMPTOBRTAB6,SOA06ASSUMEDTHATTHEREAREFOURBRANCHINGPROGRAMS,WHICHFUNCTIONISTOFETCHDATAFROMINTERNALRAM,EXTERNALRAM(LOWER256B),EXTERNALRAM(4KB),ANDEXTERNALRAM64KBRESPECTIVELYTOAR0SAVESLOW8BITADDRESS,R1SAVESHIGH8BITADDRESS,R3SAVESBRANCHINGNUMBERBRTABDENOTESTHEBASEADDRESSOFOFFSETTABLEBR0_BRTABBR3_BRTABDENOTEOFFSETREQUIREMENTDESIGNAPROGRAMTOREALIZEMULTIBRANCHINGASSUMEDTHATR3SAVESBRANCHINGNUMBERBRTABDENOTESTHEBASEADDRESSOFJUMPINSTRUCTIONTABLEREQUIREMENTDESIGNAPROGRAMTOREALIZEMULTIBRANCHINGOFFSETTABLE(OFFSETVALUEBR0/BR1/BR2/BR3BRTAB)JUMPINSTRUCTIONTABLE4BYUSINGSTACKOPERATIONSTEPS(1)PUTTHE16BITADDRESSINTOSTACK(2)USINGRETINSTRUCTIONTOGETPCVALUEFROMSTACKFOREXAMPLER300,01,02,03MOVDPTR,BRTABLETDPTRPOINTTOBASEADDRESSOFOFFSETTABLEMOVA,R3PUTTHEBRANCHINGNUMBERINTOARLAABRANCHINGNUMBER2MOVR1,AR12R3INCAA2R31MOVCA,ADPTRFETCHLOW8BITADDRESSTOAPUSHACCANDPUTLOW8BITADDRESSINTOSTACKMOVA,R1MOVCA,ADPTRFETCHHIGH8BITADDRESSTOAPUSHACCANDPUTITINTOSTACKRETSETPCVALUEFROMSTACKGETHIGH8BITADDRESSFIRST,ANDTHENLOW8BITADDRESSBRTABDWBR016BITADDRESSOFBRANCHINGSUBROUTINE0DWBR116BITADDRESSOFBRANCHINGSUBROUTINE1DWBR216BITADDRESSOFBRANCHINGSUBROUTINE2DWBR316BITADDRESSOFBRANCHINGSUBROUTINE3DWBRN16BITADDRESSOFBRANCHINGSUBROUTINENNOTEBRTAB3000H16BITADDRESSR3R1RLAINCA3000HIGH8BITADDRESS3001LOW8BITADDRESSBR00013002HIGH8BITADDRESS3003LOW8BITADDRESSBR11233004HIGH8BITADDRESS3005LOW8BITADDRESSBR22453006HIGH8BITADDRESS3007LOW8BITADDRESSBR3367RETPC158SP,SPSP1PC70SP,SPSP1PUSHDIRECTSPSP1,(SP)(DIRECT)SONEEDTOPUSHLOW8BITADDRESSFIRST,ANDTHENPUSHHIGH8BITADDRESSATLAST423CIRCULARSTRUCTUREMETHODUSINGCONDITIONALJUMPINSTRUCTIONSFOREXAMPLEMOVR2,0FFHSETTHEINITIALVALUEOFTHELENGTHCOUNTERMOVR0,3FHSETTHEINITIALVALUEOFTHESTRINGPOINTERLOOPINCR2R200H,01H,INCR0R040H,41H,CJNER0,0DH,LOOPRETASSUMEDTHATR3SAVESBRANCHINGNUMBERBRTABDENOTESTHEBASEADDRESSOFJUMPINSTRUCTIONTABLEREQUIREMENTDESIGNAPROGRAMTOREALIZEMULTIBRANCHINGASSUMEDTHATTHEREISACHARACTERSTRINGTHATADOPTS“ENTER”SYMBOLASTHEENDINGFLAGTHISSTRINGISSAVEDINTHEINTERNALRAMBEGINNINGWITH40HCELLREQUIREMENTDESIGNAPROGRAMTOGETTHELENGTHOFTHISSTRING16BITADDRESSTABLEPAYATTENTIONTOTHEOPERATIONOFDW43DELAYTIMEPROGRAM431SINGLECYCLEDELAYTIMEPROGRAMMOVR5,TIME1LOOPNOP1NOP1DJNZR5,LOOP2IFFOSC6MHZ,THENMACHINECYCLETMSOTOTALDELAYTIMETMAX1(112)2USTIMETIME00HFFH,0255,CYCLES265TIMES1(112)2US256120482049US432LONGDELAYTIMEPROGRAM(MULTICYCLE)MOVR5,TIME11LOOP2MOVR4,TIME21LOOP1NOP1NOP1DJNZR4,LOOP12DJNZR5,LOOP22RET2IFFOSC6MHZ,THENTOTALDELAYTIMETMAXTMAX1(1(112)2562)256)2)2US1525828525829US433ADJUSTINGDELAYTIMERANGEBYADDINGORDELETINGINSTRUCTIONSTHATDONTAFFECTPROGRAMFUNCTIONMOVR0,TIME1LOOPADDA,R11INCDPTR2DJNZR0,LOOP2I
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年臺州市椒江區(qū)國有資本運(yùn)營集團(tuán)有限公司公開招聘工作人員的備考題庫帶答案詳解
- 2026年信陽城發(fā)水務(wù)有限公司招聘備考題庫帶答案詳解
- 2026年醫(yī)院后勤服務(wù)合同協(xié)議
- 2025年高職(數(shù)字媒體藝術(shù)設(shè)計)短視頻制作綜合測試題及答案
- 2026年臨時用電供電合同
- 給水設(shè)施節(jié)水技術(shù)推廣方案
- 燃?xì)夤艿啦季謨?yōu)化分析
- 2025年注冊計量師試題及答案
- 水務(wù)行業(yè)技術(shù)創(chuàng)新方案
- 2026年注冊建筑師關(guān)鍵技術(shù)題庫及答案
- 第五單元生物與環(huán)境檢測卷 2025-2026學(xué)年人教版八年級生物上冊(含解析)
- 2026年河南實(shí)達(dá)國際人力資源合作有限公司招聘宋城產(chǎn)投勞務(wù)派遣人員備考題庫及一套答案詳解
- GB/T 26110-2025鋅鋁涂層技術(shù)規(guī)范
- 北京市朝陽區(qū)2024-2025學(xué)年七年級上學(xué)期期末英語試題(含答案)
- 2025年秋國家開放大學(xué)《毛概》終考大作業(yè)試題三附答案(供參考)范文
- 稅局查合作協(xié)議書
- 2331《建筑制圖基礎(chǔ)》國家開放大學(xué)期末考試題庫
- 2025年昆明市呈貢區(qū)城市投資集團(tuán)有限公司及下屬子公司第二批招聘(11人)備考筆試試題及答案解析
- 廣東農(nóng)信2026年度校園招聘備考題庫及答案詳解一套
- 建設(shè)工程消防設(shè)計 施工 驗(yàn)收案例精解900問 2025版
- 2026年醫(yī)務(wù)人員勞動合同
評論
0/150
提交評論