匯編語言分支結構程序設計_第1頁
匯編語言分支結構程序設計_第2頁
匯編語言分支結構程序設計_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗七分支結構程序設計一、實驗目的掌握條件轉移指令的使用方法及指令對標志寄存器中各標志位的影響;掌握標志位和轉移指令之間的關系;會用條件轉移指令和無條件轉移指令設計多分支結構程序;掌握設置斷點調試程序的方法。二、示 例1存自BUF單元開始的緩沖區(qū)連續(xù)存放著 10個學生的英文分數,編程序統(tǒng)計其中90100, 6089,60以下者各有多少人?并把90-100分人數結果存放在 P1單元中、60- 89分人數結 果存放在P2單元中,60分以下人數結果存放在 P3單元中(P1、P2、P3為數據段的單元), 最后把P1、P2、P3中的數以”P仁?、P2=?、P3= ? ”顯示在屏幕上。(注:數據以10進制

2、 顯示)DATA SEGMENTBUF DB 70H,58H,50H,91H,99H,62H,75H,82H,74H,60H;定義 BU!單元地址開始的緩沖區(qū)的數據ORG0020H ;程序執(zhí)行時,將P1送到0200H存單元P1 DB 0ORG0030H ;程序執(zhí)行時,將P2送到0300H存單元P2 DB 0ORG0040HP3 DB 0;程序執(zhí)行時,將P3送到0400H存單元ORG0050H ;程序執(zhí)行時,將DP1送至U 0500H存單元DP1 DB'P1= $'ORG0060H ;程序執(zhí)行時,將DP2X到0600H存單元DP2 DB 卩2= $'ORG0070H ;程

3、序執(zhí)行時,將DP3X到0700H存單元DP3 DB 卩3= $'ORG0080H ;程序執(zhí)行時,將COUN送到0800H存單元COUNT DW 10;'$'為地址運算符,返回當前程序語句的地址偏移值DATA ENDS ;定義數據段CSEG SEGMENTASSUMCS:CSEG,DS:DATAPUSHDS ;將DS!入堆棧SUB AX,AX ;將AX存器容清空PUSHAXSTARTMOV AX,DATAMOV DS,AX ;將數據傳給數據段DSMOV CX,COUNT ;設置計數器CX 最多為10MOV SI,0;給SI賦值為0LP1:MOVAL,BUFSI;將BU!存

4、單元的第si個容賦值給ALCMPAL,90HJNB LP2CMP AL,60HJC LP3INC P2JMP LP5LP3: INC P3JMP LP5LP2: INC P1LP5: INC SILOOP LP1LEA DX,DP1MOVAH,09H INT 21HMOVDL,P1ADDDL,30HMOVAH,2INT 21H;判斷該學生的分數是否=90;若不低于90則跳轉到LP2;判斷該學生的分數是否=60;若產生進位則跳轉到LP3;將分數在60-89的學生的分數個數存放到P2中;跳轉到LP5,即循環(huán)遍歷數組BUF;將P3中的個數+1;跳轉到LP5;給P1中的個數+1;將SI進行+1操作,即

5、下一個成績分數;循環(huán)LP1;轉對應的ASCII值;將P1數據轉10進制輸出LEA DX,DP2MOVAH,09H INT 21HMOVDL,P2ADDDL,30H MOVAH,2INT 21HLEA DX,DP3MOVAH,09H INT 21HMOVDL,P3ADDDL,30HMOVAH,2INT 21HMOV AH,4CHINT 21HCSEG ENDSEND START;轉對應的ASCII值;將P2數據轉10進制輸出;轉對應的ASCII值;將P3數據轉10進制輸出對上述程序加上注釋,并運行觀察結果。 運行結果:廠序1 C:J M S 0 FTM 3>mb i n DV.Tremp.

6、exen 回|P1= 2P2 - 6P3- 2Press anj/ "k&y tc continueBUF開始的存單元的10個數中有2個=90, 6個在60-89 , 2個在60以下 驗證正確三、實驗題1已知DATAX DATAY單元各存放一個帶符號字節(jié)數據,從鍵盤上接收加(+ ) 、減()、 乘(* )或除(/)符號,然后完成相應運算,結果存入RLT單元。四、實驗報告1、總結調試分支程序的方法;2、寫出程序清單,并記錄執(zhí)行結果。解:1. 總結調試分支程序的方法將每個分支的功能編寫清楚后,根據運行結果與自身判斷結果相比較,若有誤,則單步執(zhí)行程序,觀察程序運行的每一步結果變化是

7、否和自身想象的一樣。2. 已知DATAX DATAY單元各存放一個帶符號字節(jié)數據,從鍵盤上接收加(+ )、減()、乘(*)或除(/)符號,然后完成相應運算,結果存入RLT單元。程序代碼:DATASSEGMENTDATAXDB9HDATAYDB2HRLT DB1 DUP?);此處輸入數據段代碼DATASENDSCODES5EGMENTASSUMCS:CODES,DS:DATASSTARTMOVXQATAS MOV)S,AX MOV3L,DATAX MOBH,DATAY MOAH,O1H;將DATA中的數據存入DS;將DATA送入 BL;將DATA送入BHint 21H;DOS功能調用,等待鍵盤輸

8、入一個值CMPAL, '+'JE additi on;若輸入符號為'+',則跳轉到additionCMPAL,'-'JE subtracti on;若輸入符號為'-',則跳轉到subtractionCMPAL, '*'JE multiplicatio nCMPAL, '/'JE divisio n;若輸入符號為'*',則跳轉到multiplication;若輸入符號為'/',則跳轉到divisionadditi on:ADDBL,BHJMP print;將BL,BH容

9、相加 ;跳轉到輸出過程subtracti on:SUBBL,BHJMP print;將BL,BH容相減multiplicati on:MOAL,BHMULBLMOBL,AL;將BL,BH容相乘JMP printdivisi on:MOAL,BL SUBAH,AH DIV BH MOBL,AL;將BL,BH容相除JMP printprint:MOAL,BLMOVCL,4 SHRAL,CLADDAL,30HCMPAL,39HJBE look1;將AL數據邏輯右移4位;將AL數據轉為對應ASCII值;比較AL中數據與39H的大小;當AL<=39用寸,跳轉到look1ADDAL,07H ;>=39H,則只加 07Hlookl:MODL,ALMOVRLT,ALMOAH,02HINT 21HMOAL,BLANDAL,0FHADDAL,30HCMPAL,39HJBE look2ADDAL,07Hlook2:MOVDL,ALMOVRLT,ALMOAH,02H;dos功能調用,輸出DLINT 21H;此處輸入代碼段代碼MOAH,4CHINT 21HCODESENDSENDSTART運行結果:加:序Press an"k&y to continue+0B減:乘:卸

溫馨提示

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

評論

0/150

提交評論