實驗4分支結(jié)構(gòu)_第1頁
實驗4分支結(jié)構(gòu)_第2頁
實驗4分支結(jié)構(gòu)_第3頁
實驗4分支結(jié)構(gòu)_第4頁
實驗4分支結(jié)構(gòu)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗四 分支結(jié)構(gòu)程序設(shè)計實驗一、實驗?zāi)康?掌握分支結(jié)構(gòu)程序設(shè)計的基本設(shè)計方法;2掌握條件轉(zhuǎn)移指令和無條件轉(zhuǎn)移指令的使用方法; 3掌握指令對標志寄存器中各標志位的影響情況;4掌握多分支結(jié)構(gòu)程序設(shè)計的三種方法:樹型結(jié)構(gòu)法、地址常數(shù)表法和指令常數(shù)表法。 二、實驗要求1學會使用DEBUG 的T 命令,跟蹤檢查指令對標志位的影響情況; 2學會使用DEBUG 中的P 命令,對INT 指令的跟蹤方法; 3學會利用設(shè)置斷點調(diào)試程序的方法;4了解大寫、小寫字母及數(shù)字在計算機內(nèi)的表示方法及轉(zhuǎn)換方法。 三、實驗內(nèi)容1編寫程序,已知在DATA 開始的內(nèi)存單元中,連續(xù)存放著三個一位十六進制數(shù),找出其中最大數(shù)及最小數(shù),存

2、放在指定的內(nèi)存單元中。 2編寫程序,從鍵盤輸入若干個任意字符,如果是小寫字母a z 之間的字符,請將它們轉(zhuǎn)換成相應(yīng)的大寫字母,若為其它字符,則保持不變,將轉(zhuǎn)換后的新字符保存在指定的存儲單元中。 四、解題思路1先對DATA 內(nèi)存單元連續(xù)存放三個一位十六進制數(shù)。先對DATA 內(nèi)存單元里的前兩個數(shù)據(jù)比較,較大的數(shù)據(jù)再和第三個數(shù)據(jù)比較,從而得到最大數(shù)據(jù)存到MAX 內(nèi)存單元里。把兩次比較得到的兩個較小的數(shù)據(jù)進行比較,從而得到最小數(shù)據(jù)存到MIN 內(nèi)存單元里。兩個無符號數(shù)據(jù)比較后,用JA/JNBE、JAE/JNB/JNC/、JB/JNAE/JC和JBE/JNA來判別兩數(shù)的大小關(guān)系,這些條件轉(zhuǎn)移指令是把進位標

3、志CF 和零標志位ZF 結(jié)合起來判別的。2先開辟20個字節(jié)的內(nèi)存單元DATA 用來存儲輸進來字符串和修改后的字符串。對字符串的輸入是以#為結(jié)束字符的,當字符的個數(shù)少于20時,只要輸入的字符串是以#結(jié)尾,就代表字符串輸入結(jié)束(其中結(jié)束字符#也是字符串中的一個字符存儲到內(nèi)存單元里)。每次輸入一個字符,就對其進行判別。若輸入的字符在字符a 到z 之間,那么就對其進行轉(zhuǎn)換成對應(yīng)的大寫字母(方法把小寫字母的值減去32即可),然后再存到指定的內(nèi)存單元中;否則,直接把輸入的字符存到指定的內(nèi)存單元中去。存儲結(jié)束,要對輸入的字符與字符#比較,若不相等,就跳到下次輸入,進行新的輸入;否則,表示輸入結(jié)束,并對內(nèi)存單

4、元里存儲的字符進行輸出。 五、程序清單并注釋及程序流程圖 1. 源程序SSEG SEGMENT STACK ;設(shè)置堆棧段 STK DB 20 DUP (0 SSEG ENDS DSEG SEGMENTDATA DB 15H,0AH,05H ;DATA 內(nèi)存單元中連續(xù)存放三個一位十六進制數(shù) MAX DB? ;存最大值 MIN DB? ;存最小值 DSEG ENDS CSEG SEGMENTASSUMECS: CSEG, DS: DSEG ASSUME SS: SSEG START: MOV AX, DSEG MOV DS, AX MOV AX, SSEGMOV SS, AXMOV SP, SIZ

5、E STKLEA SI,DATA ;取DATA 首地址MOV AL, SI MOV BL, SI+1CMP AL,BL;比較前兩個數(shù) JAE FMAX1MOV AH,AL;交換數(shù)據(jù) MOV AL, BL MOV BL, AH FMAX1:CMP AL,SI+2;較大的與第三個數(shù)比較 JAE FMIN1MOV AL,SI+2;保存最大值JMP MOVE FMIN1:CMP BL,SI+2;兩個較小的數(shù)比較 JAE FMIN2 JMP MOVE FMIN2:MOV BL,SI+2;保存最小值 MOVE: MOV MAX, AL MOV MIN, BLMOV AH, 4CHINT 21H CSEG ENDSEND START 2. 源程序 DSEG ENDS CSEG SEGMENTASSUME CS: CSEG, DS: DSEG ASSUME SS: SSEG START: MOV AX, DSEG MOV DS, AX MOV AX, SSEG MOV SS, AXMOV SP, SIZE STKLEA SI,DATA ;取內(nèi)存單元首地址INPUT:MOV AH,01H ;輸入字符 INT 21HCMP AL,a ;與a 比較 JB FUZHICMP AL,z ;與z 比較 JA FUZHISUB AL,a-A;小寫轉(zhuǎn)換大寫 FUZHI:MOV SI,AL;存儲

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論