




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章包含多個段的程序掌握在程序中同時使用數(shù)據(jù)段、堆棧段和代碼段。理解內(nèi)存中不同段的分配原理。1補(bǔ)全下面程序?qū)?nèi)存0:300H—0:31FH處的數(shù)據(jù)復(fù)制到0:200H處。XX00300HXX00301HXX00302HXX00303HXX00304HXX00305HXX00306H.........XX0031EHXX0031FH00200H00201H00202H00203H00204H00205H00206H...0021EH0021FHAssume cs:codeCode segment movax,
movds,ax movax,0020h moves,ax movbx,0 movcx,
S: moval,[bx] moves:[bx],al incbx loops movax,4c00h int21hCode endsend0030h0020h2補(bǔ)全下面程序?qū)ⅰ癿ovax,4c00h”之前的指令復(fù)制到內(nèi)存0:200H處。XXXXXXXXXXXXXX......XXXX00200H00201H00202H00203H00204H00205H00206H...0021EH0021FHAssume cs:codeCode segment movax,
movds,ax movax,0020h moves,ax movbx,0 movcx,
S: moval,[bx] moves:[bx],al incbx loops movax,4c00h int21hCode endsendCS23PSPCS:0DS:0DS:FF3一、在代碼段中使用數(shù)據(jù)(將數(shù)據(jù)定義在代碼段中)例:計(jì)算以下8個數(shù)據(jù)的和,結(jié)果保存在AX中:0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H。思路1:MOVAX,0ADDAX,0123HADDAX,0456HADDAX,0789H . . .ADDAX,0CBAHADDAX,0987H思路2:MOVAX,XXXXHMOVDS,AXMOVBX,0MOVCX,nMOVAX,0S:ADDAX,[BX]ADDBX,2LOOPS23XXXX0156048907..094將數(shù)據(jù)定義在代碼段中ASSUME CS:CODECODE SEGMENT DW 0123H,0456H,0789H, 0ABCH,0DEFH, 0FEDH,0CBAH,0987H MOV BX,0 MOV AX,0 MOV CX,8S: ADD AX,CS:[BX] ADD BX,2 LOOP S MOV AX,4C00H INT 21HCODE ENDSEND 定義數(shù)據(jù)偽指令:DW—字型數(shù)據(jù)DB—字節(jié)型數(shù)據(jù)DD—雙字?jǐn)?shù)據(jù)格式:DW(DB)數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,……23015604..BA0C8709BB0000B80000..CS:0CS:0F5ASSUME CS:CODECODE SEGMENT DW0123H,0456H,0789H,0ABCH, 0DEFH,0FEDH,0CBAH,0987HSTART: MOV BX,0 MOV AX,0 MOV CX,0S: ADD AX,CS:[BX] ADD BX,2 LOOP S MOV AX,4C00H INT 21HCODE ENDSEND START
END 標(biāo)號標(biāo)號—為程序中第一條要執(zhí)行的指令的標(biāo)號。在編譯中向編譯器提供程序的入口地址和結(jié)束地址。6二、在代碼段中使用棧利用堆棧,編程將程序中定義的數(shù)據(jù)逆序存放。Assume cs:codeCode segmentDw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hCode endsend23015604..數(shù)據(jù)BA0C8709..CS:0CS:0FDw 0,0,0,0,0,0,0,00000……0000CS:10CS:1F棧段Start: movax,cs movss,ax movsp,
movbx,0 movcx,8S: pushcs:[bx] addbx,2 loops movbx,0 movcx,8S0: popcs:[bx] addbx,2 loops0 movax,4c00h int21h Code endsEnd start20h7檢測點(diǎn)6.1
補(bǔ)全程序,使下面程序?qū)崿F(xiàn)依次用內(nèi)存0:0—0:F單元中的內(nèi)容改寫程序中的數(shù)據(jù)。Assume cs:codeCode segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hStart: movax,0 movds,ax movbx,0 movcx,8S: movax,[bx]
addbx,2 loops mov ax,4c00h int 21hCode endsEnd startMovcs:[bx],ax8檢測點(diǎn)6.2
補(bǔ)全程序,使下面程序?qū)崿F(xiàn)依次用內(nèi)存0:0—0:F單元中的內(nèi)容改寫程序中的數(shù)據(jù),數(shù)據(jù)的傳送用棧來進(jìn)行,棧空間設(shè)置在程序內(nèi)。dw
0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdw 0,0,0,0,0Start: movax,
movss,ax movsp,
movax,0 movds,ax mov bx,0 mov cx,8S: push [bx]
add bx,2 loop s mov ax,4c00h int 21hcs26(1Ah)popcs:[bx]9三、將數(shù)據(jù)、代碼、棧放入不同的段1、定義多個段的方法:同定義代碼段一樣,我們可以分別定義數(shù)據(jù)和棧段。ASSUME CS:CODE,DS:DATA,SS:STACKSTACK SEGMENT |STACK ENDSDATA SEGMENT |DATA ENDSCODE SEGMENT |CODE ENDS |2、對段地址的引用:每個段的名稱對應(yīng)著該段的段地址。103、“代碼段”、“數(shù)據(jù)段”、“棧段”完全是我們的安排:數(shù)據(jù)、堆棧、代碼在加載到內(nèi)存時是在地址連續(xù)的一段內(nèi)存空間上。我們在源程序中為每個段起上名字只是為了便于閱讀程序,并可以借用該名字(標(biāo)號)所在的段地址。我們在源程序中用偽指令A(yù)SSUMECS:CODE,DS:DATA,SS:STACK進(jìn)行段分配后,CPU并不能自動將段寄存器指向該段。程序剛加載到內(nèi)存時,CS可根據(jù)END標(biāo)號來指向程序入口地址,而DS和ES的值為PSP的段地址;SS為DS+10H。所以在源程序中我們要通過指令初始化DS,ES和SS的值。11匯編語言源程序的結(jié)構(gòu)
一般來說,一個完整的匯編源程序應(yīng)由三個程序段組成,即代碼段、數(shù)據(jù)段和堆棧段,每個段都以SEGMENT開始,以ENDS結(jié)束,代碼段包含程序要執(zhí)行的指令;堆棧段用來在內(nèi)存中建立一個堆棧區(qū);數(shù)據(jù)段用來在內(nèi)存中建立一個適當(dāng)容量的工作區(qū),以存放程序中所需的數(shù)據(jù)。注意:一個源程序中,代碼段是必須的,而數(shù)據(jù)段和堆棧段可以沒有或有其中一個。段定義時一般最后定義代碼段。ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTACK SEGMENT DB 500 DUP(0)STACK ENDSDATA SEGMENTDATA ENDSCODE
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項(xiàng)目管理重要考點(diǎn)復(fù)習(xí)試題及答案
- 小吃店經(jīng)營數(shù)據(jù)分析與應(yīng)用考核試卷
- 游樂設(shè)施施工中的合同履行考核試卷
- 玩具行業(yè)的跨境電商機(jī)遇考核試卷
- 新手村2024年農(nóng)藝師考試試題及答案
- 學(xué)習(xí)網(wǎng)絡(luò)2025年證券從業(yè)資格證考試試題及答案
- 資產(chǎn)配置與證券投資的關(guān)系試題及答案
- 2023年中國電信蚌埠分公司客戶經(jīng)理招聘筆試參考題庫附帶答案詳解
- 福建事業(yè)單位考試信息技術(shù)試題及答案
- 微生物檢驗(yàn)有效性試題及答案盤點(diǎn)
- 工程塑膠材料采購合同(2篇)
- 新污染物環(huán)境風(fēng)險(xiǎn)評估:理論與制度構(gòu)建
- 2025中考英語沖刺-傳統(tǒng)文化詩詞
- 金融科技學(xué)知到智慧樹章節(jié)測試課后答案2024年秋重慶工商大學(xué)
- 2025屆北京市朝陽區(qū)高三語文一模議論文“說托舉”寫作導(dǎo)引(5篇范文)
- 2025年中考數(shù)學(xué)壓軸模擬試卷(含答案解析)
- 2025年四川滎經(jīng)縣國潤排水有限責(zé)任公司招聘筆試參考題庫含答案解析
- 宣傳工作流程及管理規(guī)范
- 超爾星雅學(xué)習(xí)形勢與政策(2025春)課程作業(yè)參考答案
- 2025年河南工業(yè)貿(mào)易職業(yè)學(xué)院單招職業(yè)傾向性測試題庫帶答案
- 北京市海淀區(qū)2023-2024學(xué)年七年級下學(xué)期期末地理試卷(原卷版)
評論
0/150
提交評論