北京理工大學(xué)微機(jī)原理實(shí)驗(yàn)報(bào)告_第1頁
北京理工大學(xué)微機(jī)原理實(shí)驗(yàn)報(bào)告_第2頁
北京理工大學(xué)微機(jī)原理實(shí)驗(yàn)報(bào)告_第3頁
北京理工大學(xué)微機(jī)原理實(shí)驗(yàn)報(bào)告_第4頁
北京理工大學(xué)微機(jī)原理實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

wordword資料3t京理工人孽微機(jī)原理與接口技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)內(nèi)容:匯編語言程序設(shè)計(jì)實(shí)驗(yàn)組別:12姓名:班級:學(xué)號(hào):一、實(shí)驗(yàn)?zāi)康?、熟悉IDE86集成開發(fā)環(huán)境的使用。2、通過編程、上機(jī)調(diào)試,進(jìn)一步理解匯編語言的設(shè)計(jì)思路與執(zhí)行過程。3、熟悉DOS命令調(diào)用,以達(dá)到輸入輸出、返回DOS系統(tǒng)等目的。4、掌握利用匯編實(shí)現(xiàn)求和與求最值的方法。5、掌握利用匯編實(shí)現(xiàn)數(shù)制轉(zhuǎn)換的方法。6、鞏固理論知識(shí),鍛煉動(dòng)手編程,獨(dú)立思考的能力。二、實(shí)驗(yàn)內(nèi)容(具體內(nèi)容)1、求從TABLE開始的10個(gè)無符號(hào)字節(jié)數(shù)的和,并將結(jié)果放在SUM字單元中。并查看前5個(gè),前8個(gè)數(shù)之和以及各寄存器和內(nèi)存的狀態(tài)。2、在1的基礎(chǔ)上修改程序,求出10個(gè)數(shù)中的最大值和最小值,最后將最大最小值分別賦給MAX及MIN。3、求1到100的累加和,并用十進(jìn)制形式將結(jié)果顯示在屏幕上。要求實(shí)現(xiàn)數(shù)據(jù)顯示,并返回DOS狀態(tài)。三、實(shí)驗(yàn)方法1、設(shè)計(jì)思路(1)實(shí)驗(yàn)1的設(shè)計(jì)思路:先將10個(gè)要相加的數(shù)存在以TABLE為首的10個(gè)連續(xù)的存儲(chǔ)單元中,然后利用循環(huán)結(jié)構(gòu)依次取出數(shù)值放在AL中并累加,若有進(jìn)位則加到AH中直至循環(huán)10次累加結(jié)束,將累加的結(jié)果放在SUM中并返回DOS狀態(tài)。(2)實(shí)驗(yàn)2的設(shè)計(jì)思路:先將10個(gè)要比較的數(shù)放在以TABLE為首的10個(gè)連續(xù)的存儲(chǔ)單元中。將第一個(gè)數(shù)首先賦給AL和AH(分別存儲(chǔ)相對最小和最大值)在利用LOOP循環(huán)結(jié)構(gòu),依次和下面的數(shù)進(jìn)行比較,每次把相對的最大值與最小值存儲(chǔ)到AH和AL中直至循環(huán)9次比較結(jié)束,將AH和AL里面的最大值與最小值賦給MAX和MIN,返回DOS狀態(tài)(3)實(shí)驗(yàn)3的設(shè)計(jì)思路:先在內(nèi)存中定義COUNT=100,表示1-100求和,若相求1-n的和并顯示只需COUNT的值為n即可,同時(shí)定義一塊以DNUM為首地址的數(shù)據(jù)區(qū)用于存儲(chǔ)累加和的十進(jìn)制數(shù)對應(yīng)的ASCII碼。先利用AX和LOOP求出1-COUNT的累加和存在AX中;在進(jìn)行數(shù)值轉(zhuǎn)化,AX依次除10取余數(shù)保存,將16進(jìn)制數(shù)轉(zhuǎn)化為10進(jìn)制ASCII碼值并存在DUNM中。最后在屏幕上顯示并返回DOS狀態(tài)。2程序流程圖實(shí)驗(yàn)一、二和三的流程圖分別如圖1、圖2和圖3所示圖1圖110個(gè)數(shù)求和流程圖word資料wordword資料word資料word資料圖2求10個(gè)數(shù)最大最小值流程圖開始

