




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗5 編寫、調(diào)試具有多個段的程序(1) 將下面的程序編譯連接,用debug加載、跟蹤,然后冋答問題:9;ex5a 1. asm9 °author:ito()7;date:2007/l 1/11assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,stackmovss,axmovsp,16movax,da
2、tamovds,axpushds:opushds:2popds:2jpopds:omovax,4c()0hint21hcode endsend start%1 cpu執(zhí)行程序,程序返回前,加a段屮的數(shù)據(jù)為多少?答:()123h,0456h,0789h,0abch,0defh,0fedh,0cabh,0987h%1 cpu執(zhí)行程序,程序返回前,cs=13d5,ss=13d4,ds=13d3.%1 設(shè)程序加載后,code段的段地址為兀則data段的段地址為x-12h,stack段的段地址為x-2h.(2) 將下而的程序編譯連接,用debug加載、跟蹤,然后回答問題:;ex5a2.asm;autho
3、r :it007:date:2007/ll/llassume cs:code,ds:data,ss:stack data segmentdw 0123h,0456hdata endsstack segmentdw 0,0stack endscode segmentstart: mov ax,stackmov ss,axmov sp,16mov ax,datapush ds:omov ax,4c00hint 21hcode endsend start%1 cpu執(zhí)行程序,程序返冋前,da怡段屮的數(shù)據(jù)為多少?答:23 01 56 04%1 cpu執(zhí)行程序,程序返冋前,cs=13d5,ss=13d4
4、,ds=13d3%1 設(shè)程序加載后,code段的段地址為x,則如a段的段地址為x-12h,stack段的段地址為x-2h.%1 對于如下定義的段:name segmentname ends如果段中的數(shù)據(jù)占n個字節(jié),則程序加載后,該段實際占冇的空間為n個字節(jié).(3) 將下面的程序編譯連接,用debug加載、跟蹤,然后回答問題:;ex5a3.asm;author:ito()7;date:2007/11/11assume cs:code,ds:data,ss:stackcode segmentstart: mov ax,stackmov ss,axmov sp,16mov ax,datapush d
5、s:opush ds:2pop ds:2jpop ds:lojmov ax,4c()0hint 21hcode endsdata segmentdw 0123h,0456hdata endsstack segmentdw 0,0stack endsend start%1 cpu執(zhí)行程序,程序返冋前,data段屮的數(shù)據(jù)為多少?答:23 ()1 56 04%1 cpu 執(zhí)行程序,程序返冋前,cs= 13d3h,ss= 13d7h,ds= 13d6h.%1 設(shè)程序加載后,code段的段地址為x,則段的段地址為x-10h,stack段的段地址為x-10ho(4) 如果將1、2、3題中的最后一條偽指令&
6、quot;end start”改為” end” (也就是說,不指明 程序的入口),則哪個程序仍然可以正確執(zhí)行?請說明原因。答:第3個程序可以正常運行,因為在前兩個程序都未指定程序的入口,而程序的前面一部分為數(shù)據(jù),即非程序,當(dāng)程序被加載入內(nèi)存時,cs:ip指向這些數(shù)據(jù),即把這些數(shù)據(jù)當(dāng)作指令來執(zhí)行,這樣可能會引發(fā)意想不到的后果,嚴(yán)重的甚至可能導(dǎo)致死機。而第3個程序cs:ip指向程序的笫一條指令,因為數(shù)據(jù)段定義在程序的末尾,因而程序可以正常執(zhí)行。(5) 程序如下,編寫code段中的代碼,將a段和b段中的數(shù)據(jù)依次相加,將結(jié)果存到c 段中。;ex5a5.asm;author:ito()7;date:20
7、07/11/11assuem cs:code,ds:a,es:b a segmentdb 1,2,3,4,567,8a endsb segmentdb 123,4,5,6,7,8b endsc segmentdb 0,0,0,0,0,0,0,0 c endscode segmentstart:;以下為我添加的代碼movax,amovds,axmovax,bmoves,axmov bx,0movdi,0movex,8mov ax,()s: mov aljbxadd al,es:bxmov bx+32,alinc bxloop smov ax,4c()()hint 21hcode endsend
8、start(6) 程序如下,編寫code段中的代碼,用push指令將a段中word數(shù)據(jù),逆序存儲到b 段中。;ex5ii6.asm;author:it007 ;date:2007/ll/llassume cs:codca segmentdw 1,2,345,6,7,8 a ends b segmentdw 0,(),(),0,0,0,(),0 b ends code segmentstart:;以$為我添加的代碼mov ax,amovds,axmovax,bmovss,axmovsp,10hmovbx,0movex,8pushbxaddbx,2loopsmov ax,4c00hint 21hc
9、ode ends end start總結(jié):經(jīng)過實驗5,我掌握了以下知識:%1 我學(xué)會了如何將-個段和附加寄存器關(guān)聯(lián),并將z設(shè)置為附加數(shù)據(jù)段%1 我學(xué)會了如何使用end偽指令設(shè)置ip為一個程序的入口的偏移地址%1 我學(xué)會了如何程序的數(shù)據(jù)的段并不是一定耍放在程序的前面,它也町以放在程序的末尾, 只是這時程序的ip即為程序的入口的偏移地址。%1 我學(xué)會了如何依次將兩個數(shù)組的元素相加,并把結(jié)果依次存儲到另一個數(shù)組中去。%1 我學(xué)會了如何使川mov指令將一個字節(jié)單元的內(nèi)存?zhèn)魉偷?位寄存器中去。%1 我學(xué)會了如何使川add指令將一個字節(jié)型單元的內(nèi)容加到一個8位寄存器中去。%1 我學(xué)會了如何讀取附加段字節(jié)型
10、單元的內(nèi)容到一個8位寄存器中去。%1 我學(xué)會了如何使用循環(huán)(至少執(zhí)行一次的循環(huán))。%1 我學(xué)會了如何使川push指令將一個數(shù)組的元素逆序copy到一個堆棧(或說為數(shù)組 應(yīng)該也沒什么大礙吧)中去。心得:在這次實驗當(dāng)中,可以說作為一個初學(xué)者該犯的錯誤我都犯了,比如:試圖將一個字 型單元的內(nèi)容讀取到一個堆棧屮去(這明顯是不支持的嘛,push指令怎么說也是一個字操 作指令:),還有就是試圖使用字操作指令進行字節(jié)操作(這明顯是不能實現(xiàn)的嘛:),不 過只要想相應(yīng)的寄存器改為8位寄存器就支持了,還有就是忘了在程序的最示加上返冋系統(tǒng) 的指令(一個程序運行結(jié)束之后如果不返回調(diào)用它的程序,或操作系統(tǒng)或debug,
11、那么它 該去哪里呢?我不知道,也許會發(fā)生意想不到的事情吧:)。這次實驗最大的收獲就是終于掌握了獨立編寫一個匯編程序的能力,能解決一些口常遇到的 小問題,如將一個數(shù)組逆序,將一個數(shù)組的元素copy到另一個數(shù)組中去。在使用push 指令的過程中也讓我更加深刻理解了堆棧的運行機制??偨Y(jié):經(jīng)過實驗5,我掌握了以下知識:%1 我學(xué)會了如何將-個段和附加寄存器關(guān)聯(lián),并將之設(shè)置為附加數(shù)據(jù)段%1 我學(xué)會了如何使用end偽指令設(shè)置1p為一個程序的入口的偏移地址%1 我學(xué)會了如何程序的數(shù)據(jù)的段并不是一定要放在程序的前而,它也可以放在程序的末尾, 只是這吋程序的ip即為程序的入口的偏移地址。%1 我學(xué)會了如何依次將
12、兩個數(shù)組的元素相加,并把結(jié)果依次存儲到另一個數(shù)組中去。%1 我學(xué)會了如何使用mov指令將一個字節(jié)單元的內(nèi)存?zhèn)魉偷?位奇存器中去。%1 我學(xué)會了如何使用add指令將一個字節(jié)型單元的內(nèi)容加到一個8位寄存器屮去。%1 我學(xué)會了如何讀収附加段字節(jié)型單元的內(nèi)容到一個8位寄存器中去。%1 我學(xué)會了如何使用循環(huán)(至少執(zhí)行一次的循環(huán))。%1 我學(xué)會了如何使用push指令將一個數(shù)組的元素逆序copy到一個堆棧(或說為數(shù)組 應(yīng)該也沒什么大礙吧)中去。心得:在這次實驗當(dāng)小,可以說作為一個初學(xué)者該犯的錯誤我都犯了,比如:試圖將一個字 型單元的內(nèi)容讀取到一個堆棧中去(這明顯是不支持的嘛,push指令怎么說也是一個字操 作指令:),還冇就是試圖使用字操作指令進行字節(jié)操作(這明顯是不能實現(xiàn)的嘛:),不 過只要想相應(yīng)的寄存器改為8位寄存器就支持了,還有就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 232-2024 特種巡邏機器人通.用技術(shù)要求
- T-ZJHQ 0003-2024 高等學(xué)校生活垃圾分類工作規(guī)范
- 2025年度電子商務(wù)平臺數(shù)據(jù)分析與報告合同模板
- 二零二五年度解除婚約合同范本:婚約解除后的財產(chǎn)清算、債務(wù)處理及子女監(jiān)護協(xié)議
- 2025年度鋼板租賃與回收利用合同
- 二零二五年度金融機構(gòu)資金轉(zhuǎn)入風(fēng)險管理合同
- 2025年度智慧能源管理系統(tǒng)擔(dān)保人履約保證合同
- 二零二五年度企業(yè)綠色金融項目補貼協(xié)議
- 二零二五年度情人協(xié)議書:浪漫愛情生活規(guī)劃合同范本
- 石壕吏:歷史背景與社會問題分析教學(xué)教案
- 2025中鐵集裝箱運輸有限責(zé)任公司招聘46人(京外地區(qū)崗位)筆試參考題庫附帶答案詳解
- 中國農(nóng)業(yè)大學(xué)人文與發(fā)展學(xué)院管理服務(wù)崗位招聘筆試真題2023
- 2023-2024 中國滑雪產(chǎn)業(yè)白皮書
- 揭陽市基層診所醫(yī)療機構(gòu)衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心村衛(wèi)生室地址信息
- 晉中項目投決會報告
- 二年級下冊數(shù)學(xué)課件-1.3 分草莓 北師大版(共14張PPT)
- 2022年中小學(xué)心理健康教育指導(dǎo)綱要
- 中國紅十字會救護員培訓(xùn)理論考試試卷 (1)附答案
- 高架橋梁混凝土工程專項施工方案
- 銀行案件風(fēng)險排查實施細(xì)則
- 亞馬遜品牌授權(quán)書(英文模板)
評論
0/150
提交評論