版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗一匯編語言源程序的輸入一、實驗?zāi)康?. 通過實驗了解和熟悉微機(jī)系統(tǒng)的配置。2. 學(xué)習(xí)在DEBUG狀態(tài)下輸入?yún)R編源程序的方法。3. 初步掌握調(diào)試(在DEBUG狀態(tài)下)的過程。二、實驗原理1. 本實驗要求在DEBUG狀態(tài)下輸入?yún)R編源程序,并用DEBUG命令進(jìn)行調(diào)試。用單步跟蹤的方法驗證指令的功能。2. 以下是給定的參考程序,并在實驗時在每條指令的";”符號右邊按要求填寫指令的執(zhí)行結(jié)果。注: 微機(jī)進(jìn)入DEBUG狀態(tài)下之后,一切立即數(shù)和地址數(shù)據(jù)均被默認(rèn)為十六進(jìn)制數(shù),在輸入時數(shù)的后面不加后綴“H” ;(2)在DEBUG狀態(tài)下執(zhí)行程序時,"INT 20H”指令可使系統(tǒng)執(zhí)行完該指令前
2、的程序時返回到“-”提示符狀態(tài),并且恢復(fù)CS和IP寄 存器原來的值。三、實驗儀器微機(jī)一臺。四、實驗步驟1. 開機(jī)后進(jìn)入DOS系統(tǒng),C > DEBUG/ (/回車符)一(為DEBUG提示符)當(dāng)顯示器出現(xiàn)提示符“一”時,說明已進(jìn)入DEBUG狀態(tài),這時,可用DEBUG命令進(jìn)行操作。2. 用DEBUG的Register命令檢查所有寄存器容,并作記錄。命令格式:R 寄存器名該命令的功能是顯示寄存器的容,或修改某一指定寄存器容,若寄存器名缺省,則顯示所有寄存器容。例如:-R3. 用DEBUG的Assemble命令輸入?yún)R編源程序。格式:A 存地址注:用“”符號括起來的部分表示可以省略。該命令的功能是從
3、指定的存地址開始(括號不要輸入)逐條輸入?yún)R編語言源程序并匯編成機(jī)器碼存入存。若地址缺省,則接上一個A 命令最后一條指令之后輸入?yún)R編語句若沒有用過A命令,則從CS: 0100H地址開始輸入。例如:-AOCD3: 0100-在輸入A命令之后,或每輸入一條指令之后,顯示器的左端給出了存的段地址和偏移地址。每條指令均用回車(/)結(jié)束。若輸入的指令有語法錯誤,DEBUG拒絕接收,并給出提示,此時可以重新輸入。程序的最后一條指令輸入 完之后,再按一次回車鍵(/),即可結(jié)束匯編命令,回到DEBUG提示符“一”狀態(tài)。4. 用DEBUG的Unassemble命令反匯編。命令格式:U 起始地址終止地址該命令的功能
4、是從起始地址到終止地址反匯編目標(biāo)碼,缺省值是接上一個U命令或從CS: 010011地址開始。例如:-U顯示器上將顯示程序的存地址、指令機(jī)器碼的匯編源程序三列對照清單。5. 用DEBUG的Trace命令單步跟蹤程序。命令格式:T 二起始地址指令條數(shù)該命令的功能是從指定的起始地址開始逐條執(zhí)行指令,每執(zhí)行完一條指令,屏幕顯示所有寄存器容和下一條指令地址和指令。若9起 始地址缺省,則T命令從CS: IP地址開始執(zhí)行指令。例如:-TZ重復(fù)這一過程即可看到每條指令執(zhí)行后,所有寄存器和標(biāo)志寄存器的標(biāo)志位容。此時,要檢查存單元的數(shù)據(jù),可用DEBUG的D命令。6. 用DEBUG的Dirnip命令顯示存貯器單元的
5、容。命令格式:D起始地址終止地址該命令的功能是從起始地址到終止地址連續(xù)顯示存貯器單元的容。若地址缺省,則接上一個D命令或從DS: 0100H地址開始顯示。例如:-DZ參考程序:MOVAX, 2000;AL二OOHMOVDS, AX;DS=2000HNOTAX;AX二DFFFHXORAX. AX;AX二0000HDECAX;AX二FFFFHINCAX;AX二 OOOOIIMOVBX, 2030;BH二2011MOVSI. BX;SI=2030HMOVSI, BL;2030H=30HMOVWORD PTRtSl, 10F;2030H= OFH2031H=01HMOVDI, SI;DI=2030HM
6、OVDI+50. BH;DI+50H=20HMOVSI;BH二OFHMOVBL, DI+50;BL=20HMOVSP, 5000PUSHAX;AX二 0000H SS:4FFEH=00HSS: 4FFFH二OOHPUSHBX;BX=0F20H SS:4FFCH=20HSS: 4FFDH二OFHPOPAX;AX二0F20HPOPF;F二00000000NEGBX;BX=FOEOHXCHGBX. AX;BX=0F20HSTD;F=01010001STI;F=01110001CLD;F=00110001CLI;F=00010001ADCDI, 2050;DIM081HF二00000010ADCSP,
7、 DI;SP=9081HF二10010010ADCAX, 1500;AX二05E0HF=00000001SUBAX, BX;AX二F6C0HBX二0F20HSHLAH, 1;AH=ECHRCLAX, 1:AX=D981HSHRBH, 1;BH二07HRCRBL, 1;BL=90HMOVCL, 4MOVDX, 80F0ROLDX, CL;DX=0F08HCL=04HI NT20;CS=00A7HIP二1072H五. 實驗報告要求1. 整理每條指令執(zhí)行的結(jié)果,填到打印清單的右半部分(應(yīng)注意存數(shù)據(jù)檢查的正確性)。2. 比較實驗記錄與理論分析的結(jié)果是否相同,若有不同,找出差別及問題所在。3總結(jié)本次實驗
8、的體會。標(biāo)志名標(biāo)志為1標(biāo)志為00F溢出(是/否)0VNVDF方向(減量/增量)DNUPIF中斷(允許/關(guān)閉)EIDISF符號(負(fù)/正)NGPLZF零(是/否)ZRNZAF輔助進(jìn)位(是/否)ACNAPF奇偶(偶/奇)PEP0CF進(jìn)位(是/否)CYNC實驗二數(shù)據(jù)的建立與傳送程序一. 實驗?zāi)康?. 繼續(xù)學(xué)習(xí)DEBUG命令。2. 驗證指令的功能。二、實驗原理在DEBUG狀態(tài)下,分別輸入下面各程序段,每輸入完一個程序段,用G命令進(jìn)行連續(xù)方式執(zhí)行程序,在連續(xù)執(zhí)行時,要記錄程序的執(zhí)行 結(jié)果。參考程序:1. 在存10000H單元開始,建立00H0FH00H 31個數(shù),要求00HOFH數(shù)據(jù)逐漸增大,OFH00H
9、逐漸城小。該程序從存CS:O1OOH地址開始輸入。MOVAX, 1000HMOVDS. AXMOVSI. 0MOVCL, OFHXORAX, AXMOVSI, ALINCSIINCALDECCLJNZPPE1MOVCX. 10HMOVSI, ALINCSIDECALLOOPPPE2INT20HPPE1:PPE2:注:轉(zhuǎn)移指令的符號地址直接用絕對偏移地址,該地址在用A命令匯編輸入時,可以看到程序全部運行完之后,可用DEBUG的Dump 命令查看建立的數(shù)據(jù)塊容。例如:-D1000: 00 1E-|g| x|MB09:0100 mou ax,1000MR09:0103mouds»B09:8
10、105mowsi,0»1B09:0108moucl,0fK)B09:O10Axorax>axHB09:010Cnousi,al»B09:010Eincsi»B09:O10Fincalclk)B09;ail3JnzB10gfoB09:0115moucx 10»B09:0118nowCsi,«lHB09:011AincsidecalHB09:011Dloop 0118»B09:011Pint20»B09:O121F«-0i00Pnogpan terminated nopnall-dl000£00 le1
11、000:0000 00 Bl 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F1000:0010 0E OD 0C 0B 0A 09 08 07-06 05 04 03 02 01 002. 把上一個程序的執(zhí)行結(jié)果(建立的31個字節(jié)數(shù)據(jù)塊,其首地址在10000H),分幾種方式傳送到以下指定的區(qū)域。(a) 該程序從存CS:0150H開始輸入。把數(shù)搖塊傳送到1505011 7F始的存貯區(qū)域中。參考程序:MOVMOVMOVMOVMOVAX,1000HDS.AXSI,0DI,5050Hcx.1FHL,SI;數(shù)據(jù)塊長度是31檢查存數(shù)據(jù)塊的傳送情況,可用命令。Hdi000
12、:00 1600:0000 >000:0010 La-A 0150dB09;0150 3809:0153 0BA9;0155 BB09:H158 吊胸9:0L5B m9:015E dB09;0160 3909:0162 3B09:0163 »B09:0164 MB09;0166JB09!0168 G-015000 01 02 03 040E 0D 0C 0D 0AP50906 07-08 09 0A OB 0C 0D 0E 0F03 07-06 05 04 03 02 01 加UUUUUUUCCOTOOOOOOONNONsun DU5850 CKUF CL.SI CD!】&qu
13、ot;h SIDI01SEr!HProgran terninated normally-D1000:5050 5B6E1000:5050 00 01 02 03 04 05 06 07-08 09 0A 0B 00 0D 0E 0F10O»:C060 0E 0D 0C OB 0A 09 OS 07-06 05 04 03 02 01 00(b) 用串傳送指令MOVSB,把數(shù)據(jù)塊傳送到15150H開始的區(qū)域,該程序從存CS:0200H開始輸入。 檢查程序最后的執(zhí)行結(jié)果,可用"D"命令,例如:-D1000: 5150ZPPEA: MOVMOVDI, ALINCSIIN
14、CDILOOPPPEAINT20HC;WV1NDOWSsystcm32knid.exe - debug«-0150Proy»*an teFnin&ted no>«mAlls>D1000:5050 506E1000:505000 01 02 03 04 05 06 07-08 09 加 0B 0C 0D 0E 0F14MMM0W_Qfr-W-aC剛 QA QB (M Q27K M_U2Q3-MQa-A 0200BB09:02M0KB09:02030B09:02050B09i0207HB09:020ABB09:02MDHB09:0210009:02
15、11OB09:0212BB09:0214BB09:0216PG-0200MOU MOUMOU MOUMOU MOUCLDAX)加® DS.AX ES.fiX$U0 DI.5150 CX.IFMOUSBLOOP 0211I NT 20MOUSB200XX 2F1 AA05 1 XSSIIX adesdcMMMMMMCRIVI?v7 c/QProg'pan tevmini&ted novnall-D1000:5150 51&E1000:5150 00 01 02 03 04 05 06 07-08 09 OA 0B 0C OD 0E 0F 1000:5160 0E
16、 0D 0C 0B 0A 09 08 07-06 05 04 03 02 &1 00(c) 用重復(fù)串操作指令“REP MOVSB"把數(shù)據(jù)塊傳送到15250H開始的區(qū)域。該程序從CS: 250H地址開始輸入。 檢查程序的最后執(zhí)行結(jié)果時,可用:-D1000: 5250HC; WINDOWS syst e m32c md.exe - debug0B09:0216-G=0200Program terminated normally-51000:5150 516E1000:515000 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F 習(xí):冃甘南
17、qIM臨泅KHiProgram terminated normally-01000:5250 526E1000=5250 00 01 02 03 04 05 06 0?-08 09 0A OB 0C 0D 0E 0F 1000:5269 0E 0D 0C 0B 0A 09 08 07-06 05 04 03 02 01 00(d) 用串操作的減量工作方式,把數(shù)據(jù)塊傳送到25050H開始的區(qū)域。該程序從CS: 0300H開始輸入。 檢查程序的最后執(zhí)行結(jié)果,用D命令:-D2000: 5050/三、實驗儀器微機(jī)一臺。四、實驗步驟參照實驗一的步驟,按照本實驗程序的容,分別輸入各段程序,連續(xù)執(zhí)行程序,記
18、錄每個程序段的最后結(jié)果。若想把源數(shù)據(jù)塊重新 換一批數(shù)據(jù),可以用DEBUG的Fill命令填充新的數(shù)據(jù)。例如:-F1000: 00 L1F 33/從1000: 0000H開始的31個字節(jié)被替換成33Ho五、實驗預(yù)習(xí)要求1. 認(rèn)真閱讀DEBUG調(diào)試程序的命令說明。2. 仔細(xì)閱讀本實驗給出的程序段。3. 寫出每個程序段的結(jié)果數(shù)據(jù)(分析結(jié)果),并說明結(jié)果所在的位置(寄存器或存貯器)。六、實驗報告要求1. 整理每個程序段在實驗時的記錄容。2. 比較每個程序段的特點。3. 分析本次實驗出現(xiàn)的問題,找出問題所在。實驗三分支程序設(shè)計一、實驗?zāi)康?. 練習(xí)分支程序的編寫方法。2. 練習(xí)匯編語言程序的上機(jī)過程。二、
19、實驗原理1. 通過分支程序設(shè)計調(diào)試和運行,進(jìn)一步熟悉掌握匯編程序執(zhí)行的軟件環(huán)境。2. 通過分支程序的執(zhí)行過程,熟悉EDIT的使用,建立OBJ文件EXE文件的方法。三、實驗儀器I. 微機(jī)一臺。四、實驗容給出三個有符號數(shù),編寫一個比較相等關(guān)系的程序:(1)如果這三個數(shù)都不相等,則顯示0;(2)如果這三個數(shù)中有兩個數(shù)相等,則顯示1;(3)如果這三個數(shù)都相等,則顯示2;DEBUG:debugax,l bx,0 cx,-l dl,0 ax,bx 0111 dl axcx 0117 dl bxcx 011d dl dl,3 0124 dl dl.30 ah>02 2120nou mou mov mo
20、w cnp jne inc cmp jne inc cnp jne inc cmp jne dec addMOU int intB3F:0100 B3F:0103 IB3F:0106 IB3F:0109 IB3F:010B JB3F:010D )B3F:010F aB3F:0111 0B3F:0113 dB3F:0115B3F:0117 B3F:0119 JB3P:011B tB3F:eilD IB3F:B120 )B3F:0122B3F:8124 B3F:8127IB3F:R129 KB3F:812B !B3F:812Di;rogran terminated nomallyEDIT:haha
21、 -記事木文件0)編輻 格式©)查看辺 幫助®model small.stack.data codestartupnou ax ,1mow bx, 0nov cx,-1nou dl,0Icnp ax 9bxIjne oneline dllone: emp axcxIjne twoline dlItuo: emp bxycxI jne threeline dlI three: enp dlv3hjne rightIdee dl right; add dlt30hHnov ah v02h lint 21h H.exitSend執(zhí)行結(jié)果為:0五、實驗報告要求1. 該源程序在DEB
22、UG和EDIT兩種狀態(tài)下運行。2. 實驗報告中要有源程序和執(zhí)行結(jié)果。實驗四統(tǒng)計學(xué)生成績程序一、實驗?zāi)康倪M(jìn)一步掌握分支程序和循環(huán)程序的編寫方法。二、實驗原理設(shè)有10個學(xué)生的成績分別為56、69、84、82、73、88、99、63、100和80分。試編制程序分別統(tǒng)計低于60分、6069分、7079分、8089分.9099分及100分的人數(shù)存放到s5、s6. s7、s& s9及slO單元中。這一題目的算法很簡單,成績分等部分采用分支結(jié)構(gòu),統(tǒng)計所有成績則用循環(huán)結(jié)構(gòu)完成。程序框圖如下圖所示。三、實驗儀器1.微機(jī)一臺。初始化計數(shù)單元初始化循環(huán)計數(shù)值初始化首地址取一個成績S10+1修改地址循環(huán)結(jié)束?
23、程序框圖四. 實驗步驟輸入編寫的源程序,進(jìn)行調(diào)試。參考程序如下:;PROGRAM TITLE GOES HERE-result*DATAREASEGMENT;DEFINE DATA SEGMENTGRADEDW56,69,84,82,73.88,99,63,100,80S5DW0S6DW0S7DW0S8DW0S9DW0S10DW0DATAREA ENDSPROGNAM SEGMENT;DEFINE CODE SEGMENT9MAINPROCFAR;MAIN PART OF PROGRAMASSUME CS:PROGNAM, DS:DATAREASTART:;STARTING EXECUTION
24、 ADDRESS:SET UP STACK FOR RETURNPUSHDS;SAVE OLD DATA SEGMENTSUBAX.AX;PUT ZERO IN AXPUSHAX;SAVE IT ON STACK;SET DS REGISTER TO CURRENT DATA SEGMENTMOVAX,DATAREA;DATAREA SEGMENT ADDRMOVDS.AX;INTO DS REGISTER;MAIN PART OFPROGRAM GOES HEREMOVS5. 0;INITIALIZE COUNTERMOVS6. 0MOVS7. 0MOVS& 0MOVS9. 0MOV
25、S10. 0MOVCX, 10;INITIALIZE LOOP COUNT VALUEMOVBX. OFFSET GRADE;INITIALIZE FIRST ADDRCOMPARE:MOVAX, BX;GET A RESULTCMPAX, 60;60?JLFIVECMPAX, 70;70?JLSIXCMPAX, 80;80?JLSEVENCMPAX, 90;90?JLEIGHTCMPAX, 100;=100?JNENINEINCS10JMPSHORT CHANGE-ADDRNINE:INCS9JMPSHORT CHANGE-ADDREIGHT:INCS8JMPSHORT CHANGE-ADD
26、RSEVEN:INCS7JMPSHORT CHANGE-ADDRSIX:INCS6JMPSHORT CHANGE-ADDRFIVE:INCS5CHANGE-ADDR:ADDBX, 2LOOPCOMPAREMOV CX.6;在源程序中添加的輸出程序(開始)MOV SI,OFFSETS5AGAIN: MOV DXJSIAD DX.30HMOVAH.02HI NT21HMOVDL.20HMOVAH.02HI NT21HADDSI,2LOOP AGAIN(結(jié)束)RET;RETURN TO DOSMAINENDP;END OF MAIN PART OF PROGRAMPROGNAM ENDSEND START; END ASSEMBLY輸出結(jié)果:12 14 11五、實驗要求1.讀懂所給的程序。2. 編寫將存放于S5. S6、S7、S8、S9及S10單元中的數(shù)據(jù)在屛幕上顯示出來的部分程序。實驗五2、從槌盤上輸入-串字符到輸入緩沖區(qū),扶出耳中的大寫討和小寫字母,并分別統(tǒng)廿它們的個數(shù)結(jié)杲放到變畳numl和nuw2 中,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年造紙完成工段智能裝備合作協(xié)議書
- 浙教版數(shù)學(xué)七年級下冊《1.2 同位角、內(nèi)錯角、同旁內(nèi)角》聽評課記錄3
- 粵教版道德與法治八年級下冊5.3《憲法保障公民權(quán)利》聽課評課記錄
- 環(huán)境評估公司合并合同(2篇)
- 一年級蘇教版數(shù)學(xué)下冊《認(rèn)識圖形(二)》聽評課記錄
- 統(tǒng)編版八年級下冊道德與法治第三課 公民權(quán)利2課時 聽課評課記錄
- 部審人教版九年級數(shù)學(xué)下冊聽評課記錄27.2.1 第4課時《兩角分別相等的兩個三角形相似》
- 人教版數(shù)學(xué)七年級下冊聽評課記錄7.1.1《 有序數(shù)對》
- 商務(wù)星球版地理八年級下冊:7.5 《活動課 認(rèn)識南方地區(qū)和北方地區(qū)的區(qū)域差異》 聽課評課記錄
- 2022年新課標(biāo)八年級上冊道德與法治《第二單元 遵守社會規(guī)則 》聽課評課記錄(3、4、5課共8課時)
- 烹飪實訓(xùn)室安全隱患分析報告
- 《金屬加工的基礎(chǔ)》課件
- 運輸行業(yè)春節(jié)安全生產(chǎn)培訓(xùn) 文明駕駛保平安
- 體驗式沙盤-收獲季節(jié)
- 老年護(hù)理陪護(hù)培訓(xùn)課件
- 2019年420聯(lián)考《申論》真題(山西卷)試卷(鄉(xiāng)鎮(zhèn)卷)及答案
- 醫(yī)院投訴糾紛及處理記錄表
- YY/T 0698.5-2023最終滅菌醫(yī)療器械包裝材料第5部分:透氣材料與塑料膜組成的可密封組合袋和卷材要求和試驗方法
- 醬香型白酒工廠設(shè)計
- 【深度教學(xué)研究國內(nèi)外文獻(xiàn)綜述2100字】
- 牽引管道孔壁與管道外壁之間注漿技術(shù)方案
評論
0/150
提交評論