四、實(shí)驗(yàn)源程序(必要的文字注釋)圖31-100求和并在屏幕顯示流程圖實(shí)驗(yàn)一:;求10個(gè)無符號(hào)字節(jié)數(shù)的和,結(jié)果存在SUM中DATASEGMENTTABLEDB12H,23H,34H,45H,56HDB67H,78H,89H,9AH,0FDHSUMDW?DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,TABLEMOVCX,10XORAX,AXNEXT:ADDAL,[SI]ADCAH,0INCSILOOPNEXTMOVSUM,AXMOVAH,4CHINT21HCODEENDSENDSTART實(shí)驗(yàn)二:;求出10個(gè)數(shù)中的最大值和最小值。DATASEGMENTTABLE1DB12H,23H,34H,45H,56HDB67H,78H,89H,9AH,0FDHMINDB?MAXDB?DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXLEASI,TABLE1MOVCX,9MOVAL,[SI];定義數(shù)據(jù)段;10個(gè)加數(shù);定義代碼段;初始化DS石1指向TABLE;循環(huán)次數(shù)為10;AX清零;把一個(gè)數(shù)加到AX中去;若有進(jìn)位AH加1;SI指向下一個(gè)數(shù);循環(huán)相加;循環(huán)結(jié)束將結(jié)果保存到SUM中;返回DOS狀態(tài);代碼段結(jié)束;匯編結(jié)束,起始地址為START;十個(gè)數(shù)據(jù);最小值;最大值;數(shù)據(jù)段段地址送入DS;附加數(shù)據(jù)段段地址送入ES;比較次數(shù),一共9次;把第一個(gè)數(shù)送入AL,把最小數(shù)存在AL中MOVAH,[SI]NEXT:INCSIMOVAH,[SI]NEXT:INCSICMPAL,[SI]JCGOONMOVAL,[SI]GOON:CMPAH,[SI]JNCCONTUMOVAH,[SI]CONTU:LOOPNEXTMOVMAX,AHMOVMIN,ALMOVAH,4CHINT21HCODEENDSENDSTART;把第一個(gè)數(shù)送入AH,把最大數(shù)存在AH中;比較AL中的數(shù)和下一個(gè)數(shù)的大小;如果41中的數(shù)小轉(zhuǎn)到GOON,繼續(xù)執(zhí)行;如果41中的數(shù)大,將小的數(shù)存入AL;比較AH中的數(shù)和下一個(gè)數(shù)的大小;如果AH中的數(shù)大轉(zhuǎn)到CONTU,去下一次循環(huán);如果AH中的數(shù)大,將大的數(shù)存入AH;繼續(xù)循環(huán)直至全部比較完畢;將最大的數(shù)存入MAX中;將最小的數(shù)存入MIN中;返回DOS狀態(tài);代碼段結(jié)束;匯編結(jié)束,起始地址為START實(shí)驗(yàn)三:;1-100求和并用十進(jìn)制在品目上顯示,程序結(jié)束返回DOS狀態(tài)DATASEGMENTSUMDW0DNUMDB'0000',0DH,0AH,'$'COUNTDW100;數(shù)據(jù)段;1-100的和;存儲(chǔ)1-100和的十進(jìn)制ASCII碼字符串;求和的數(shù)目100個(gè),當(dāng)需要求1-n的數(shù)字和時(shí)只;需修改100為所需要的口即可DATAENDSSSEGSEGMENTDW32DUP(?)SSEGENDS;CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,SSEGMOVSS,AXCALLSUMMMOVSUM,AXCALLDISPLEADX,DNUMMOVAH,9INT21HMOVAH,4CHINT21HSUMMPROCXORAX,AXMOVCX,COUNT;堆棧段;代碼段;數(shù)據(jù)段的段地址送入DS;堆棧段的段地址送入SS;求1-100的數(shù)據(jù)和,結(jié)果存入AX中;和存入SUM中;將十六進(jìn)制數(shù)轉(zhuǎn)化相應(yīng)的十進(jìn)制ASCII碼值,;存在DNUM中;使用DOS功能調(diào)用,在屏幕上顯示;返回DOS狀態(tài);求和子程序;AX清零;求和的數(shù)目,這里COUNT=100CALCU:ADDAX,CXLOOPCALCURETSUMMENDP;DISPPROCMOVCX,4MOVBX,10GOON:LEASI,DNUMXORDX,DXDIVBXADDSI,CXADD[SI-1],DLLOOPGOONRETDISPENDP;CODEENDSENDSTART五、實(shí)驗(yàn)結(jié)果1、實(shí)驗(yàn)一:10個(gè)無符號(hào)字節(jié)數(shù)加和;求和結(jié)束返回,求和值存在AX中;轉(zhuǎn)化為十進(jìn)制ACSII碼值子程序;要顯示的數(shù)為四位十進(jìn)制數(shù);顯示的ASCII碼字符串的偏移地址給SI;DX清零,DX、AX存放1-100的和,AX為低位;每次除10,余數(shù)為顯示數(shù)值,;SI指向存入數(shù)據(jù)的下一位;要顯示的十進(jìn)制數(shù)轉(zhuǎn)為相應(yīng)的ASCII碼;循環(huán)4次將要顯示的十進(jìn)制數(shù)由低到高轉(zhuǎn)化(1)^TABLE中前5個(gè)數(shù)的和為0104H,結(jié)果如圖4所示,存儲(chǔ)在AX中。圖4TABLE中前5個(gè)數(shù)字和(2)、TABLE中前8個(gè)數(shù)的和為026CH,結(jié)果如圖5所示,存儲(chǔ)在AX中。圖5TABLE中前8個(gè)數(shù)字和(3)、程序運(yùn)行完結(jié)果結(jié)果如圖6所示,十個(gè)值的和為0403H,存儲(chǔ)在AX中。圖6TABLE中前10個(gè)數(shù)字和2、實(shí)驗(yàn)二:10個(gè)數(shù)求最大最小值為了保證程序的正確性,在這里我用三組輸入測試,分別為:12H,23H,34H,45H,56H,67H,78H,89H,9AH,0FDH(最大右邊,最小左邊)12H,9H,34H,45H,56H,67H,0FFH,89H,9AH,0FDH(最大最小在中間)0FFH,9H,34H,45H,56H,67H,0FEH,89H,9AH,2H(最大左邊,最小右邊)實(shí)驗(yàn)結(jié)果分別如圖7,圖8,圖9所示。圖7第一組輸入運(yùn)行結(jié)果圖8第二組輸入運(yùn)行結(jié)果圜「「金::>.r:'.-JrCpuspeed.3000cyde5,FiamMkip0.Prog,-am:TD圖9第三組輸入運(yùn)行結(jié)果3、實(shí)驗(yàn)三:1-100求和并顯示實(shí)驗(yàn)三的結(jié)果分別如圖10,圖11,圖12所示,其中圖10為1-100的累加和保存在AX中,結(jié)果為13BAH,圖11為轉(zhuǎn)化為相應(yīng)的十進(jìn)制ASCII碼保存在DS:0002-DS:0005,圖12為窗口顯示。DO&E-qm0,74]Cpj5peed:3000cycles^,Frornesldp0,Program;TDERD=FileEdiLViewFunHrMkptiinL占DataOptiun^klindowHelpERD■Hndiile:t已*tFile:test.asrm13,MUUDS,AXMDUfiX.SSEGMTIUS3,CALLSj|MDUSJICAT.L[1=CFII80486=

