版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)4 排序和檢索程序設(shè)計(jì)一實(shí)驗(yàn)?zāi)康模海?)掌握常用的輸入輸出系統(tǒng)功能調(diào)用。(2)學(xué)習(xí)邏輯運(yùn)算指令的用法。 (3) 掌握排序和檢索程序的設(shè)計(jì)使用方法。二實(shí)驗(yàn)內(nèi)容: 編寫程序1:將內(nèi)存中10個(gè)無符號(hào)數(shù)(長(zhǎng)度為2字節(jié))由小到大排序。編寫程序2:在上述已排好序的數(shù)據(jù)區(qū)里查找某一個(gè)數(shù)。若找到,顯示其在數(shù)據(jù)區(qū)中 的位置,否則顯示N字符。編寫主程序,通過調(diào)用程序1和程序2,實(shí)現(xiàn)排序和檢索。1、編譯: c:masm .asm2、鏈接: c:link .obj3、調(diào)試: c:debug .exe4、運(yùn)行: c: .exe(1)1、編譯: C:masm 4-1.asmC:masm>
2、;masm 4-1Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename 4-1.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF:4-1.ASM(25): warning A4031: Operand types must match4-1.ASM(80): warning A4031: Operand types must match4-1.ASM(
3、84): warning A4031: Operand types must match 50158 + Bytes symbol space free 3 Warning Errors 0 Severe Errors2、鏈接: c:link 4-1.objC:masm>link 4-1Microsoft (R) Overlay Linker Version 3.65Copyright (C) Microsoft Corp 1983-1988. All rights reserved.Run File 4-1.EXE:List File NUL.MAP:Libraries .LIB:3、
4、調(diào)試: c:debug 4-1.exe1)、先用命令U反匯編整個(gè)程序,查看每條指令的物理地址,其顯示內(nèi)容的含義為:內(nèi)存地址 指令代碼 反匯編的程序代碼C:masm>debug 4-1.exe-u1434:0000 B83114 MOV AX,1431數(shù)據(jù)段的首地址是:1431代碼段的首地址是:14341434:0003 8ED8 MOV DS,AX1434:0005 8D1E0000 LEA BX,00001434:0009 B90A00 MOV CX,000A1434:000C E82800 CALL 00371434:000F BA1400 MOV DX,00141434:0012
5、B409 MOV AH,091434:0014 CD21 INT 211434:0016 B401 MOV AH,011434:0018 CD21 INT 211434:001A 240F AND AL,0F1434:001C A22300 MOV 0023,AL1434:001F B220 MOV DL,202)、從上一步結(jié)果中找到數(shù)據(jù)段的首地址142E,查看里面存儲(chǔ)的數(shù)據(jù),數(shù)據(jù)段從首地址1431中存儲(chǔ)了:2,4,1,8,3,6,10,7,13,11 input the key:$-d 1431:00001431:0000 02 00 04 00 01 00 08 00-03 00 06 0
6、0 0A 00 07 00 .1431:0010 0D 00 0B 00 69 6E 70 75-74 20 74 68 65 20 6B 65 .input the ke1431:0020 79 3A 24 05 00 00 00 00-00 00 00 00 00 00 00 00 y:$.1431:0030 B8 31 14 8E D8 8D 1E 00-00 B9 0A 00 E8 28 00 BA .1.(.1431:0040 14 00 B4 09 CD 21 B4 01-CD 21 24 0F A2 23 00 B2 .!.!$.#.1431:0050 20 B4 02 CD 2
7、1 8B 1E 00-00 B9 0A 00 8B 16 23 00 .!.#.1431:0060 E8 28 00 B4 4C CD 21 50-33 C0 49 51 BB 00 00 8B .(.L.!P3.IQ.1431:0070 87 00 00 3B 87 02 00 76-08 87 87 02 00 89 87 00 .;.v.-.-3)、從反匯編地址中找到把數(shù)據(jù)段的首地址142E傳給寄存器AX的指令地址:0005,用G命令執(zhí)行到地址0005 ,然后用T命令單步執(zhí)行,看寄存器AX,DS,ES的內(nèi)容的變化-g0005AX=1431 BX=0000 CX=00F1 DX=0000
8、SP=0028 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=0005 NV UP EI PL NZ NA PO NC1434:0005 8D1E0000 LEA BX,0000 DS:0000=0002-tAX=1431 BX=0000 CX=00F1 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=0009 NV UP EI PL NZ NA PO NC1434:0009 B90A00 MOV CX,000A-tAX=14
9、31 BX=0000 CX=000A DX=0000 SP=0028 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=000C NV UP EI PL NZ NA PO NC1434:000C E82800 CALL 0037-tAX=1431 BX=0000 CX=000A DX=0000 SP=0026 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=0037 NV UP EI PL NZ NA PO NC1434:0037 50 PUSH AX-tAX=
10、1431 BX=0000 CX=000A DX=0000 SP=0024 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=0038 NV UP EI PL NZ NA PO NC1434:0038 33C0 XOR AX,AX-tAX=0000 BX=0000 CX=000A DX=0000 SP=0024 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=003A NV UP EI PL ZR NA PE NC1434:003A 49 DEC CX-tAX=0
11、000 BX=0000 CX=0009 DX=0000 SP=0024 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=003B NV UP EI PL NZ NA PE NC1434:003B 51 PUSH CX-tAX=0000 BX=0000 CX=0009 DX=0000 SP=0022 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=003C NV UP EI PL NZ NA PE NC1434:003C BB0000 MOV BX,0000-t
12、AX=0000 BX=0000 CX=0009 DX=0000 SP=0022 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=003F NV UP EI PL NZ NA PE NC1434:003F 8B MOV AX,BX+0000 DS:0000=0002-tAX=0002 BX=0000 CX=0009 DX=0000 SP=0022 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=0043 NV UP EI PL NZ NA PE NC1434:0
13、043 3B CMP AX,BX+0002 DS:0002=0004-tAX=0002 BX=0000 CX=0009 DX=0000 SP=0022 BP=0000 SI=0000 DI=0000DS=1431 ES=141E SS=142E CS=1434 IP=0047 NV UP EI NG NZ AC PO CY1434:0047 7608 JBE 0051-4)然后直接G命令運(yùn)行完畢。-ginput the key:3 4 輸入關(guān)鍵字KEY:3,輸出關(guān)鍵字的位置:4Program terminated normally4、運(yùn)行 4-1.exe,完全執(zhí)行程序,最后再查看數(shù)據(jù)段最后的結(jié)
14、果:-d 1431:00001431:0000 01 00 02 00 03 00 04 00-06 00 07 00 08 00 0A 00 .1431:0010 0B 00 0D 00 69 6E 70 75-74 20 74 68 65 20 6B 65 .input the ke1431:0020 79 3A 24 03 00 04 00 00-00 00 00 00 00 00 00 00 y:$.1431:0030 B8 31 14 8E D8 8D 1E 00-00 B9 0A 00 E8 28 00 BA .1.(.1431:0040 14 00 B4 09 CD 21 B4
15、01-CD 21 24 0F A2 23 00 B2 .!.!$.#.1431:0050 20 B4 02 CD 21 8B 1E 00-00 B9 0A 00 8B 16 23 00 .!.#.1431:0060 E8 28 00 B4 4C CD 21 50-33 C0 49 51 BB 00 00 8B .(.L.!P3.IQ.1431:0070 87 00 00 3B 87 02 00 76-08 87 87 02 00 89 87 00 .;.v.-Q三實(shí)驗(yàn)代碼:1)2)STACK SEGMENT STACK 'S' DB 40 DUP(0)STACK ENDSDAT
16、A SEGMENT ARY DW 2,4,1,8,3,6,10,7,13,11 N EQU ($-ARY)/2 input DB 'input the key:$' KEY DW 5 RESULT DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX LEA BX,ARY ;取數(shù)組首地址 MOV CX,N CALL ARYSORT ;調(diào)用排序子程序 MOV DX,OFFSET INPUT MOV AH,9 INT 21H MOV AH,1 ;使用1號(hào)功能鍵,輸入關(guān)
17、鍵字 INT 21H AND AL,0FH MOV KEY,AL ;(第25行) MOV DL,20H ;輸出一個(gè)換行符 MOV AH,2 INT 21H MOV BX,ARY MOV CX,N MOV DX,KEY CALL ARYFIND ;調(diào)用查找子程序 MOV AH,4CH INT 21H ;子程序名:ARYSORT ;功能:從小到大排序字型10個(gè)元素的數(shù)組 ;入口參數(shù):BX=數(shù)組地址;CX=數(shù)組元素個(gè)數(shù);DX=要查找的關(guān)鍵字 ;出口參數(shù):無ARYSORT PROC NEAR PUSH AX XOR AX,AX DEC CXLOOP1:PUSH CX MOV BX,0LOOP2:MOV AX,ARYBX CMP AX,ARYBX+2 JBE OK XCHG AX,ARYBX+2 MOV ARYBX,AXOK: ADD BX,2 LOOP LOOP2 POP CX LOOP LOOP1 POP AX RETARYSORT ENDP ;子程序名:ARYFOUND ;功能:從排好序的數(shù)組中查找某一個(gè)數(shù)。若找到,顯示其在數(shù)據(jù)區(qū)中的位置,否則顯示N字符 ;入口參數(shù):BX=數(shù)組地址;CX=數(shù)組元素個(gè)數(shù);DX=要查找的關(guān)鍵字 ;出口參數(shù):無ARYFIND PROC NEAR PUSH AX XOR AX,AX MOV BX,0AGAIN:MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科貿(mào)職業(yè)學(xué)院《物理化學(xué)實(shí)驗(yàn)上》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東警官學(xué)院《西方哲學(xué)原著》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東交通職業(yè)技術(shù)學(xué)院《材料科學(xué)與工程專業(yè)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東技術(shù)師范大學(xué)《勞動(dòng)教育2》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東海洋大學(xué)《建設(shè)工程項(xiàng)目管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 防突培訓(xùn)課件
- 培訓(xùn)課件內(nèi)容分析
- 小學(xué)生讀名著分享課件
- 廣東碧桂園職業(yè)學(xué)院《人工智能技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 共青科技職業(yè)學(xué)院《機(jī)械CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 安全生產(chǎn)事故舉報(bào)獎(jiǎng)勵(lì)制度
- 冠心病健康教育完整版課件
- 國(guó)家開放大學(xué)《理工英語1》單元自測(cè)8試題答案
- 重癥患者的容量管理課件
- 期貨基礎(chǔ)知識(shí)TXT
- 六年級(jí)上冊(cè)道德與法治課件-第一單元 我們的守護(hù)者 復(fù)習(xí)課件-人教部編版(共12張PPT)
- 《尖利的物體會(huì)傷人》安全教育課件
- 安全管理體系及保證措施
- 大學(xué)生自主創(chuàng)業(yè)證明模板
- 啟閉機(jī)試運(yùn)行記錄-副本
- 少兒美術(shù)畫畫 童畫暑假班 7歲-8歲 重彩 《北京烤鴨》
評(píng)論
0/150
提交評(píng)論