




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、實驗一乘法運算實驗、實驗目的:1、了解調(diào)試程序DEBUG的常用命令和功能。2、掌握多字節(jié)乘法運算程序的編寫方法。3、學會程序調(diào)試方法。、實驗原理序號命令功能0?顯示Debug命令列表。1a7匚編8086/8087/8088t己,憶碼。2c比較內(nèi)存的兩個部分。3d顯示部分內(nèi)存的內(nèi)容。4e從指定地址開始,將數(shù)據(jù)輸入到內(nèi)存。5f使用指定值填充一段內(nèi)存。6g運行在內(nèi)存中的可執(zhí)行文件。7h執(zhí)行十六進制運算。8i顯示來自特定端口的1字節(jié)值。9l將文件或磁盤扇區(qū)內(nèi)容加載到內(nèi)存。10m復制內(nèi)存塊中的內(nèi)容11/n為l或w命令指定文件,或者指定正在測試的文件的參數(shù)。12o向輸出端口發(fā)送1個字節(jié)的值。13p執(zhí)行循環(huán)
2、、重復的字符串指令、軟件中斷或子例程。14q停止Debug會話。15r顯示或改變一個或多個寄存器。16s在部分內(nèi)存中搜索一個或多個字節(jié)值的模式。17t執(zhí)行一條指令,然后顯示所有寄存器的內(nèi)容、所有標志的狀態(tài)和Debug下一步要執(zhí)行的指令的解碼形式。18u反匯編字節(jié)并顯示相應的原語句。19w將被測試文件寫入磁盤。20xa分配擴展內(nèi)存。21xd釋放擴展內(nèi)存。22xm映射擴展內(nèi)存頁。23xs顯示擴展內(nèi)存的狀態(tài)。三、實驗內(nèi)容:將兩個無符號數(shù)相乘,將結(jié)果數(shù)存入規(guī)定地址。被乘數(shù)和乘數(shù)的存放地址及數(shù)據(jù)如下:地址名稱而被乘數(shù)2000:00002000:00012A30乘數(shù)2000:00022000:000115
3、1B乘積2000:00042000:0007注意:數(shù)據(jù)低位在前,高位在后。四、實驗報告內(nèi)容:1、實驗用源程序:開機選擇"開始"一"運行"一輸入"command"一輸入"debug”調(diào)出debug應用程序。Debug源程序:D2000:0000E2000:00002A30151BD2000:0000A回車MOVAX,2000MOVDS,AXMOVAX,0000MOVBX,0002MULBXMOV0004,AXMOV0007,DXINT20HCtrl+M;查看部分內(nèi)存內(nèi)容;寫入數(shù)據(jù);查看輸入后的數(shù)據(jù);寫程序;讓AX乘以DX,結(jié)果
4、存入DX:AXGD2000:00002、實驗結(jié)果分析;正常中斷程序;退出編程,由鍵盤輸入;運行程序;查看程序運行結(jié)果輸出結(jié)果顯示為72-6118-05結(jié)果正確。實驗中遇到的問題,在debug里輸入程序要細心,如果輸入有誤為保證結(jié)果的正確應重新打開debug程序。實驗中發(fā)現(xiàn)輸入的大小寫對程序的結(jié)果沒有影響。實驗二除法運算實驗實驗目的:1、了解調(diào)試程序DEBUG的常用命令和功能。2、掌握多字節(jié)除法運算程序的編寫方法。3、學會程序調(diào)試方法。實驗內(nèi)容:將兩個無符號數(shù)相除,將結(jié)果數(shù)存入規(guī)定地址被除數(shù)和除數(shù)的存放地址及數(shù)據(jù)如下:名稱地址數(shù)據(jù)被除數(shù)除數(shù)2000:001000132000:001400152A
5、3B4C5D7C5D商余數(shù)2000:001600172000:00180019數(shù)據(jù)低位在前,高位在后。三、實驗報告內(nèi)容:1、實驗用源程序按照實驗一中的方法調(diào)出debug:Debug源程序:D2000:0000E2000:00005D7C5D4C3B2AD2000:0000AMOVAX,2A3BMOVDX,4C5DMOVBX,7C5DMOVAX,0010MOVDX,0012MOVBX,0014;查看部分內(nèi)存內(nèi)容;寫入數(shù)據(jù);查看輸入后的數(shù)據(jù);寫程序DIVBX;被除數(shù)DX:AX除BX,商存入AX,余數(shù)存到DXMOV0016,AXMOV0018,DXINT20HCtrl+MGD2000:00002、實
6、驗結(jié)果分析;正常中斷程序;退出編程,由鍵盤輸入;運行程序;查看程序運行結(jié)果實驗正確結(jié)果:7D-FF9E-11實驗中應注意的問題,在輸入數(shù)值時應高低位顛倒輸入,程序運算時是先進后出。遇到的問題:當輸入正序時得到的結(jié)果是EE-56E7-6F(為錯誤結(jié)果)實驗三數(shù)據(jù)轉(zhuǎn)換實驗一、實驗目的:1、進一步掌握DEBUG使用方法。2、掌握數(shù)制轉(zhuǎn)換程序的編寫方法。3、學會調(diào)試循環(huán)程序和子程序方法。二、實驗內(nèi)容:將單元2000:0000003中的8位十進制數(shù)35,26,38,74(數(shù)據(jù)高位在前,低位在后),轉(zhuǎn)換成二進制數(shù),存入單元2000:00040007中。在編寫程序時,要充分利用循環(huán)程序和調(diào)用子程序的方法來簡
7、化程序設計,并注意循環(huán)的地址及子程序入口地址的設置方法。三、實驗報告內(nèi)容:1、實驗用源程序STACKSSEGMENTSTACK;堆棧段DW128DUP;只有128個竽節(jié)STACKSENDSDATASSEGMENT;數(shù)據(jù)段D1DB10;D2DB;D3DB38H;D4DB74HDATASENDSCODESSEGMENT;代碼段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVAX,2000HMOVDS,AXMOVAX,2635HMOVDI,0000HMOVDI,AXMOVDI,0002HMOVAX,7438HMOVDI,AXMOVBL,1
8、0MOVBX,0010MOVBX,ALDO1MACROADD1,ADD2MOVSI,CXMOVDI,0000HMOVCX,4NEXT:MOVAL,DISHRAL,4MULBLPUSHAXMOVAL,DIANDAL,0FHPOPDXXORAH,AHXORDH,DHADDAL,DLMOVSI,CL+4MOVDI+4,ALINCDILOOPNEXTENDMDO10H4HDO115DO126DO137MOVAX,4C00HINT21HCODESENDSENDSTART;退出程序?qū)嶒災康?1、掌握宏匯編語言源程序的編輯方法。2、學會用MASM及LINK程序?qū)⒃闯绦蛭募D(zhuǎn)換成可執(zhí)行文件的方法。3、學會調(diào)用
9、DOS軟中斷功能來顯示字符串的方法。實驗步驟:1、 利用全屏幕編輯程序來編輯源程序,文件擴展名為ASM,操作如下:A>NE盤號:文件名,ASM2、 利用MASM程序?qū)⒃闯绦蛭募R編成目標文件,目標文件擴展名為OBJ,操作如下:A>MASM盤號:文件名,ASM盤號:文件名,OBJ在編輯中發(fā)生錯誤,要用NE程序來修改源程序文件。3、 用LINK程序?qū)⒛繕宋募D(zhuǎn)換成可執(zhí)行文件,可執(zhí)行文件擴展名為EXE,操作如下:A>LINK盤號:文件名.OBJ盤號:文件名.EXE三、4、在DOS環(huán)境下執(zhí)行可執(zhí)行文件。實驗內(nèi)容:按照宏匯編語言源程序格式的要求,編寫一個文件,顯示如下字符串:Ilike
10、microcomputerverymuch.四、實驗報告內(nèi)容:1、實驗用源程序STACKSSEGMENTSTACKDW128DUP(?)STACKSENDS灘棧段;只有128個字節(jié);數(shù)據(jù)段DATASSEGMENTMSG1DB'Ilikemicrocomputerverymuch.','$'DATASENDSCODESSEGMENT;代碼段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVDX,OFFSETMSG1MOVAH,9INT21HMOVAX,4C00H;退出程序INT21HCODESENDSST
11、ARTEND2、實驗結(jié)果分析實驗顯示出了“Ilikemicrocomputerverymuch.”實驗五顯示字符串實驗一、實驗目的:1、進一步掌握字符串的顯示方法。2、掌握鍵盤信號的輸入和分析方法。3、進一步熟悉源程序的編寫方法。二、實驗內(nèi)容:先使計算機提問下列問題:Doyoulikethislesson(Y/N)?如果用戶回答N,計算機回答:Youshouldchangeyourinterest.如果用戶回答Y,計算機回答:Youaregoodstudent.三、實驗報告:1、實驗用源程序:STACKSSEGMENTSTACK;堆棧段DW128DUP(?);注意這里只有128個字節(jié)STACK
12、SENDSDATASSEGMENT;數(shù)據(jù)段MSG1DBMSG2DBMSG3DBDATASENDSCODESSEGMENTASSUMESTART:MOVMOV;請在這里添加您的代碼MOVMOVINT:MOVINT:CMPJZYCMP'Doyoulikethislesson(Y/N)?','$'10,'Youshouldchangeyourinterest.','$10,'Youaregoodstudent.','$'代碼段CS:CODES,DS:DATAS,SS:STACKSAX,DATAS;初始化DS,AX
13、DX,OFFSETMSG1AH,921HAH,121HAL,'Y'1AL,'y'CMPAL,'N'JZY2CMPAL,'n'JZY2MOVDX,OFFSETMSG3MOVAH,9INT21HJMPDONEMOVDX,OFFSETMSG2MOVAH,9INT21HMOVAX,4C00H;退出程序INT21HY1:Y2:DONE:CODESENDSENDSTART實驗六數(shù)據(jù)排序?qū)嶒炓?、實驗目的?、掌握比較數(shù)據(jù)大小的方法。2、掌握由大到小排列數(shù)據(jù)的方法。3、掌握顯示某一數(shù)據(jù)區(qū)的方法。二、實驗內(nèi)容:先在數(shù)據(jù)區(qū)輸入十個隨機排列的數(shù)據(jù),然后
14、用氣泡排序法把數(shù)據(jù)由大到小排列好,并顯示在屏幕上。然后改變數(shù)據(jù)的內(nèi)容,再用同樣的程序來排列,并顯示出結(jié)果。第一次排列的數(shù)據(jù)為:41H,70H,03H,53H,88H,16H,20H,3FH,74H,8EH第二次排列的數(shù)據(jù)為:10H,78H,23H,04H,1AH,7AH,35H,4BH,9FH,0BH顯示結(jié)果:班級,學號,名字排序好的數(shù)據(jù)。三、實驗報告內(nèi)容:1、實驗用源程序STACKSSEGMENTSTACK;堆棧段DW128DUPSTACKSENDSDATASSEGMENT;數(shù)據(jù)段MSG1DB'Doyoulikethislesson(Y/N)?','$'MSG
15、2DB10,'Youshouldchangeyourinterest.','$'MSG3DB10,'Youaregoodstudent.','$'DATASENDSCODESSEGMENT;代碼段ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATAS;初始化MOVDS,AXMOVDX,OFFSETMSG1MOVINTMOVINTCMPJZCMPJZCMPJZCMPJZY1:MOVMOVINTJMPY2:MOVMOVINTDONE:MOVINTCODESENDSENDAH,921HAH,
16、121HAL,'Y'Y1AL,'y'Y1AL,'N'Y2AL,'n'Y2DX,OFFSETMSG3AH,921HDONEDX,OFFSETMSG2AH,921HAX,4C00H;退出程序21HSTART實驗七顯示字符串實驗一、實驗目的:1、掌握顯示菜單的方法。2、學會分析鍵盤輸入數(shù)據(jù)的方法。3、掌握編寫宏指令和宏調(diào)用的方法。二、實驗步驟:先在屏幕上顯示下列菜單Whatitemdoyouwanttoknow?1. Myname2. Myage3. Myinterestingwork4. MyfamilyPleaseinputthen
17、umber:然后根據(jù)輸入的數(shù)據(jù),分別回答你的姓名,年齡,感興趣的工作和家庭成員,具體回答內(nèi)容由同學自己擬定。在程序中盡量采用宏指令,并注意程序設計的技巧。三、實驗報告內(nèi)容:1、實驗用源程序STACKSSEGMENTSTACK;堆棧段DW128DUPSTACKSENDSDATASSEGMENT;數(shù)據(jù)段M01DB'Whatitemdoyouwanttoknow?','$'M02DB10,28DUP(8),'1.Myname','$'M03DB10,28DUP(8),'2.Myage','$'M04DB1
18、0,28DUP(8),'3.Myinterestingwork','$'M05DB10,28DUP(8),'4.Myfamily','$'M06DB10,28DUP(8),'Pleaseinputthenumber:','$'M07DB10,28DUP(8),'LiJuan','$'M08DB10,28DUP(8),'22','$'M09DB10,28DUP(8),'playballs.','$'M10D
19、B10,28DUP(8),'Myparentsandme.','$'DATASENDSCODESSEGMENT;代碼段ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVMOVAX,DATASDS,AXPRTMACROXMOVDX,OFFSETXMOVAH,9INTENDM21HIPTMACROMOVAH,1INTENDM21HIFGOMACROX,YCMPAL,XJZENDMYPRTM01PRTM02PRTM03PRTM04PRTM05PRTIPTM06IFGO'1',Y1IFGO'2',丫2IF
20、GO'3',丫3IFGO'4',Y4Y1:PRTM07JMPDONEY2:PRTM08JMPDONEY3:PRTM09JMPDONEY4:DONE:PRTM10MOVAX,4C00HINT21HCODESENDSENDSTART實驗八時鐘顯示實驗;退出程序?qū)嶒災康模?、了解計算機中時鐘數(shù)據(jù)的存取方法。2、掌握時鐘顯示的編寫方法。3、進一步掌握BIOS和DOS中子程序的調(diào)用方法。實驗內(nèi)容:在計算機屏幕的右上角顯示時鐘值,直到按下一個鍵再返回DOS二、實驗報告內(nèi)容:1、實驗用源程序:DATASEGMENTWHOURDB0;秒表的時、分、秒、毫秒WMINDB0WSEC
21、DB0WMSECDB0OLD1CHDD0SIGNALDB0COUNTDW0,CHOURDB0;鬧鐘的時、分、秒CMINDB0CSECDB0)SPACEDB2000DUP('')PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')DB6DUP(''),0BAH,26DUP(20H),0BAH,6DUP('')DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')DBUFFERDB8DUP(':'),
22、12DUP('')DBUFFER1DB20DUP('')DBUFFER2DB11DUP(':'),15DUP('')STR1DB0DH,0AH,'INPUT''M''TONEXT-STATE,INPUT''Q''EXIT:$',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKS)PUSHA1MACROPUSHDSPUSHAXPUSHBXPUSHCXP
23、USHDXENDMPOPA1MACROPOPDXPOPCXPOPBXPOPAXPOPDSTOENDMDATEPROCNEAR;圖形化界面設計START:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,0003H;設百顯小方式為40*25彩色文木方式INT10HLEADX,STR1;顯示提示信息MOVAH,9INT21HMOVBP,OFFSETSPACEMOVDX,0B00HMOVCX,1000MOVBX,0000HMOVAX,1300HINT10H;顯示子符串,止義顯小方式主程序LP1:MOVAH,1;從鍵盤輸入單個字符INT21HCMPAL,'M'AL=
24、9;M'?JNELP5CALLDATE;顯示系統(tǒng)日期LP2:MOVAH,1;從鍵盤輸入單個字符INT21HCMPAL,'M'AL='M'?JNELP5CALLTIME;顯示系統(tǒng)時間LP3:MOVAH,1;從鍵盤輸入單個字符INT21HCMPAL,'M'AL='M'?JNELP4CALLSTOPWATCH;顯示秒表LP4:MOVAH,1;從鍵盤輸入單個字符INT21HCMPAL,'M'AL='M'?JNELP5CALLRINGLP5:CMPAL,'Q'AL='Q'
25、;?JNELP1MOVAH,4CH;返回DOS狀態(tài)INT21H;顯示日期子程序DISPLAY9:MOVAH,2AH;取日期CX:DH:DL=年:月:日AL=星期INT21HMOVSI,0MOVAX,CXMOVBX,100DIVBLMOVBL,AHCALLBCDASC1;日期數(shù)值轉(zhuǎn)換成相應的ASCII碼字符MOVAL,BLCALLBCDASC1INCSIMOVAL,DHCALLBCDASC1INCSIMOVAL,DLCALLBCDASC1MOVBP,OFFSETDBUFFER1MOVDX,001DH;;L;,MOVCX,20MOVBX,004EHMOVAX,1301HINT10HMOVAH,02
26、H,設置光標位置;222MOVDX,0900HMOVBH,0INT10HMOVBX,0018HREPEA:MOVCX,0FFFFH,延時REPEAT:LOOPREPEATDECBXJNZREPEAMOVAH,01H,讀鍵盤緩沖區(qū)字符到AL寄存器INT16HJEDISPLAY1JMPLP2MOVAX,4C00HINT21HRETDATEENDPJ;顯小時間子程序MOVAH,2CH;取時間CH:CL=時:分DH:DL=#:1/100#INT21HMOVAL,CHCALLBCDASC;將時間數(shù)值轉(zhuǎn)換成ASCII碼字符INCSIMOVAL,CLCALLBCDASCINCSIMOVAL,DHCALLBC
27、DASCMOVBP,OFFSETDBUFFERMOVDX,003AHMOVCX,20MOVBX,004EHMOVAX,1301HINT10HMOVAH,02HMOVDX,0310HMOVBH,0INT10HMOVBX,0018HRE:MOVCX,0FFFFHREA:LOOPREADECBXJNZREMOVAH,01HINT16HJEDISPLAY1JMPLP3MOVAX,4C00HINT21HRETTIMEENDP顯/、秒表了程jSTOPWATCHPROCNEARDISPLAY2:PUSHA1MOVSI,0MOVBX,100DIVBL;CALLWATCHDISP3:MOVAX,DATAMOVDS,AXMOVAL,WHOURCALLBCDASC2;將時間數(shù)值轉(zhuǎn)換成ASCII碼字符INCSIMOVCALLINCMOVCALLMOVINCCALLMOVMOVMOVMOVMOVINTMOVMOVMOVINTMOVRE2:MOVREA2:LOOPDECJNZMOVINTJEPOPA1JMPMOVINTPUSHA1MOVMOVDIV;MOVAH,CH;INT21HMOVMOVMOVCALLINCMOVAL,WMINBCDASC2SIAL,WSECBCDASC2AL,WMSECSIBCDASC2BP,OFFSETDBUFFER2DX,0037HCX,20BX,004EHAX,1301H10
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自愿咨詢檢測管理辦法
- 成本估算項目管理辦法
- 壽險從業(yè)出勤管理辦法
- 肺功能護理課件
- 育嬰員初級職業(yè)道德課件
- 氯堿電解工藝培訓課件
- 肩周炎中醫(yī)課件
- 肥皂泡泡課件介紹
- 2025年防殺病毒軟件項目立項申請報告模板
- 手衛(wèi)生培訓課件
- 2025年鄉(xiāng)村全科助理醫(yī)師助理醫(yī)師資格證考試必刷題庫(500題)
- 景區(qū)抽成合同協(xié)議
- 網(wǎng)絡安全知識手冊
- 鐵路公司質(zhì)量管理制度
- 物業(yè)公司接管公寓樓項目工作時間倒推計劃表(T日為入駐日)
- DB1304T 500-2025民用水表、電能表、燃氣表計量糾紛處理規(guī)范
- 湖南省長沙市寧鄉(xiāng)市2025年五年級數(shù)學第二學期期末統(tǒng)考試題含答案
- 內(nèi)蒙古赤峰市松山區(qū)2024-2025學年九年級上學期期末化學試題(含答案)
- 軟件質(zhì)量保證措施及案例
- 粉塵防爆培訓教育
- 勞務派遣許可申請書
評論
0/150
提交評論