cs:feJUODkAilUtWymuSUM,A工;ax1JEAc=9LE。MTIU1MTMDUTNTSUMIHKUCAHZLHl33miZLrtXDRimu?CALCU:ALUiLOOPRETUatches-cs:O910ce:Q013cs:GG16csMTIUS3,CALLSj|MDUSJICAT.L[1=CFII80486=

cs:feJUODkAilUtWymuSUM,A工;ax1JEAc=9LE。MTIU1MTMDUTNTSUMIHKUCAHZLHl33miZLrtXDRimu?CALCU:ALUiLOOPRETUatches-cs:O910ce:Q013cs:GG16cs:001OCS:GO1Acs:001CE01G00BAQZEfi明仍CD21明蟲:CBZ1fltcstltsunncs:0O1E33C0cs-WZSBEQCeQQBfliestflcalcuce:06E403C1cs-GBZbE2FC+CALLDISP:叫”[-11bx0000*LEA*MOU+IMT+rtW+IMT+XDR*muDX.nrUH:『?網(wǎng)M921HAH.4CH;吊司和nZ1HAX.fW;附,4CX,00UI1T:|[i|=|+CftLCU;hDDAX.CX+LOOFCALCUd5:00ooOGdo30a?30soeceftooeerfl

E?6SE?$dd£:G?G8ds:Gei6ds:e01064GO06GG0000E?6006GG000069GG09606G00exfOfiOOdxGGGOsi0000dLeGGGwa89口

o3z33

ea57575757pssss

bdescIPWOODS=00=0ss:OGGS0GJGO

書曲耕000。Fl-Help FU-ModF4-HereFS-2joomFfc-Nex3F7-lraceFt-StepF9-RufFltkMenu圖101-100的累加和DO5Ecx口17dl.Cpusp&ed:5000cyclec,FrsmeEldp0,Program;:TD三FiIfEditUif?U!BummDatanptinnsMindnuHelpTfiDY Mudult;Lt:sLFile;l匕士I.gm£3—ASSUMEC3:CODE,?3;,E3:DATftSMTiMOU依,D介坨HOUES,MOV白¥,MIUNX,CALLSUnousunCALLDILEAMOUIMTmuTHTsumFEOCXOENOUCALCU:ASDEX,AH,AH,DNUMCOUNT+CALCUAX,CX!!5Q50OGG00080013C£:0Q(Z4CS:O0Z6ce:0O£8Htesttdis4cH;d=j]和05LOOPCfiLCUBETdkH=u^ii1ii+Jcs:0018CDZ1ce:001ftESKcs:001CCDZ1|tttcstttsumncs:O01E33CGcs^0O2OBEGEG90Oittestttcalcu1,町16”叱陽I1-CPUB04B6d£:0D16的國函迪隨刖的6Qds:0018eeeegooo0006ooeoCX,陽6003GGG06000GQQO573B57ZBC=Gz=G0=0P=1a=0i=ld=0000Z6000QQOA00003=[ri[1]Uatrhesss:QQ0e陋00

ss:0O00k9OOOFl-H匕巾FZ-EkptF3-HoMF4-HereF5-ajdinFb-HtxtF7T¥a匚匕F『St許F+RlutFlCFIIeHU圖111-100和的。目應(yīng)ASCII碼圖121-100和的屏幕顯示六、實(shí)驗(yàn)中遇到的問題及解決方法1、在做實(shí)驗(yàn)一時(shí)由于對軟件不是很熟悉,做起來不是很順手,而且在編譯時(shí)軟件自身有一個(gè)控制參數(shù)/zi,當(dāng)時(shí)在做實(shí)驗(yàn)時(shí),由于不小心在后面多打上了一個(gè)字母,造成無法編譯的情況,經(jīng)過老師的指點(diǎn)才發(fā)現(xiàn)去除后能夠正常編譯了。2、在做實(shí)驗(yàn)二時(shí),剛開始我是用冒泡排序法先排序,這樣第一個(gè)和最后一個(gè)就是最大最小值,但這樣由于排序的過程中需要不斷交換數(shù)字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論