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

下載本文檔

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

文檔簡介

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

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

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

4、元里存儲(chǔ)的字符進(jìn)行輸出。 五、程序清單并注釋及程序流程圖 1. 源程序SSEG SEGMENT STACK ;設(shè)置堆棧段 STK DB 20 DUP (0 SSEG ENDS DSEG SEGMENTDATA DB 15H,0AH,05H ;DATA 內(nèi)存單元中連續(xù)存放三個(gè)一位十六進(jìn)制數(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;比較前兩個(gè)數(shù) JAE FMAX1MOV AH,AL;交換數(shù)據(jù) MOV AL, BL MOV BL, AH FMAX1:CMP AL,SI+2;較大的與第三個(gè)數(shù)比較 JAE FMIN1MOV AL,SI+2;保存最大值JMP MOVE FMIN1:CMP BL,SI+2;兩個(gè)較小的數(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;存儲(chǔ)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論