![合肥工業(yè)大學(xué)匯編程序設(shè)計(jì)試驗(yàn)報(bào)告完整代碼_第1頁](http://file4.renrendoc.com/view/4ce96594567abc1d40bae166d0627570/4ce96594567abc1d40bae166d06275701.gif)
![合肥工業(yè)大學(xué)匯編程序設(shè)計(jì)試驗(yàn)報(bào)告完整代碼_第2頁](http://file4.renrendoc.com/view/4ce96594567abc1d40bae166d0627570/4ce96594567abc1d40bae166d06275702.gif)
![合肥工業(yè)大學(xué)匯編程序設(shè)計(jì)試驗(yàn)報(bào)告完整代碼_第3頁](http://file4.renrendoc.com/view/4ce96594567abc1d40bae166d0627570/4ce96594567abc1d40bae166d06275703.gif)
![合肥工業(yè)大學(xué)匯編程序設(shè)計(jì)試驗(yàn)報(bào)告完整代碼_第4頁](http://file4.renrendoc.com/view/4ce96594567abc1d40bae166d0627570/4ce96594567abc1d40bae166d06275704.gif)
![合肥工業(yè)大學(xué)匯編程序設(shè)計(jì)試驗(yàn)報(bào)告完整代碼_第5頁](http://file4.renrendoc.com/view/4ce96594567abc1d40bae166d0627570/4ce96594567abc1d40bae166d06275705.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——合肥工業(yè)大學(xué)匯編程序設(shè)計(jì)試驗(yàn)報(bào)告完整代碼
合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院
試驗(yàn)報(bào)告
課程:匯編語言程序設(shè)計(jì)
專業(yè)班級(jí):信息安全13-1
學(xué)號(hào):2023211869
姓名:馬駿
試驗(yàn)一Debug程序的使用
一.試驗(yàn)?zāi)康?/p>
1、熟悉DEBUG程序中的命令,學(xué)會(huì)在DEBUG下調(diào)試運(yùn)行匯編語言源程序。2、把握8086/8088的尋址方式及多字節(jié)數(shù)據(jù)的處理方法。
二.試驗(yàn)內(nèi)容
1、利用DEBUG程序中的“E〞命令,將兩個(gè)多字節(jié)數(shù)“003F1AE7H〞和“006BE5C4H〞分別送入起始地址為DS:0200H和DS:0204H兩個(gè)單元中。2、分別用直接尋址方式和寄放器間接尋址方式編寫程序段,實(shí)現(xiàn)將DS:0200H單元和DS:0204H單元中的數(shù)據(jù)相加,并將運(yùn)算結(jié)果存放在DS:0208H單元中。要求:
本次試驗(yàn)的內(nèi)容均在DEBUG下完成,實(shí)現(xiàn)數(shù)據(jù)的裝入、修改、顯示;匯編語言程序段的編輯、匯編和反匯編;程序的運(yùn)行和結(jié)果檢查。
三.試驗(yàn)過程和程序
試驗(yàn)將〞12345678H〞和〞FEDCBA98H〞分別送入起始地址為DS:200H和DS:204H的兩個(gè)單元中。還包含兩個(gè)附加題,一是從DS:0000H開始的5個(gè)16位帶符號(hào)數(shù)分別記為x,y,z,v,w,E命令初始化為:540,1,-1,1080,0,試求w=(v-(x*y+z-540))/x,二是統(tǒng)計(jì)bx中1的個(gè)數(shù)四.試驗(yàn)結(jié)果(包括必要的截圖)
將兩個(gè)多字節(jié)數(shù)“003F1AE7H〞和“006BE5C4H〞分別送入起始地址為DS:0200H和DS:0204H兩個(gè)單元中。
直接尋址方式實(shí)現(xiàn)數(shù)據(jù)相加
寄放器間接尋址實(shí)現(xiàn)數(shù)據(jù)相加
附加題一:
從DS:0000H開始的5個(gè)16位帶符號(hào)數(shù)分別記為x,y,z,v,w,用E命令初始化為:540,1,-1,1080,0,試求w=(v-(x*y+z-540))/x
附加題二:完成BX中1的個(gè)數(shù)的統(tǒng)計(jì)。
五.試驗(yàn)體會(huì)
通過本次試驗(yàn),了解了使用debug的各種指令。同時(shí)在debug下進(jìn)行編程,比較麻煩。由于是第一次編寫匯編程序,還是需要多練習(xí)。
試驗(yàn)二匯編語言程序設(shè)計(jì)(順序、循環(huán))
一.試驗(yàn)?zāi)康?/p>
1、把握順序和循環(huán)程序結(jié)構(gòu)和設(shè)計(jì)方法;
2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行8086/8088匯編語言程序的過程。
二.試驗(yàn)內(nèi)容
1、X、Y、Z、V均為字變量,在X、Y、Z、V字單元中存放是16位帶符號(hào)數(shù)。試編寫匯編語言程序完成以下功能:①計(jì)算表達(dá)式值(V–(X*Y+Z-720))/X;
②將上述表達(dá)式運(yùn)算結(jié)果整數(shù)放在SUM1單元,余數(shù)放在SUM2單元。2、求一個(gè)班50名學(xué)生成績(jī)的平均值(附加題:最大值和最小值,并將結(jié)果顯示出來)
3、從鍵盤讀入一個(gè)字符串,以Enter終止,字符串不超過50個(gè)字符,并打印該字符串(附加題:查找中間是否有‘a(chǎn)sm’子串。假使有,輸出‘Yes’;否則,輸出‘No’)。
三.試驗(yàn)過程和程序
1、計(jì)算表達(dá)式值(V–(X*Y+Z-720))/X;datasegmentxdw021chydw0001hzdw0ffffhvdw0438hwdw0000hsum1dw?sum2dw?dataends
assumecs:code,ds:datacodesegmentstart:movax,datamovds,ax
MOVAX,xIMULY;x*yMOVCX,AX
MOVBX,DXMOVAX,ZCWD
ADDCX,AX
ADCBX,DX;x*y+zSUBCX,540;?
SBBBX,0;x*y+z-540MOVAX,VCWDSUBAX,CX
SBBDX,BX;v-(x*y+z-540)IDIVX;(v-(x*y+z-540))/x
movsum1,axmovsum2,dx
movax,4c00hint21hcodeendsendstart
2、求一個(gè)班50名學(xué)生成績(jī)的平均值(附加題:最大值和最小值,并將結(jié)果顯示出來)datasegmentdb7,49dup(6)maxdb?mindb?resultdb0dataends
assumecs:code,ds:datacodesegmentstart:movax,datamovds,ax
movax,0movcx,50movdi,0again:movbl,[di]
movbx,0
adddi,1addax,bxloopagainmovbl,50divblmovresult,al
movdi,50max2:subdi,1movcx,50movsi,0moval,[di]max1:cmpal,[si]jbmax2addsi,1loopmax1movmax,al
movdi,50min2:subdi,1movcx,50movsi,0moval,[di]min1:cmpal,[si]jnbmin2addsi,1loopmin1movmin,al
movax,4c00hint21hcodeendsendstart
3、從鍵盤讀入一個(gè)字符串,以Enter終止,字符串不超過50個(gè)字符,并打印該字符串(附加題:查找中間是否有‘a(chǎn)sm’子串。假使有,輸出‘Yes’;否則,輸出‘No’)。datasegment
data2db50,?,50dup('$')stringdb'yes$'string1db'no$'dataends
assumecs:code,ds:datacodesegmentstart:movax,datamovds,ax
movdx,offsetdata2+2movah,09hint21h
movah,2hmovdl,0ahint21h
movah,2h
movah,0ahmovdx,offsetdata2int21h
movah,2hmovdl,0ahint21h
movah,2hmovdl,0dhint21h
movdl,0dhint21h
moval,0hmovcx,47movdi,0
again:moval,[di+2]cmpal,61h
next:adddi,1loopagain
movdx,offsetstring1movah,09hint21h
jmpendcode
movdx,offsetstring
yes:
jnznextmoval,[di+3]cmpal,73hjnznextmoval,[di+4]cmpal,6dhjnznextjmpyes
movah,09hint21h
endcode:movax,4c00hint21hcodeendsendstart
四.試驗(yàn)結(jié)果(包括必要的截圖)
1、計(jì)算表達(dá)式值(V–(X*Y+Z-720))/X;
2、求一個(gè)班50名學(xué)生成績(jī)的平均值(附加題:最大值和最小值,并將結(jié)果顯示出來)
0030地址為平均值的商0032地址為最大值0034地址為最小值
3、從鍵盤讀入一個(gè)字符串,以Enter終止,字符串不超過50個(gè)字符,并打印該字符串(附加題:查找中間是否有‘a(chǎn)sm’子串。假使有,輸出‘Yes’;否則,輸出‘No’)。
五.試驗(yàn)體會(huì)
通過此次試驗(yàn),了解了符號(hào)擴(kuò)展指令的使用。其次程序中,以及在輸出時(shí),輸入的字符串末尾要注意加終止標(biāo)志’$’,還有在輸出字符串前要先輸出個(gè)回車換行,否則回車后看不到輸出結(jié)果。
試驗(yàn)三匯編語言子程序設(shè)計(jì)(分支、子程序)
一.試驗(yàn)?zāi)康?/p>
1、把握分支和子程序結(jié)構(gòu)和設(shè)計(jì)方法;
2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行8086/8088匯編語言程序的過程。3、通過匯編語言了解高級(jí)語言的參數(shù)傳遞等知識(shí)。
二.試驗(yàn)內(nèi)容
1、BL中的只有一位為1。編寫程序測(cè)試,并輸出提醒信息“TheXBitis1〞,要求:地址表和轉(zhuǎn)移表。
2.編寫一個(gè)子程序計(jì)算z=f(x,y)=x*y+x-y(x,y,z有符號(hào)數(shù)內(nèi)存數(shù))。要求通過堆棧(寄放器、內(nèi)存)傳送所有參數(shù)。3.實(shí)踐C?Asm的轉(zhuǎn)換過程。
三.試驗(yàn)過程和程序
1、BL中的只有一位為1。編寫程序測(cè)試,并輸出提醒信息“TheXBitis1〞,要求:地址表和轉(zhuǎn)移表。;blhaveone1cout
cbwadddx,axmovax,[bp+4]cbwsubdx,axpopbpret
movah,4ch
quit:
int21h
codeendsendstart
二、使用寄放器傳值
datasegmentxdb03hydb0ffhzdw0000hdataendsstacksegmentdw100dup(?)
stackends
assumeds:data,cs:code,ss:stackcodesegmentstart:movax,datamovds,ax
movax,stackmovss,axmoval,xmovbl,ycallprogrammovz,dxjmpquit
program:
movcl,alimulblmovdx,axmoval,clcbwadddx,axmoval,blcbwsubdx,ax
3.實(shí)踐C?Asm的轉(zhuǎn)換過程。#includeintmain(){
return0;}
}
_asmmovax,0088h;_asm{
ret
movah,4ch
quit:
int21h
codeendsendstart
四.試驗(yàn)結(jié)果(包括必要的截圖)
1、BL中的只有一位為1。編寫程序測(cè)試,并輸出提醒信息“TheXBitis1〞,要求:地址表和轉(zhuǎn)移表。
2.編寫一個(gè)子程序計(jì)算z=f(x,y)=x*y+x-y(x,y,z有符號(hào)數(shù)內(nèi)存數(shù))。要求通過堆棧(寄放器、內(nèi)存)傳送所有參數(shù)。使用堆棧:dx及0002中為f(3,-1)=1
二、使用寄放器傳值dx及0002中為f(3,-1)=1
3.實(shí)踐C?Asm的轉(zhuǎn)換過程。
TITLED:\\c++documents\\huibian.cpp.386P
includelisting.incif@Versiongt510.modelFLATelse
_TEXTSEGMENTPARAUSE32PUBLIC'CODE'_TEXTENDS
_DATASEGMENTDWORDUSE32PUBLIC'DATA'_DATAENDS
CONSTSEGMENTDWORDUSE32PUBLIC'CONST'CONSTENDS
_BSSSEGMENTDWORDUSE32PUBLIC'BSS'_BSSENDS
$$SYMBOLS$$SYMBOLS
SEGMENTBYTEUSE32'DEBSYM'ENDS
$$TYPESSEGMENTBYTEUSE32'DEBTYP'$$TYPESENDS
_TLSSEGMENTDWORDUSE32PUBLIC'TLS'_TLSENDS;
COMDAT_main
_TEXTSEGMENTPARAUSE32PUBLIC'CODE'_TEXTENDS
FLATGROUP_DATA,CONST,_BSS
ASSUMECS:FLAT,DS:FLAT,SS:FLAT
endifPUBLIC
_main
EXTRN__chkesp:NEAR;
COMDAT_main
_TEXTSEGMENT_mainPROCNEAR
;3:{
pushmov
ebpebp,esp
;00000040H
;COMDAT
subesp,64pushpushpush
ebxesiedi
leaedi,DWORDPTR[ebp-64]movmov
ecx,16
;00000010H
;ccccccccH
eax,-858993460
repstosd
2、掛接1CH中斷,正計(jì)時(shí)60秒后退出。要求屏幕顯示0-59的秒數(shù)。
--按a鍵后,保存舊時(shí)間,重新另起一行開始計(jì)時(shí);使用21H的0BH功能檢查按鍵是否按下
3、VC++中編寫內(nèi)聯(lián)匯編,將字節(jié)數(shù)組的每個(gè)元素高低四位互換。chardbyte[]={0x34,0x45,0x56,0x67,0xaf};
五.試驗(yàn)體會(huì)
在時(shí)間計(jì)數(shù)試驗(yàn)中,按a鍵假使使用1號(hào)功能則會(huì)輸出一個(gè)a。但使用7號(hào)功能
則是無回顯過濾的字符輸入,就不會(huì)再有a輸出啦
;4:;5:_asmmovax,0088h;
mov
ax,136
;6:_asm;7:{
;8:;9:;10:;11:};12:
;13:return0;xoreax,eax
;14:}popedipopesipopebxaddesp,64
cmpebp,espcall__chkespmovesp,ebp
popebp
ret0
_mainENDP_TEXTENDS
;00000088H
;00000040H
END
五.試驗(yàn)體會(huì)
通過本次試驗(yàn)使我了解了如何使用地址表和轉(zhuǎn)移表,以及怎樣通過堆棧(寄放器、內(nèi)存)傳送所有參數(shù)調(diào)用子程序。最終實(shí)踐了C?Asm的轉(zhuǎn)換過程,使我對(duì)C和匯編有了更多的認(rèn)識(shí)。
試驗(yàn)四匯編語言高級(jí)編程專題
一.試驗(yàn)?zāi)康?/p>
1、匯編語言宏程序設(shè)計(jì);
2、把握中斷服務(wù)子程序的編寫。3、匯編語言與高級(jí)語言的混編。
二.試驗(yàn)內(nèi)容
1、編寫一個(gè)宏,求三個(gè)數(shù)的最小數(shù),原型為:MIN3x,y,z,min2、掛接1CH中斷,正計(jì)時(shí)60秒后退出。要求屏幕顯示0-59的秒數(shù)。3、VC++中編寫內(nèi)聯(lián)匯編,將字節(jié)數(shù)組的每個(gè)元素高低四位互換。chardbyte[]={0x34,0x45,0x56,0x67,0xaf};
三.試驗(yàn)過程和程序
1、編寫一個(gè)宏,求三個(gè)數(shù)的最小數(shù),原型為:MIN3x,y,z,minminmacrox,y,zmovax,xcmpax,y
jlnext;jc看的是cf是當(dāng)成無符號(hào)數(shù)比較的?movax,ynext:cmpax,zjlfinalmovax,zfinal:nopendm
codesegmentassumecs:codestart:min4-63movax,4c00hint21hcodeendsendstart
2、掛接1CH中斷,正計(jì)時(shí)60秒后退出。要求屏幕顯示0-59的秒數(shù)。;addresequ1chdatasegment
piandw?duandw?stringdb48dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,ax
begin:movax,351chint21h
movpian,bxmovduan,espushds
movdx,offsetmyprocmovax,segmyprocmovds,axmovax,251chint21hpopdsmovcx,0movbx,0
next:cmpcx,1080;60*18jnznext
movdx,pianmovax,duanmovds,axmovax,251chint21hmovax,4c00hint21h
myprocprocsti
inccxincbxcmpbx,18
jzprintjmpovermovbl,stringjcp0subal,48movah,00hmovdl,10divdlmovbl,ahmovdl,al
movah,02hint21hmovdl,bladddl,48movah,02hint21hjmpp1
movdl,stringmovah,02hincstringmovah,02h
print:
cmpbl,58
moval,bl
adddl,48
p0:
int21hp1:
movdl,0dhint21h
movbx,0
;movdl,0dh;int21h
over:
iret
;msg:
;stringdb'onesecond$'
myprocendp
codeendsendstart
--按a鍵后,保存舊時(shí)間,重新另起一行開始計(jì)時(shí);使用21H的0BH功能檢查按鍵是否按下
datasegmentpiandw?duandw?stringdb48dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,ax
movax,351chint21h
movpian,bxmovduan,espushds
movdx,offsetmyprocmovax,segmyprocmovds,axmovax,251chint21hpopds
begin:movcx,0
movbx,0
next:cmpcx,1080;60*18jnznext
movdx,pianmovax,duanmovds,axmovax,251chint21hmovax,4c00hint21h
myprocprocsti
pushaxpushbxpushcxpushsi
movah,0bhint21hsubal,00hjzokmovah,07hint21hcmpal,61hjzcrazyjmpok
crazy:popsipopcx
popbxpopax
movah,0ch;清空輸入緩存區(qū)int21hmovah,02hmovdl,0ah
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來十年移動(dòng)支付的科技發(fā)展趨勢(shì)預(yù)測(cè)
- 標(biāo)準(zhǔn)化管理在生產(chǎn)現(xiàn)場(chǎng)的挑戰(zhàn)與對(duì)策
- 現(xiàn)代音樂文化的全球化傳播路徑
- 13人物描寫一組(說課稿)2023-2024學(xué)年統(tǒng)編版語文五年級(jí)下冊(cè)
- Unit 1 Playtime Lesson 3(說課稿)-2023-2024學(xué)年人教新起點(diǎn)版英語二年級(jí)下冊(cè)001
- 25 少年閏土 第二課時(shí) 說課稿-2024-2025學(xué)年語文六年級(jí)上冊(cè) 統(tǒng)編版
- Unit1 London is a big city(說課稿)2023-2024學(xué)年外研版(三起)四年級(jí)下冊(cè)
- 2024-2025學(xué)年高中生物 第七章 現(xiàn)代生物進(jìn)化理論 第1節(jié) 現(xiàn)代生物進(jìn)化理論的由來說課稿3 新人教版必修2
- Unit 2 Being a good language learner Exploring and Using 說課稿-2024-2025學(xué)年高中英語重大版(2019)必修第一冊(cè)
- 2025挖掘機(jī)勞動(dòng)合同范文
- 高一生物生物必修一全冊(cè)考試題帶答題紙答案
- 北師大版五年級(jí)上冊(cè)四則混合運(yùn)算100道及答案
- 專項(xiàng)債券在燃?xì)饣A(chǔ)設(shè)施建設(shè)中的融資作用
- 人教部編版道德與法治八年級(jí)下冊(cè):6.3 《國(guó)家行政機(jī)關(guān)》說課稿1
- GE-LM2500+G4航改燃?xì)廨啓C(jī)在艦船和工業(yè)上的應(yīng)用
- 2024山東能源集團(tuán)中級(jí)人才庫選拔(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 鋼鐵是怎樣煉成的讀后感作文700字
- 武漢市江夏區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試卷【帶答案】-109
- 學(xué)校物業(yè)服務(wù)合同范本專業(yè)版
- SL 288-2014 水利工程施工監(jiān)理規(guī)范
- 部編版八年級(jí)語文上冊(cè)期末考試卷
評(píng)論
0/150
提交評(píng)論