版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
微機系統(tǒng)及應用試驗試驗一DEBUG的啟動及其根本命令的使用試驗內容:AXBX的內容進展交換。請用堆棧作為兩存放器交換內容的中間DEBUG調試程序進展匯編與調試。6所要求的程序過程〔要求包含源程對執(zhí)行結果進展分析。程序清單:STACKSEGMENTSTACKDB2003HDUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:MOVAX,STACKMOVSS,AXMOVSP,2000HMOVAX,3000HMOVBX,5000HPUSHAXMOVAX,BXPOPBXMOVAH,4CHINT21HCODEENDSENDSTART運行及調試:進入調試后,運行正常。進展反匯編調試:通過追蹤指令觀看SP、AX、BX變化可知對SP、AX、BX賦值正確。AX入棧后用顯示內存單元內容的命令D觀看堆棧段中SP1FFF,2000的內容[1FFF]=00 ,[2000]=30說明已經AX=3000結果可以看出:AX=5000,BX=3000結果完成正確!試驗二內存操作數及尋址方法試驗內容:AX和BX的內容進展交換。請用堆棧作為兩存放器交換內容的中間存儲單元,用字處DEBUG調試程序。DEBUG調試傳送完畢時,AX中的內容是什么。程序清單如下:DATASEGMENTORG0300HADB12H,23H,34H,45H,56H,67H,78H,89H,9AHDATAENDSPROGNAMSEGMENTASSUMECS:PROGNAM,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,BXMOVAX,0300HMOVAX,[0300H]MOVAX,[BX]MOVSI,2MOVAX,0001[BX]MOVAX,[BX][SI]MOVAX,0001[BX][SI]MOVAH,4CHINT21HPROGNAMENDSENDSTART對源程序文件匯編,生成目標文件將目標文件LINK后,生成可執(zhí)行文件如下:debug調試單步追蹤執(zhí)行:AX=0B91,為數據段的首地址。AX不變,將數據段的首地址送至DS。執(zhí)行MOV AX,BXAX同BX,清零。執(zhí)行MOV AX,0300HAX=0300執(zhí)行MOV AX,[0300H]AX=0300可知MOV AX,0300H 與MOV AX,[0300H] 得到同樣結果AX0000.將原文中的指令清單改為DATA SEGMENTA DB ORG0300HB DB 0BH,0CHDATAENDSPROGNAMSEGMENTASSUMECS:PROGNAM,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,BXMOV AX,0300HMOV MOV AX,[BX]MOV SI,2MOV AX,0001[BX]MOV AX,[BX][SI]MOV MOV AH,4CHINT 21HPROGNAM ENDSTART單步執(zhí)行后:可知:隨著程序進展,AX發(fā)生變化。試驗內容X、Y、Z、R、W均16位帶符號數單元的地址。(1)Z←W+〔Z-X〕←〔X〕/〔Y,←余數程序結果的分析等1、程序說明。說明程序的功能、構造。2、調試說明。包括上機調試的狀況、上機調試步驟、調試所遇到的問題是如何解決的,并對調試過程中的問題進展分析,對執(zhí)行結果進展分析。3、寫出源程序清單和執(zhí)行結果。(1)Z←W+〔Z-X〕匯編程序清單DATASEGMENTXDW10ZDW20WDW10DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,ZSUBAX,XADDAX,WMOVZ,AXMOVAH,4CHINT21HCODEENDSENDSTART調試:使用追蹤指令T單步執(zhí)行:20放入AX中。AX=0014H執(zhí)行結果AX=0014H-000AH=000A,結果正確。執(zhí)行結果顯示:AX=0014H,即為20,正確。然后將結果保存至Z存儲字中。最終觀看數據組中的數據;顯示為X=10,Z=20,W=10。程序運行結果正確匯編程序清單:DATASEGMENTWDW100XDW20RDW30ZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,WMOVBX,XADDBX,6SUBAX,BXMOVBX,RADDBX,9SUBAX,BXMOVZ,AXMOVAH,4CHINT21HCODEENDSENDSTART對程序進展匯編后調試:單步執(zhí)行:此時,對DS的段基址賦值為數據組的首地址此時,對AXBX100,20←〔X〕/〔Y,←余數匯編程序清單:DATASEGMENTXDW10HZDW?WDW10HYDW3HRDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,WIMULXMOVBX,YADDBX,6IDIVBXMOVZ,AXMOVR,DXMOVAH,4CHINT21HCODEENDSENDSTART編譯執(zhí)行結果如下:單步執(zhí)行結果如下:z001CHR指向的0004H。試驗四查表程序設計試驗內容:ASCII碼,并將結果ASCI單元中。匯編程序清單:DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37HDB HEX DB 0AHASCI DB ?DATA ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETTABLEMOVAL,HEXXLATMOVASCI,ALMOVAH,4CHINT21HCODEENDSENDSTARTdebug調試t追蹤指令觀看數據變化0AHASCII41。試驗五系統(tǒng)功能調用試驗內容:試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。匯編程序清單:CODESEGMENTASSUMECS:CODESTARTMOVAH,1INT21HSUBAL,20HMOVDL,ALMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTARTdebug狀態(tài)調試結果正確。試驗六分支程序設計:試驗內容結果。即: 1 y=0x=0-1x<0匯編程序清單:DATASEGMENTTABLEDB5,-4,0,3,100,-51G DB”1”,13,10,”$”Z DB”0”,13,10,”$”L DB”-1”,13,10,”$”DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,TABLEMOVCL,6COMP:CMPBYTEPTR[SI],0JGGREATJZEQUALLEADX,LJMPSHORTDISPGREAT:LEADX,GJMPSHORTDISPEQUAL:LEADX,ZDISP:MOVAH,9INT21HINCSILOOPCOMPMOVAH,4CHINT21HCODEENDSENDSTART對源程序進展編譯并進入調試狀態(tài)分布調試:經過第一次循環(huán),DX0006H即為數據段中ZEA1SI1,CL1。以下循環(huán)原理同上。全部運行的:程序運行正確。思考題:DEBUG調試程序觀看并分析。答:程序中的原始數據是以補碼的十六進制的形式存放在數據區(qū)中的。試驗七循環(huán)程序設計試驗內容與要求1. 編制程序計算S=1+23+34+45+……+N 〔N+1〕+……直到N〔N+1〕大于20071所示。1000。DEBUG調試狀態(tài)下進展,包括匯編程序、運行程序、檢查結果。程序框圖7.1程序框圖試驗步驟試驗內容一:按程序流程圖編制試驗程序。輸入源程序。試驗內容二:輸入源程序并檢查無誤。3000H100個存儲單元用E命令輸入任意數。DEBUGGT命令單步跟蹤執(zhí)行。1的程序清單:DATASEGMENTSTR DB5DUP(0)DB”$”DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,1MOVBL,2LOP: AL,BLINCBLMULBLADDDX,AXCMPAX,200JBELOPMOVAX,DXLEADI,STR+4LOP2: MOVCL,10DIVCLADDAH,30HMOV[DI],AHANDAX,00FFHDECDICMPAL,0JNELOP2LEADX,STRMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART程序運行及結果:程序循環(huán)體如以下圖:完畢循環(huán):10取余法將計算結果用十進制在屏幕上顯示:DS的存儲:試驗內容與要求1000。試驗步驟試驗內容二:輸入源程序并檢查無誤。3000H100個存儲單元用E命令輸入任意數。DEBUGGT命令單步跟蹤執(zhí)行。匯編程序清單:CODESEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0PUSHAXMOVBX,3000HMOVCL,100LOP: MOVBYTEPTR[BX],0INCBXLOOPLOPMOVAH,4CHINT21HCODEENDSENDSTART運行及調試:E命令修改:T追蹤:50ERADEERADE50RANK學號挨次把名次從終端上顯示出來。提示:MAIN功能:依據輸入的學生成績,計算并顯示出學生名次。INPUT功能:接收一個班級學生的成績,各成績之間用空格隔開。RANKP功能:計算一個班級學生的名次。OUTPUT功能:輸出〔顯示〕一個班級的學生名次DECIBIN功能:十進制轉換二進制,存入BXBINDEC功能:十進制轉換二進制,并在屏幕上顯示。DEC_DIV功能:BX的內容除以CX的內容,并在屏幕上顯示一位商。源程序:DATASEGMENTGRADEDW50DUP()RANKDW50DUP()ENTER DB”Grades:”,24H ;提示用戶輸入成績ERRORDB13,10,”Error!”,13,10,24H ;用戶輸入的格式出錯SHOW DB”Rank: ”,24HCOUNTDW0 ;統(tǒng)計輸入的成績個數CRDB 13,10,24h ;換行DATAENDSSTACKSEGMENTSTACKDB400DUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:
MOV AX,DATAMOV DS,AXMOV ES,AXCALLINPUTCALLRANKPCALLOUTPUTMOV AH,01HINT 21HMOV AX,4CHINT 21H;INPUT程序段;以學號為序從鍵盤輸入一個班的學生成績,各個成績之間用逗號格開,最終以回車符完畢。;然后把一個班的成績存入grade數組。INPUTPROCNEARLEA DX,ENTERMOV AH,9INT 21H ;提示用戶輸入MOV SI,0MOV COUNT,0 ;0_ENTER: ;對用戶的輸入進展監(jiān)視,對錯誤輸入馬上進展出錯處理CALLDECIBIN;調用DECIBIN;對用戶輸入進展處理INCCOUNTCMPDL,”,”;與”,”比較,一樣則保存成績,不同出錯JE_STORECMPDL,0DH;與回車鍵進展比較,回車則成績輸入完畢JE_ENDENTERJNE_ERROR;出錯處理:顯示出錯信息_STORE:MOVGRADE[SI],BX;保存成績ADDSI,2JMP_ENTER_ERROR:LEADX,ERRORMOVAH,9INT21H_ENDENTER:MOVGRADE[SI],BX;用戶完畢成績輸入MOVDX,OFFSET CR;換行MOVAH,9INT21HRETINPUTENDP;RANKP程序段;grade數組取得一個班的成績,以學號為序計算出該班每個學生的名次存入rank數組。;算法為:一個學生的名次等于成績高于該生的學生人數加1RANKPPROCNEARMOV DI,COUNTMOV BX,0_LOOP:_NEXT1:_JUMP:
MOV AX,GRADE[BX] ;取學生成績MOV WORD PTR RANK[BX],0;初始化RANK[BX]的值為0MOV CX,COUNTCMPJGAX,[SI]CMPJGAX,[SI]_JUMP;比較兩個成績;成績大于被比較的跳過INCWORDPTRRANK[BX]ADDSI,2;取下一個被比較成績的地址LOOP_NEXT1
ADD BX,2 ;下一個成績DEC DI ;1JNE RET;OUTPUT程序段;rank數組取得一個班的學生名次。把一個班的學生名次以學號為序在終端顯示出來;binidec,rank數組中的二進制數轉成十進制數并在終端上顯示出來.調用子模塊crlf完成回車,換行功能.OUTPUTPROCNEARLEA DX,SHOWMOV AH,09HINT 21H_NEXT2:_NOCOMMA:
MOV SI,0MOV DI,COUNTMOVBX,RANK[SI];將成績保存到BX中CALLBINIDEC;調用BINIDECCMPDI,1;11則不顯示”,”JE_NOCOMMAMOVDL,”,”MOVAH,02HINT21H;顯示”,”ADD SI,02H ;取下一個成績名次DEC DIJNZ _NEXT2MOVDX,OFFSETCR;換行MOVAH,9OUTPUTENDP
INT RET;DECIBIN程序段;從鍵盤取得一個十進制數。把該數轉換成二進制數并存入BX存放器中。DECIBINPROCNEARMOV BX,0_CATCH:MOVAH,01HINT21HMOVDL,ALSUBAL,30HJL_ENDCHANGE;小于則完畢SFVOF=1CMPAL,39HJGCBW_ENDCHANGE;大于則完畢XCHG AX,BX ;AX與BX值交換MOV CX,10MUL CX ;無符號數乘法指令,(AX)< (AL)*(CX)_ENDCHANGE:DECIBINENDP
XCHG AX,BXADD BX,AX ;(BX)< (BX)+(AX)JMP _CATCHRET;BINIDEC程序段;bx10dec_div來作除法運算并顯示字符。BINIDECPROCNEARPUSH BXPUSH CXPUSH SIPUSH DI ;壓棧MOVCX,10CALLDEC_DIV;調用DEC_DIVMOVCX,1CALLDEC_DIV;調用DEC_DIVPOPDIPOPSIPOPCXPOPRETBX ;出棧BINIDECENDP;DEC_DIV程序段;bx中二進制數除以相應的十的冪,并在屏幕上顯示一位商。余數保存在bx存放器中。MOVAX,BXMOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDL,ALADDDL,30HMOVAH,02HDEC_DIVENDPINTRET21HENDSTART運行結果:;顯示1設AX存放器中存放著4位BCD碼BCDTO2 PROC NEARPUSH BXPUSH CXPUSH DXMOV BX,AX AXBCDBXMOV AX,0 0RETRY:PUSHCXMOVCL,4ROLRETRY:PUSHCXMOVCL,4ROLBX,CLPOPCXMULW10PUSHBX1BCDBXAXx10->DX:AXANDBX,000FHBX1BCDADDAX,BXAXPOPBXLOOPRETRYPOPDXPOPCXPOPBXRETBCDTO2 ENDPAXBCDW1000 DW 1000,100,10,1 ;十進制數千,百,十,個位權值口參數:AX=壓縮BCD碼AX2TOBCD PROC NEARXOR BX,BX MOV SI,OFFSETW1000 ;權值首地址送SIMOV CX,4 ;循環(huán)次數4->CXRETRY:PUSH CXMOV CL,4SHL BX,CLMOV DX,0 ;DX:AXDIV WORDPTR[SI] AX,DXOR BX,AX BCDMOV AX,DX POP CXADD SI, 2 LOOP RETRYMOV AX, BX RETAX2TOBCD ENDP試驗九綜合程序設計試驗內容:設有十個學生成績分別是76,69,84,90,73,88,99,63,10080分。試編制一個子程序,統(tǒng)計低于60分,60~69分,70~79分,80~89分,90~99100編程提示:1、成績分等局部承受分支構造,統(tǒng)計全部成績則用循環(huán)構造完成,顯示統(tǒng)計結果承受DOS功能調用。2、統(tǒng)計學生成績和顯示統(tǒng)計結果兩局部內容用子程序構造來完成。程序框圖:匯編程序清單:DATASEGMENTGRADEDB76,69,84,90,73,88,99,63,100,80STR1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版住宅小區(qū)物業(yè)合同轉讓及社區(qū)養(yǎng)老服務協(xié)議3篇
- 2025年度二零二五林業(yè)苗木培育及采購合作協(xié)議4篇
- 二零二五版租賃房屋租賃合同網絡安全保障協(xié)議3篇
- 二零二五年頂樓住宅買賣合同協(xié)議6篇
- 2025版綠色生態(tài)園區(qū)綠化養(yǎng)護工程承包合同3篇
- 二零二五年度智慧停車設施運營服務合同4篇
- 個人二手家具買賣合同2024年度交易規(guī)范3篇
- 棗莊建筑公司2025年度碎石采購合同2篇
- 二零二五版二手房裝修改造合同范本
- 2024酒店蔬菜供貨合同
- GB/T 45120-2024道路車輛48 V供電電壓電氣要求及試驗
- 財務報銷流程培訓課程
- 24年追覓在線測評28題及答案
- 春節(jié)慰問困難職工方案春節(jié)慰問困難職工活動
- 2024年全國職業(yè)院校技能大賽高職組(藥學技能賽項)考試題庫(含答案)
- 2024至2030年中國氫氧化鈣行業(yè)市場全景調查及發(fā)展趨勢分析報告
- 魚菜共生課件
- 《陸上風電場工程概算定額》NBT 31010-2019
- 初中物理八年級下冊《動能和勢能》教學課件
- 心肌梗死診療指南
- 原油脫硫技術
評論
0/150
提交評論