版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第 六 章 微 機 程 序 設 計 一、簡單程序 自上而下的程序設計方法1例1:拆字程序 2流程圖 3程序 MOVAX,1000H;MOV DS,AX;數據段基址DS=1000HMOV SI,50H;需拆字的指針SI=50HMOVAL,SI;取字節(jié)給ALANDAL,0FH;屏蔽高4位MOVSI+1,AL;得到的數據存入10051MOVAL,SI;再取出需拆字的字節(jié)MOV CL,4;SHRAL,CL;邏輯右移4次,高4位補0MOVSI+1,AL;存入10052單元4例2 算術運算: 編程計算z=(x2-3y)/2。設x,y為單字節(jié)正整數,結果z用2個字節(jié)來存放。DATA SEGMENTX DB
2、25Y DB 32Z DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAEXPRE PROC FARSTART: PUSH DS SUB AX,AX PUSH AX MOV AX, DATA MOV DS,AX MOV AL,X MUL AL MOV BL,Y ADD BL,BL ADD BL,Y MOV BH,0 SUB AX,BX SHR AX,1 MOV Z, AX RETEXPRE ENDPCODE ENDSEND START5二、分支程序 1。 用比較(CMP) 數據操作(+ -* / ) 測試(TEST) 邏輯操作等指令來改變標志位2。用
3、條件轉移指令造成分支。 6條件轉移指令8086提供了30條條件轉移指令,基本格式為: Jcc 其中,“J”是條件轉移指令操作碼的第一個字母,后面的“cc”是代表轉移的條件。若條件成立,則程序轉移至由標號標識的指令處執(zhí)行。若條件不滿足,則順序執(zhí)行下條指令。1)簡單條件轉移指令簡單條件轉移指令是將單個標志位的狀態(tài)作為條件來判斷,決定是否轉移。共有5個標志位,即CF、ZF、OF、PF和SF。該類指令共有14,其功能見表5-10。782)無符號數條件轉移指令 兩個無符號數的比較結果通過CF,ZF反映出來,代表轉移條件的字母:A(Above,高于)、B(Below,低于)、E(Equal,等于)。其指令
4、有8條,見表5-10。93)帶符號數條件轉移指令 兩個有符號數的比較結果通過OF,SF,ZF反映出來:G (Greater,大于)、L (Less,小于)、E (Equal,等于)。其指令有8條,見表5-10。10例3求AX與BX兩個無符號數之差的絕對值。 AXBX 2800H 11a. 流程圖 12b 程序 MOVDI,2800H;數據指針指向2800HCMPAX,BX;比較AX,BX(AXBX)JC AA;CF=1(借位)轉移SUB AX,BX;計算AXBX AXMOVDI,AX;存入2800HJMPSTOP;至結束(不要忘記!) AA:SUBBX,AX;計算BXAX BXMOV DI,B
5、X;存入2800HSTOP:HLT;結束13例4(多分支程序) 從外設71H號端口取一個數M,如M=20, 送數0FFH給外設端口73H;如10= M 20, 送數 88H給外設端口73H;如 M 10, 送數 0H給外設端口73H。 存在兩次判斷1.M=20 ?有兩次分支。 14 程序 START:INAL,71H;從端口71H取數CMPAL,10;與10比較(AL10)JC LP1;CF=1(借位)小于10 轉移CMP AL,20;與20比較(AL20);JCLP2;CF=1(借位)小于20 轉移MOVAL,0FFHLP3:OUT 73H,AL;輸出0FFH73H端口JMPSTOP;至結束
6、LP1:MOVAL,0;AL73H端口JMPSTOP;至結束LP2:MOVAL,88H;AL73H端口STOP:HLT;結束15三、循環(huán)程序 16循環(huán)程序結構 17 例5兩個多字節(jié)數求和。 MOV SI,1000H ;置被加數指針 MOV DI,2000H ;置加數指針 MOV CX,4 ;數據字節(jié)個數 CLC ;清進位標志 AGAIN:MOV AL,SI ;取被加數 ADC AL,DI ;加 加數 MOV SI,AL ;和送回至加數 INC SI ;修改數據指針 INC DI LOOP AGAIN ;記數1=0? ;循環(huán)控制及判別結束條件 初始化循環(huán)主體18子程序 2。參數的傳遞 a.入口參
7、數 b.出口參數3。現場的保護與恢復 1。結構 19例6從10050H到100B3H存放了100個單字節(jié)帶符號數,找出最大值,存入100B4H單元中 20程序(主程序)START:MOVSI,50H;置數據指針MOV MOVAL,0HCX, 100;先置AL為可能的最小值; 循環(huán)次數AGAIN:CALL COMP;調用比較大小子程序INCSI;修改指針LOOPAGAIN;再與下個數比,直至比完MOVSI,AL;將最大值存入100B4HHLT;結束21程序(子程序)COMP:PUSHF;比較AL與內存數據大小PUSHBX;保護現場MOVBL,SI;取內存數據CMPAL,BL;將AL與之比較JGB
8、ACK;若ALBL 返回(帶符號)MOVAL,BL;否則,用BL替換ALBACK:POPBX;恢復現場POPFRET;返回22例七 查表程序23查表程序1:已知某班學生的英語成績按學號(從1開始)從小到大的順序排列在TAB表中,要查的學生的學號放在變量NO中,查表結果放在變量ENGLISH中。STACK SEGMENT STACK DB 200 DUP(0)STACKENDSDATASEGMENT TAB DB 80,85,86,71,79,96 DB 83,56,32,66,78,84 NODB 10 ENGLISTDB ?DATAENDSCODESEGMENTASSUME DS:DATA,
9、 SS:STACK, CS:CODEBEGIN:MOV AX,DATA MOV DS ,AX LEA BX,TAB MOV AL,NO XLAT TAB MOV ENGLISH,AL MOV AH,4CH INT 21HCODEENDSENDBEGIN24查表程序2:利用查表法求Y=X3。設X放在數據區(qū)XVAL單元,結果存入YVAL單元。立方表放在從TABLE開始的單元。DATA SEGMENTTABLE DB 0,1,8,27,64,125,216XVAL DB 6YVAL DB ?DATA ENDSSTACK SEGMENT STACK DB 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FAR PUSH DS MO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能農業(yè)設備代售合同協(xié)議范本4篇
- 2024網絡安全防護系統(tǒng)建設與運維合同
- 2025年度文化產業(yè)發(fā)展場協(xié)作伙伴關系合同4篇
- 2024選購排水溝蓋板及排水設施維修保養(yǎng)合同3篇
- 2025年度環(huán)保節(jié)能設備研發(fā)與應用授權合同3篇
- 2024年度航空航天零部件維保與技術支持合同3篇
- 2025年專業(yè)廚師勞務派遣聘用合同規(guī)范文本4篇
- 2025年度商業(yè)街區(qū)臨時停車泊位租賃合同3篇
- 2024鐵路貨物運輸合同書3篇
- 2024版音響工程合同范本
- 春節(jié)文化常識單選題100道及答案
- 12123交管學法減分考試題及答案
- 2024年杭州師范大學附屬醫(yī)院招聘高層次緊缺專業(yè)人才筆試真題
- 制造業(yè)BCM業(yè)務連續(xù)性管理培訓
- 商場停車場管理制度
- 24年追覓在線測評28題及答案
- TGDNAS 043-2024 成人靜脈中等長度導管置管技術
- 《陸上風電場工程概算定額》NBT 31010-2019
- 皮帶輸送機工程施工電氣安裝措施要點
- 藥房(冰柜)溫濕度表
- QJ903.9A-1995航天產品工藝文件管理制度管理用工藝文件編制規(guī)則
評論
0/150
提交評論