東北大學(xué)匯編實(shí)驗(yàn)_第1頁(yè)
東北大學(xué)匯編實(shí)驗(yàn)_第2頁(yè)
東北大學(xué)匯編實(shí)驗(yàn)_第3頁(yè)
東北大學(xué)匯編實(shí)驗(yàn)_第4頁(yè)
東北大學(xué)匯編實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程編號(hào):B080103020匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告姓名學(xué)號(hào)班級(jí)指導(dǎo)教師實(shí)驗(yàn)名稱數(shù)據(jù)傳送、分支與循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)開(kāi)設(shè)學(xué)期2014-2015第一學(xué)期開(kāi)設(shè)時(shí)間第1周第10周報(bào)告日期2014年11月6日評(píng)定成績(jī)?cè)u(píng)定人評(píng)定日期東北大學(xué)軟件學(xué)院實(shí)驗(yàn)1 數(shù)據(jù)傳送指令1、 實(shí)驗(yàn)?zāi)康模毫私夂驼莆?MOV、PUSH、POP、XCHG四條指令的作用和在編程中的用法。、實(shí)驗(yàn)要求: ()采用立即數(shù)尋址方式將19E0H,3F56H,0AF37H,9A81H分別送給EAX、EBX、ECX、EDX四個(gè)寄存器。 記錄:操作前 EAX=75C59191、 EBX=7FFDE000 、 ECX=00000000、 EDX=

2、00401000 操作后 EAX=000019E0、 EBX=00003F56、 ECX=0000AF37、 EDX=00009A81 操作過(guò)程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov eax,19E0Hmov ebx,3F56Hmov ecx,0AF37Hmov edx,9A81Hcall DumpRegsexitmain endpEND main()采用采用寄存器尋址方式將19E0H送給EBX、ECX、EDX三個(gè)寄存器。 記錄:操作前 EAX=75C59191、 EBX=7FFDE000 、 ECX=0000000

3、0、 EDX=00401000 操作后 EAX=000019E0、 EBX=000019E0、 ECX=000019E0、 EDX=000019E0 操作過(guò)程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov eax,19E0Hmov ebx,eaxmov ecx,ebxmov edx,ecxcall DumpRegsexitmain endpEND main()對(duì)EAX、EBX、ECX、EDX四個(gè)寄存器進(jìn)行出入堆棧的操作。()將EAX、EBX、ECX、EDX四個(gè)寄存器的內(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 操作過(guò)程中所用到

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四個(gè)寄存器, 注意觀察棧指針寄存器和堆棧內(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 操作過(guò)程中所用到的指令: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,利用交換指令交換這兩個(gè)寄存器的內(nèi)

8、容。 記錄:交換前 EAX= 00003F56 , ECX=00004690 交換后 EAX= 00004690 , ECX=00003F56 操作過(guò)程中所用到的指令:Include Irvine32.inc.codemain PROCmov eax,3F56Hmov ecx,4690Hcall DumpRegsxchg eax,ecxcall DumpRegsexitmain ENDPEND main實(shí)驗(yàn)二 邏輯指令、跳轉(zhuǎn)指令與分支程序設(shè)計(jì)、 實(shí)驗(yàn)?zāi)康模毫私夂驼莆者壿嬛噶?、比較指令、無(wú)條件有條件轉(zhuǎn)移類指令的功能和作用,以及此類指令的使用方法。、 實(shí)驗(yàn)要求:具體了解和掌握邏輯指令、比較指令、無(wú)

9、條件有條件轉(zhuǎn)移類指令的使用和在使用時(shí)應(yīng)注意的問(wèn)題,學(xué)習(xí)分支型程序設(shè)計(jì)的一般方法。 ()在DEBUG系統(tǒng)狀態(tài)下,分別編制、調(diào)試并記錄以下邏輯指令程序段的每一條指令的運(yùn)行情況: () 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ù)相與,但結(jié)果不送會(huì)目的操作數(shù),只改變標(biāo)志位,并不修改操作數(shù)_。 (2) 已知DATA單元開(kāi)始存放三個(gè)帶符號(hào)數(shù),編制程序,檢查三個(gè)數(shù)據(jù)是否同號(hào),若同時(shí)為正,則在顯示器上顯示“+”;同時(shí)為負(fù),則顯示“-”;否則顯示空格“ ”。要求:分別用三組數(shù)據(jù)(同時(shí)為正,同時(shí)為負(fù),異號(hào))調(diào)試程序,驗(yàn)證程序的正確性。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實(shí)驗(yàn)三 算術(shù)運(yùn)算類指令、移位指令及循環(huán)程序設(shè)計(jì)、 實(shí)驗(yàn)?zāi)康模毫私夂驼莆占?、減、乘、除指令的在程序設(shè)計(jì)中的用法和應(yīng)注意的問(wèn)題,了解和掌握移位指令的功能、作用和方法。了解和掌握循環(huán)控制類指令的功能、作用和方法。學(xué)會(huì)循環(huán)程序設(shè)計(jì)的方法。學(xué)習(xí)匯編語(yǔ)言輸出輸入語(yǔ)句的設(shè)計(jì)。、 實(shí)驗(yàn)要求:具體了解和掌握算術(shù)類指令、移位指令和循環(huán)控制類指令的使用,以及在使用時(shí)應(yīng)注意的問(wèn)題,學(xué)習(xí)循環(huán)程序設(shè)計(jì)的一般方法。 ()在DEBUG系統(tǒng)狀態(tài)下,分別編制、調(diào)試并記錄以下加、減程序段的每一條指令的運(yùn)行情況,查看寄存器的結(jié)果: () 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)試并記錄以下乘、除程序段的每一條指令的運(yùn)行情況: () 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)試并記錄以下移位指令程序段的每一條指令的運(yùn)行情況: () 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)容直接進(jìn)行移位,而rcl和rcr是將寄存器中的內(nèi)容與_CF_中的內(nèi)容一起進(jìn)行移位,因此參加移位的數(shù)據(jù)比原來(lái)的數(shù)據(jù)位數(shù)_多一_。(5) 已知DATA單元開(kāi)始存放一組無(wú)符號(hào)的字節(jié)

19、數(shù)據(jù),數(shù)據(jù)長(zhǎng)度在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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論