資源描述:
《周揚(yáng)微機(jī)原理課程設(shè)計(jì)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、江蘇大學(xué)微機(jī)原理課程設(shè)計(jì)報(bào)告姓名:周揚(yáng)學(xué)院:電氣信息工程學(xué)院班級(jí):自動(dòng)化1202學(xué)號(hào):【實(shí)驗(yàn)?zāi)康摹拷Y(jié)合微型計(jì)算機(jī)原理課程的學(xué)習(xí),進(jìn)一步鞏固已學(xué)的知識(shí),同時(shí)針對微型計(jì)算機(jī)原理知識(shí)的具體應(yīng)用,學(xué)會(huì)對系統(tǒng)中DOS和BIOS的使用。學(xué)會(huì)使用對全屏幕編輯程序,弄懂匯編程序的上機(jī)過程以及如何運(yùn)用DEBUG軟件進(jìn)行匯編程序的調(diào)試?!緦?shí)驗(yàn)內(nèi)容】1.字符串匹配設(shè)計(jì)為掌握提示信息的設(shè)置方法及讀取鍵入信息的方法,編寫程序?qū)崿F(xiàn)兩個(gè)字符串比較,如相同則顯示“MATCH”,否則顯示“NOMATCH”。2.從鍵盤輸入數(shù)據(jù)并顯示的設(shè)計(jì)為掌握鍵盤接受數(shù)據(jù)的方法,
2、并了解將鍵盤數(shù)據(jù)顯示時(shí)必須轉(zhuǎn)換為ASCII碼的原理,編寫程序,將鍵盤接受到的四位十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為等值的二進(jìn)制數(shù)顯示。3.字符和數(shù)據(jù)的顯示設(shè)計(jì)先顯示信息“INPUTSTRINGTHEENDFLAGIS$”再接受字符如為0~9則計(jì)數(shù)器加1并顯示數(shù)據(jù)。如為非數(shù)字,則直接顯示但不計(jì)數(shù)。4.學(xué)生成績名次表設(shè)計(jì)為進(jìn)一步熟悉排序方法,編寫程序,將100以內(nèi)的30個(gè)成績存入首址為1000H的存儲(chǔ)區(qū)中。1000H+i表示學(xué)號(hào)為i的學(xué)生成績。編寫程序使得在2000H開始的區(qū)域排出名次表,2000H+i為學(xué)號(hào)i的學(xué)生的名次?!菊n程設(shè)計(jì)題目詳解】一流
3、程圖設(shè)計(jì)排學(xué)生成績名次表主程序參考流程排學(xué)生成績名次表SCAN子程序參考流程二代碼設(shè)計(jì)CRLFMACRO;宏定義,回車換行MOVAH,02H;顯示一位ASCLL碼MOVDL,0DH;回車INT21HMOVAH,02HMOVDL,0AH;換行INT21HENDMDATASEGMENTSTUNUMEQU30;學(xué)生數(shù)SHURUXDB'PLEASEINPUT30SCORE',0DH,0AH,'$';輸入提示信息ERRORDB'INPUTERROR,TRYAGAIN',0DH,0AH,'$';錯(cuò)誤提示信息SHUCHUDB'THEORDER
4、IS:',0DH,0AH,'$';輸出提示信息EMARKDB?;錯(cuò)誤標(biāo)志位ORG1000H;存放成績信息首址SCOREDB30DUP(?);30個(gè)成績ORG2000H;存放名次信息地址MCDB30DUP(?);名次表DATAENDSSTACKSEGMENT;設(shè)置堆棧段STADW32DUP(?)TOPDW?STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSP,TOPZY:MOVAH,09H;顯示
5、輸入提示信息,顯示字符串MOVDX,OFFSETSHURUXINT21HMOVSI,OFFSETSCORE;成績表首地址MOVCX,STUNUM;CX=30MOVEMARK,0;錯(cuò)誤標(biāo)志位清零SRCJ:CALLGETNUM;調(diào)用子程序讀成績CMPEMARK,01H;判斷是否出錯(cuò)JEZY;出錯(cuò)則從新輸入MOV[SI],DL;DL為成績,沒出錯(cuò)即輸入成績INCSI;指向下一個(gè)成績單元地址LOOPSRCJ;循環(huán),將30個(gè)成績讀取完MOVCX,STUNUM;循環(huán)存30個(gè)同學(xué)的名次MOVDI,OFFSETMC;名次的首地址FMC:CALL
6、SCAN;調(diào)用子程序,記住成績最高的學(xué)號(hào),;其成績清零MOVAL,STUNUM;學(xué)生總數(shù)SUBAL,CLINCAL;計(jì)算名次MOVBX,DX;學(xué)號(hào),即偏移地址PUSHAX;將名次轉(zhuǎn)換成壓縮BCD碼方便顯示PUSHBXPUSHCXXORAH,AH;AH清零MOVBH,0AH;BH=10DIVBH;除以10,取高位,商在AL,余數(shù)在AHMOVCL,4SHLAL,CL;左移4位ADDAL,AH;相加,AL即成績的壓縮BCD碼MOVDH,AL;DH存放名次POPCXPOPBXPOPAXMOV[DI+BX],DH;存入名次LOOPFMC;
7、循環(huán)存完30個(gè)名次MOVAH,09HLEADX,SHUCHU;MOVDXOFFSETSHUCHU輸出提示信息INT21HMOVCX,STUNUMMOVSI,OFFSETMC;SI名次首地址XSMC:MOVAL,[SI];AL放名次。這部分用于顯示名次CALLDISPP;調(diào)用子程序顯示名次,轉(zhuǎn)化成ACSII,顯示高低位PUSHDXPUSHAXMOVAH,02MOVDL,20H;成績之間顯示空格INT21HPOPAXPOPDXINCSI;指向名次表下一個(gè)地址LOOPXSMC;循環(huán)顯示30個(gè)名次MOVAH,4CH;返回DOSINT21
8、HSCANPROCNEAR;掃描子程序,每調(diào)用一遍,找出成績表中最;高成績,記錄學(xué)號(hào),將此成績清零PUSHCXMOVCX,STUNUMMOVAL,00HMOVBX,OFFSETSCOREMOVSI,BX;成績的偏移地址BJCJ:CMPAL,[SI]JAEBJH;