




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課程編號:B080103020匯編語言程序設計實驗報告姓名學號班級指導教師實驗名稱數(shù)據(jù)傳送、分支與循環(huán)結構程序設計實驗開設學期2014-2015第一學期開設時間第1周第10周報告日期2014年11月6日評定成績評定人評定日期東北大學軟件學院實驗1 數(shù)據(jù)傳送指令1、 實驗目的:了解和掌握 MOV、PUSH、POP、XCHG四條指令的作用和在編程中的用法。、實驗要求: ()采用立即數(shù)尋址方式將19E0H,3F56H,0AF37H,9A81H分別送給EAX、EBX、ECX、EDX四個寄存器。 記錄:操作前 EAX=75C59191、 EBX=7FFDE000 、 ECX=00000000、 EDX=
2、00401000 操作后 EAX=000019E0、 EBX=00003F56、 ECX=0000AF37、 EDX=00009A81 操作過程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov eax,19E0Hmov ebx,3F56Hmov ecx,0AF37Hmov edx,9A81Hcall DumpRegsexitmain endpEND main()采用采用寄存器尋址方式將19E0H送給EBX、ECX、EDX三個寄存器。 記錄:操作前 EAX=75C59191、 EBX=7FFDE000 、 ECX=0000000
3、0、 EDX=00401000 操作后 EAX=000019E0、 EBX=000019E0、 ECX=000019E0、 EDX=000019E0 操作過程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov eax,19E0Hmov ebx,eaxmov ecx,ebxmov edx,ecxcall DumpRegsexitmain endpEND main()對EAX、EBX、ECX、EDX四個寄存器進行出入堆棧的操作。()將EAX、EBX、ECX、EDX四個寄存器的內(nèi)容依次壓入堆棧中,注意觀察棧指針寄存器和堆棧內(nèi)容的變化。
4、 記錄:壓入EAX前 ESP=0018FF90, (ESP)=75C5919F 壓入EAX后 ESP=0018FF8C, (ESP)=00000000 壓入EBX前 ESP=0018FF8C, (ESP)=00000000 壓入EBX后 ESP=0018FF88, (ESP)=00000000 壓入ECX前 ESP=0018FF88, (ESP)=00000000 壓入ECX后 ESP=0018FF84, (ESP)=00000000 壓入EDX前 ESP=0018FF84, (ESP)=00000000 壓入EDX后 ESP=0018FF80, (ESP)=FFFFC000 操作過程中所用到
5、的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov eax,espcall DumpRegspush eaxcall DumpRegspush ebxcall DumpRegspush ecxcall DumpRegspush edxcall DumpRegsexitmain endpEND main()將堆棧中的內(nèi)容依次彈出到EAX、EBX、ECX、EDX四個寄存器, 注意觀察棧指針寄存器和堆棧內(nèi)容的變化。 記錄:彈出到EAX前 ESP=0018FF90, (ESP)=00000000 彈出到EAX后 ESP=0018FF94, (E
6、SP)=00000000 彈出到EBX前 ESP=0018FF94, (ESP)=00000000 彈出到EBX后 ESP=0018FF98, (ESP)=00000000 彈出到ECX前 ESP=0018FF98, (ESP)=00000000 彈出到ECX后 ESP=0018FF9C, (ESP)= E18A40B7 彈出到EDX前 ESP=0018FF9C, (ESP)= E18A40B7 彈出到EDX后 ESP=0018FFA0, (ESP)= FFFFF801 操作過程中所用到的指令:include Irvine32.inc.codemain procmov esi,espcall
7、DumpRegspush eaxmov esi,espcall DumpRegspush ebxmov esi,espcall DumpRegspush ecxmov esi,espcall DumpRegspush edxpop edxmov esi,espcall DumpRegspop ecxmov esi,espcall DumpRegspop ebxmov esi,espcall DumpRegspop eaxmov esi,espcall DumpRegsexitmain endpend main(3)已知EAX =3F56H,ECX =4690H,利用交換指令交換這兩個寄存器的內(nèi)
8、容。 記錄:交換前 EAX= 00003F56 , ECX=00004690 交換后 EAX= 00004690 , ECX=00003F56 操作過程中所用到的指令:Include Irvine32.inc.codemain PROCmov eax,3F56Hmov ecx,4690Hcall DumpRegsxchg eax,ecxcall DumpRegsexitmain ENDPEND main實驗二 邏輯指令、跳轉指令與分支程序設計、 實驗目的:了解和掌握邏輯指令、比較指令、無條件有條件轉移類指令的功能和作用,以及此類指令的使用方法。、 實驗要求:具體了解和掌握邏輯指令、比較指令、無
9、條件有條件轉移類指令的使用和在使用時應注意的問題,學習分支型程序設計的一般方法。 ()在DEBUG系統(tǒng)狀態(tài)下,分別編制、調(diào)試并記錄以下邏輯指令程序段的每一條指令的運行情況: () mov al,41 al=29H or al,20 al=3DH () mov al,66 al=42H and al,0df al=00H () mov EAX,5678 EAX=0000162EH xor EAX,EAX EAX=00000000H () mov EAX,0ff00 EAX=0000FF00H not EAX EAX=FFFF00FFH () mov EAX,1234 EAX=000004D2H
10、test EAX,1 EAX=000004D2H SF=0 ZF=1 OF=0 test EAX,2 EAX=000004D2H SF=0 ZF=0 OF=0 test EAX,4 EAX=000004D2H SF=0 ZF=1 OF=0 test EAX,8 EAX=000004D2H SF=0 ZF=1 OF=0 test EAX,10 EAX=000004D2H SF=0 ZF=0 OF=0 test EAX,20 EAX=000004D2H SF=0 ZF=0 OF=0 test EAX,40 EAX=000004D2H SF=0 ZF=1 OF=0 test EAX,80 EAX=0
11、00004D2H SF=0 ZF=0 OF=0test指令的作用是_將原操作數(shù)與目的操作數(shù)相與,但結果不送會目的操作數(shù),只改變標志位,并不修改操作數(shù)_。 (2) 已知DATA單元開始存放三個帶符號數(shù),編制程序,檢查三個數(shù)據(jù)是否同號,若同時為正,則在顯示器上顯示“+”;同時為負,則顯示“-”;否則顯示空格“ ”。要求:分別用三組數(shù)據(jù)(同時為正,同時為負,異號)調(diào)試程序,驗證程序的正確性。include Irvine32.inc.datainterray sdword 23h,23h,-23h.codemain proc mov edi,OFFSET interraymov eax,ediand
12、eax,80000000hpush eaxmov eax,edi+4and eax,80000000hpush eaxmov eax,edi+8and eax,80000000hpush eaxpop eaxpop ebxpop ecxjnz L1cmp eax,ebxjne L2cmp eax,ecxjne L2mov al,'+'call WriteCharexitL1: cmp eax,ebx jne L2 cmp eax,ecx jne L2 mov al,'-' call WriteChar exitL2: mov al,' ' cal
13、l WriteChar exitmain endpend main實驗三 算術運算類指令、移位指令及循環(huán)程序設計、 實驗目的:了解和掌握加、減、乘、除指令的在程序設計中的用法和應注意的問題,了解和掌握移位指令的功能、作用和方法。了解和掌握循環(huán)控制類指令的功能、作用和方法。學會循環(huán)程序設計的方法。學習匯編語言輸出輸入語句的設計。、 實驗要求:具體了解和掌握算術類指令、移位指令和循環(huán)控制類指令的使用,以及在使用時應注意的問題,學習循環(huán)程序設計的一般方法。 ()在DEBUG系統(tǒng)狀態(tài)下,分別編制、調(diào)試并記錄以下加、減程序段的每一條指令的運行情況,查看寄存器的結果: () MOV EAX,2389 EA
14、X=00000955H MOV EBX,0CEDFH EBX=0000CEDFH ADD EAX,EBX EAX= 0000D834H EBX=0000CEDFH () MOV EAX,2389 EAX=00000955H MOV EBX,0CEDFH EBX=0000CEDFH SUB EAX,EBX EAX=FFFF3A76H EBX=0000CEDFH () MOV EAX,2389 EAX=00000955H MOV EBX,0CEDFH EBX=0000CEDFH ADD AH,BH AH=D7 BH=CE ADD AL,BL AL=34 BL=DF () MOV EAX,2389
15、EAX=00000955H MOV EBX,0CEDFH EBX=0000CEDFH ADD AH,BH AH=D7 BH=CE ADC AL,BL AL=34 BL=DF EFL = 00000213 ()在DEBUG系統(tǒng)狀態(tài)下,分別編制、調(diào)試并記錄以下乘、除程序段的每一條指令的運行情況: () MOV AL,23 AL=17H MOV BL,0CEH BL=CEH MUL BL AX=1282H OV=1 () MOV AX,2389 AX=0955H MOV BX,0CEDFH BX=CEDFH MUL BX DX= 078AH AX=870BH CF=1 () MOV AX,2389
16、AX=0955H MOV BL,0CEH BL=0CEH DIV BL AH=7BH AL=0BH () MOV AX,2389 AX=0955H MOV DX,0856 DX=0358H MOV BX,0CEDFH BX=CEDFH DIV BX AX=0423H DX=44D8H (3)在DEBUG系統(tǒng)狀態(tài)下,分別編制、調(diào)試并記錄以下移位指令程序段的每一條指令的運行情況: () mov EAX,420 EAX=000001A4H shl EAX,1 CF=0 EAX=00000348H () mov EAX,240 EAX=000000F0H mov cl,4 CL=04H shl EAX
17、,cl CF=0 EAX=00000F00H () mov EAX,8000 EAX=00001F04H mov cl,4 CL=04H shr EAX,cl CF=0 EAX=000001F4H () mov EAX,8000 EAX=00001F04H mov cl,4 CL=04H sar EAX,cl CF= 0 EAX=000001F4H () mov EAX,8086 EAX=00001F96H mov cl,4 CL=04H rol EAX,cl CF=0 EAX=00001F96H () mov EAX,8086 EAX=00001F96H mov cl,4 CL=04H ro
18、r EAX,cl CF=0 EAX=60001F9H () mov EAX,8086 EAX=00001F96H mov cl,4 CL=04H rcl EAX,cl CF=0 EAX=0001F960H () mov EAX,8086 EAX=00001F96H mov cl,4 CL=04H rcr EAX,cl CF=0 EAX=C00001F9Hrol與rcl、ror與rcr的區(qū)別在于rol和ror是將寄存器中的內(nèi)容直接進行移位,而rcl和rcr是將寄存器中的內(nèi)容與_CF_中的內(nèi)容一起進行移位,因此參加移位的數(shù)據(jù)比原來的數(shù)據(jù)位數(shù)_多一_。(5) 已知DATA單元開始存放一組無符號的字節(jié)
19、數(shù)據(jù),數(shù)據(jù)長度在CNT單元存放。編制程序,檢查該組數(shù)據(jù)中是否存在數(shù)據(jù)100,若存在,則在顯示器上顯示“Y”,否則顯示“N”。include Irvine32.inc.dataay word 1,4,8,100cnt word 4.codemain procmov cx,cntL1: mov ax,0 push ax mov bx,ay+ax cmp bx,0064h je L2 mov al,'N' call WriteChar jmp quit L2: mov al,'Y' call WriteChar jmp quitquit: pop ax add ax,4 LOOP L1exit
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通安全現(xiàn)場勘察與優(yōu)化方案合同
- 潮汐能發(fā)電站圍堰施工與生態(tài)補償合同
- 勞動合同續(xù)簽標準書含薪酬調(diào)整
- 低碳環(huán)保廠房物業(yè)管理與綠色能源應用合同
- 礦山采礦權抵押貸款與礦山安全生產(chǎn)責任保險合同
- 4月安全生產(chǎn)事故
- 六月消防安全月活動方案
- 食品安全生產(chǎn)主體責任
- 安全生產(chǎn)培訓包括
- 物業(yè)品質(zhì)部管理制度
- Unit 2 Home Sweet Home 第5課時(Section B 2a-3c) 2025-2026學年人教版英語八年級下冊
- 2025至2030中國大型連鎖超市行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025-2030年中國鱈魚腸行業(yè)市場發(fā)展分析及發(fā)展前景與投資策略研究報告
- 高水平研究型大學建設中教育、科技與人才的協(xié)同發(fā)展研究
- 山西省2025年普通高中學業(yè)水平合格性考試適應性測試化學試卷(含答案)
- 2025-2030年中國智慧應急行業(yè)市場深度調(diào)研及市場前瞻與投資策略研究報告
- 房屋市政工程生產(chǎn)安全重大事故隱患臺賬
- 2025年中考一模卷(貴州)英語試題含答案解析
- T/ISEAA 006-2024大模型系統(tǒng)安全測評要求
- 2025年調(diào)解員職業(yè)技能考試試卷及答案
- 礦山股東協(xié)議書
評論
0/150
提交評論