




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理與匯編語言微機(jī)原理與匯編語言第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī) 4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行 4.7 調(diào)試程序調(diào)試程序DEBUG的使用的使用 第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.1 一個(gè)匯編語言程序從寫出到最一個(gè)匯編語言程序從寫出到最終執(zhí)行的簡要過程終執(zhí)行的簡要過程 編寫編寫-編譯編譯-銜接銜接-執(zhí)行執(zhí)行演示演示1.編寫匯編源程序編寫匯編源程序使用文本編輯器如使用文本編輯器如Edit、記事本、記事本等),用匯編語言編寫匯編源程序。等),用匯編語言編寫匯編源程序。2.對源程序進(jìn)行編譯連接
2、對源程序進(jìn)行編譯連接w使用匯編語言編譯程序?qū)υ闯绦蛭氖褂脜R編語言編譯程序?qū)υ闯绦蛭募械脑闯绦蜻M(jìn)行編譯,產(chǎn)生目標(biāo)件中的源程序進(jìn)行編譯,產(chǎn)生目標(biāo)文件;文件;w再用連接程序?qū)δ繕?biāo)文件進(jìn)行連接,再用連接程序?qū)δ繕?biāo)文件進(jìn)行連接,生成可在操作系統(tǒng)中直接運(yùn)行的可生成可在操作系統(tǒng)中直接運(yùn)行的可執(zhí)行文件。執(zhí)行文件。3.可執(zhí)行文件可執(zhí)行文件w可執(zhí)行文件中包含兩部分內(nèi)容:可執(zhí)行文件中包含兩部分內(nèi)容:w程序從原程序中的匯編指令翻譯程序從原程序中的匯編指令翻譯過來的機(jī)器碼和數(shù)據(jù)源程序中過來的機(jī)器碼和數(shù)據(jù)源程序中定義的數(shù)據(jù))定義的數(shù)據(jù))w相關(guān)的描述信息比如:程序有多相關(guān)的描述信息比如:程序有多大、要占多少內(nèi)存空間等)大
3、、要占多少內(nèi)存空間等)4.執(zhí)行可執(zhí)行文件中的程序執(zhí)行可執(zhí)行文件中的程序w在操作系統(tǒng)中,執(zhí)行可執(zhí)行文件中在操作系統(tǒng)中,執(zhí)行可執(zhí)行文件中的程序。的程序。w操作系統(tǒng)依照可執(zhí)行文件中的描述操作系統(tǒng)依照可執(zhí)行文件中的描述信息,將可執(zhí)行文件中的機(jī)器碼和信息,將可執(zhí)行文件中的機(jī)器碼和數(shù)據(jù)加載入內(nèi)存,并進(jìn)行相關(guān)的初數(shù)據(jù)加載入內(nèi)存,并進(jìn)行相關(guān)的初始化比如:設(shè)置始化比如:設(shè)置CS:IP指向第一指向第一條要執(zhí)行的指令),然后由條要執(zhí)行的指令),然后由CPU執(zhí)執(zhí)行程序。行程序。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)assumecodesg XXX segment XXX ends end 4.6 匯編程序的
4、編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.2 源程序源程序寄存器與段的關(guān)聯(lián)假設(shè)寄存器與段的關(guān)聯(lián)假設(shè)wassume:含義為:含義為“假設(shè)假設(shè)”。w它假設(shè)某一段寄存器和程序中的某它假設(shè)某一段寄存器和程序中的某一個(gè)用一個(gè)用 segment ends 定義的段定義的段相關(guān)聯(lián)。相關(guān)聯(lián)。w通過通過assume說明這種關(guān)聯(lián),在需要說明這種關(guān)聯(lián),在需要的情況下的情況下 ,編譯程序可以將段寄存,編譯程序可以將段寄存器和某一個(gè)具體的段相聯(lián)系。器和某一個(gè)具體的段相聯(lián)系。標(biāo)號標(biāo)號w一個(gè)標(biāo)號指代了一個(gè)地址。一個(gè)標(biāo)號指代了一個(gè)地址。wcodesg:放在:放在segment的前面,作的前面,作為一個(gè)段的名稱,這個(gè)段的名稱最終為
5、一個(gè)段的名稱,這個(gè)段的名稱最終將被編譯、連接程序處理為一個(gè)段的將被編譯、連接程序處理為一個(gè)段的段地址。段地址。定義一個(gè)段定義一個(gè)段w segment和和ends是一對成對使用的偽指令,是一對成對使用的偽指令,這是在寫可被編譯器編譯的匯編程序時(shí),這是在寫可被編譯器編譯的匯編程序時(shí),必須要用到的一對偽指令。必須要用到的一對偽指令。w segment和和ends的功能是定義一個(gè)段,的功能是定義一個(gè)段,segment說明一個(gè)段開始,說明一個(gè)段開始,ends 說明一說明一個(gè)段結(jié)束。個(gè)段結(jié)束。w 一個(gè)段必須有一個(gè)名稱來標(biāo)識,使用格式一個(gè)段必須有一個(gè)名稱來標(biāo)識,使用格式為:為:w 段名段名 segmentw
6、 段名段名 ends定義一個(gè)段定義一個(gè)段w一個(gè)匯編程序是由多個(gè)段組成的,這一個(gè)匯編程序是由多個(gè)段組成的,這些段被用來存放代碼、數(shù)據(jù)或當(dāng)作棧些段被用來存放代碼、數(shù)據(jù)或當(dāng)作棧空間來使用。空間來使用。w一個(gè)有意義的匯編程序中至少要有一一個(gè)有意義的匯編程序中至少要有一個(gè)段,這個(gè)段用來存放代碼。個(gè)段,這個(gè)段用來存放代碼。程序結(jié)束標(biāo)記程序結(jié)束標(biāo)記wEnd 是一個(gè)匯編程序的結(jié)束標(biāo)記,是一個(gè)匯編程序的結(jié)束標(biāo)記,編譯器在編譯匯編程序的過程中,編譯器在編譯匯編程序的過程中,如果碰到了偽指令如果碰到了偽指令 end,就結(jié)束對,就結(jié)束對源程序的編譯。源程序的編譯。w如果程序?qū)懲炅耍诮Y(jié)尾處加上如果程序?qū)懲炅耍诮Y(jié)
7、尾處加上偽指令偽指令end 。否則,編譯器在編譯。否則,編譯器在編譯程序時(shí),無法知道程序在何處結(jié)束。程序時(shí),無法知道程序在何處結(jié)束。w留意:不要搞混了留意:不要搞混了end和和ends。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.2 源程序源程序程序的結(jié)構(gòu)程序的結(jié)構(gòu)定義一個(gè)段定義一個(gè)段實(shí)現(xiàn)處理任務(wù)實(shí)現(xiàn)處理任務(wù)程序結(jié)束程序結(jié)束段與段寄存器關(guān)聯(lián)段與段寄存器關(guān)聯(lián) 語法錯(cuò)誤和邏輯錯(cuò)誤語法錯(cuò)誤和邏輯錯(cuò)誤 語法錯(cuò)誤語法錯(cuò)誤程序在編譯時(shí)被編譯器發(fā)現(xiàn)的錯(cuò)誤;程序在編譯時(shí)被編譯器發(fā)現(xiàn)的錯(cuò)誤;容易發(fā)現(xiàn)。容易發(fā)現(xiàn)。 assum cs:codesgcodes
8、g segment start:mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21hcodesg endsend start語法錯(cuò)誤和邏輯錯(cuò)誤語法錯(cuò)誤和邏輯錯(cuò)誤 邏輯錯(cuò)誤邏輯錯(cuò)誤程序在編譯時(shí)不能表現(xiàn)出來的、在運(yùn)行時(shí)程序在編譯時(shí)不能表現(xiàn)出來的、在運(yùn)行時(shí)發(fā)生的錯(cuò)誤不容易發(fā)現(xiàn)。發(fā)生的錯(cuò)誤不容易發(fā)現(xiàn)。 assume cs:codesgcodesg segment start:mov ax,0123h mov bx,0456h add ax,bx add ax,axcodesg ends mov ax,4c00h int 2
9、1hend start第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.2 源程序源程序翻開翻開“記事本程序,在其中編輯程記事本程序,在其中編輯程序,如下圖所示:序,如下圖所示:第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.3 編譯編譯進(jìn)入進(jìn)入DOS方式,進(jìn)入方式,進(jìn)入 D:masm 目錄,運(yùn)行目錄,運(yùn)行masm.exe。如果源程序文件不是以如果源程序文件不是以 asm為擴(kuò)展名的話,就為擴(kuò)展名的話,就要輸入它的全名。比如要輸入它的全名。比如1.txt。在輸入源程序文件名的時(shí)候一定要指
10、明它所在在輸入源程序文件名的時(shí)候一定要指明它所在的路徑。如果文件就在當(dāng)前路徑下,只輸入的路徑。如果文件就在當(dāng)前路徑下,只輸入文件名就可以。文件名就可以。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.3 編譯編譯輸入要編譯的源文件文件名后,按輸入要編譯的源文件文件名后,按 Enter鍵。鍵。目標(biāo)文件(目標(biāo)文件(*.obj是我們對一個(gè)源是我們對一個(gè)源程序進(jìn)行編譯要得到的最終結(jié)果。程序進(jìn)行編譯要得到的最終結(jié)果。編譯程序默認(rèn)要輸出的目標(biāo)文件名為編譯程序默認(rèn)要輸出的目標(biāo)文件名為1.obj,所以可以不必再另行指定文,所以可以不必再另行指定文件名。件
11、名。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.3 編譯編譯列表文件是編譯器將源程序編譯列表文件是編譯器將源程序編譯為目標(biāo)文件的過程中產(chǎn)生的中為目標(biāo)文件的過程中產(chǎn)生的中間結(jié)果。間結(jié)果。可以不生成這個(gè)文件,直接按可以不生成這個(gè)文件,直接按 Enter鍵即可。鍵即可。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.3 編譯編譯編譯程序提示輸入交叉引用文件的編譯程序提示輸入交叉引用文件的名稱。名稱。這個(gè)文件同列表文件一樣,是編譯這個(gè)文件同列表文件一樣,是編譯器將源程序編譯為目標(biāo)文件過程
12、器將源程序編譯為目標(biāo)文件過程中產(chǎn)生的中間結(jié)果。中產(chǎn)生的中間結(jié)果。可以不生成這個(gè)文件,直接按可以不生成這個(gè)文件,直接按 Enter 鍵即可。鍵即可。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.3 編譯編譯對源程序的編譯結(jié)束,編譯器輸出的最對源程序的編譯結(jié)束,編譯器輸出的最后兩行告訴我們這個(gè)源程序沒有警告后兩行告訴我們這個(gè)源程序沒有警告錯(cuò)誤和必須要改正的錯(cuò)誤。錯(cuò)誤和必須要改正的錯(cuò)誤。一般來說,有兩類錯(cuò)誤使我們得不到所一般來說,有兩類錯(cuò)誤使我們得不到所期望的目標(biāo)文件:期望的目標(biāo)文件:(1我們程序中有我們程序中有“Severe Errors”
13、;(2找不到所給出的源程序文件。找不到所給出的源程序文件。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.4 銜接銜接在對源程序進(jìn)行編譯得到目標(biāo)文在對源程序進(jìn)行編譯得到目標(biāo)文件后,我們需要對目標(biāo)文件進(jìn)件后,我們需要對目標(biāo)文件進(jìn)行連接,從而得到可執(zhí)行文件。行連接,從而得到可執(zhí)行文件。繼續(xù)上一節(jié)的過程,我們再將繼續(xù)上一節(jié)的過程,我們再將D:masm1.obj連接為連接為D:masm1.exe。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.4 銜接銜接進(jìn)入進(jìn)入DOS方式,進(jìn)入方式,進(jìn)入C
14、:masm目錄,目錄,運(yùn)行運(yùn)行l(wèi)ink.exe。在輸入目標(biāo)文件名的時(shí)候,要注意在輸入目標(biāo)文件名的時(shí)候,要注意指明它所在的路徑。這里,我們指明它所在的路徑。這里,我們要連接的文件是當(dāng)前路徑下要連接的文件是當(dāng)前路徑下1.obj,所以此處輸入所以此處輸入“1”。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.4 銜接銜接輸入要連接的目標(biāo)文件名后,按輸入要連接的目標(biāo)文件名后,按Enter鍵。鍵。可執(zhí)行文件是我們對一個(gè)程序進(jìn)行可執(zhí)行文件是我們對一個(gè)程序進(jìn)行連接要得到的最終結(jié)果。連接要得到的最終結(jié)果。連接程序默認(rèn)要輸出的可執(zhí)行文件連接程序默認(rèn)要輸出的
15、可執(zhí)行文件名為名為 1.EXE ,所以可以不必再另,所以可以不必再另行指定文件名。行指定文件名。我們直接按我們直接按 Enter 鍵,使用連接程鍵,使用連接程序設(shè)定的可執(zhí)行文件名。序設(shè)定的可執(zhí)行文件名。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.4 銜接銜接映像文件是連接程序?qū)⒛繕?biāo)文件連映像文件是連接程序?qū)⒛繕?biāo)文件連接為可執(zhí)行文件過程中產(chǎn)生的中接為可執(zhí)行文件過程中產(chǎn)生的中間結(jié)果。間結(jié)果。可以不生成這個(gè)文件,直接按可以不生成這個(gè)文件,直接按 Enter 鍵即可。鍵即可。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編
16、寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.4 銜接銜接連接程序提示輸入庫文件的名稱。連接程序提示輸入庫文件的名稱。庫文件里包含了一些可以調(diào)用的子程序,庫文件里包含了一些可以調(diào)用的子程序,如果我們的程序中調(diào)用了某一個(gè)庫文件如果我們的程序中調(diào)用了某一個(gè)庫文件中的子程序,就需要在連接的時(shí)候,將中的子程序,就需要在連接的時(shí)候,將這個(gè)庫文件和我們的目標(biāo)文件連接到一這個(gè)庫文件和我們的目標(biāo)文件連接到一起,生成可執(zhí)行文件。起,生成可執(zhí)行文件。如果沒有調(diào)用任何子程序,直接按如果沒有調(diào)用任何子程序,直接按Enter鍵即可。鍵即可。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫
17、與執(zhí)行4.6.4 銜接銜接這時(shí)我們得到了一個(gè)新的文件這時(shí)我們得到了一個(gè)新的文件 1.exe 。當(dāng)。當(dāng)然,如果連接過程中出現(xiàn)錯(cuò)誤,那么我然,如果連接過程中出現(xiàn)錯(cuò)誤,那么我們將得不到這個(gè)可執(zhí)行文件。們將得不到這個(gè)可執(zhí)行文件。對目標(biāo)文件的連接結(jié)束,連接程序輸出的對目標(biāo)文件的連接結(jié)束,連接程序輸出的最后一行告訴我們,這個(gè)程序有一個(gè)警最后一行告訴我們,這個(gè)程序有一個(gè)警告錯(cuò)誤:告錯(cuò)誤:“沒有棧段沒有棧段” ,這里我們不理會,這里我們不理會這個(gè)錯(cuò)誤。這個(gè)錯(cuò)誤。銜接銜接連接的作用有以下幾個(gè):連接的作用有以下幾個(gè):當(dāng)源程序很大時(shí),可以將它分為多個(gè)源程當(dāng)源程序很大時(shí),可以將它分為多個(gè)源程序文件來編譯,每個(gè)源程序編
18、譯成為目序文件來編譯,每個(gè)源程序編譯成為目標(biāo)文件后,再用連接程序?qū)⑺鼈冞B接到標(biāo)文件后,再用連接程序?qū)⑺鼈冞B接到一起,生成一個(gè)可執(zhí)行文件;一起,生成一個(gè)可執(zhí)行文件;程序中調(diào)用了某個(gè)庫文件中的子程序,需程序中調(diào)用了某個(gè)庫文件中的子程序,需要將這個(gè)庫文件和該程序生成的目標(biāo)文要將這個(gè)庫文件和該程序生成的目標(biāo)文件連接到一起,生成一個(gè)可執(zhí)行文件;件連接到一起,生成一個(gè)可執(zhí)行文件;銜接銜接連接的作用有以下幾個(gè)續(xù)):連接的作用有以下幾個(gè)續(xù)):一個(gè)源程序編譯后,得到了存有機(jī)器碼一個(gè)源程序編譯后,得到了存有機(jī)器碼的目標(biāo)文件,目標(biāo)文件中的有些內(nèi)容的目標(biāo)文件,目標(biāo)文件中的有些內(nèi)容還不能直接用來生成可執(zhí)行文件,連還不能
19、直接用來生成可執(zhí)行文件,連接程序?qū)⑦@此內(nèi)容處理為最終的可執(zhí)接程序?qū)⑦@此內(nèi)容處理為最終的可執(zhí)行信息。行信息。所以,在只有一個(gè)源程序文件,而又所以,在只有一個(gè)源程序文件,而又不需要調(diào)用某個(gè)庫中的子程序的情況不需要調(diào)用某個(gè)庫中的子程序的情況下,也必須用連接程序?qū)δ繕?biāo)文件進(jìn)下,也必須用連接程序?qū)δ繕?biāo)文件進(jìn)行處理,生成可執(zhí)行文件。行處理,生成可執(zhí)行文件。留意,對于連接的過程,可執(zhí)行文件是留意,對于連接的過程,可執(zhí)行文件是我們要得到的最終結(jié)果。我們要得到的最終結(jié)果。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.5 執(zhí)行執(zhí)行如今,終于將我們的第一個(gè)匯
20、編程序如今,終于將我們的第一個(gè)匯編程序加工成了一個(gè)可在操作系統(tǒng)下執(zhí)行加工成了一個(gè)可在操作系統(tǒng)下執(zhí)行的程序文件。的程序文件。1.exe的執(zhí)行情況:的執(zhí)行情況:程序到底運(yùn)行沒有?程序到底運(yùn)行沒有?程序當(dāng)然運(yùn)行了,只是從屏幕上不可程序當(dāng)然運(yùn)行了,只是從屏幕上不可能看到任何運(yùn)行結(jié)果。能看到任何運(yùn)行結(jié)果。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行4.6.5 執(zhí)行執(zhí)行我們的程序沒有像顯示器輸出任何我們的程序沒有像顯示器輸出任何信息。程序只是做了一些將數(shù)據(jù)信息。程序只是做了一些將數(shù)據(jù)送入寄存器和加法的操作,而這送入寄存器和加法的操作,而這些事情,我們不可
21、能從顯示屏上些事情,我們不可能從顯示屏上看出來。看出來。程序執(zhí)行完成后,前往,屏幕上再程序執(zhí)行完成后,前往,屏幕上再次出現(xiàn)操作系統(tǒng)的提示符。次出現(xiàn)操作系統(tǒng)的提示符。可執(zhí)行文件中的程序裝入內(nèi)存并運(yùn)可執(zhí)行文件中的程序裝入內(nèi)存并運(yùn)行的原理行的原理可執(zhí)行文件中的程序裝入內(nèi)存并運(yùn)行的原理可執(zhí)行文件中的程序裝入內(nèi)存并運(yùn)行的原理w DOS是一個(gè)單任務(wù)操作系統(tǒng)。是一個(gè)單任務(wù)操作系統(tǒng)。w 在在DOS中,可執(zhí)行文件中的程序中,可執(zhí)行文件中的程序P2若要若要運(yùn)行,必須有一個(gè)正在運(yùn)行的程序運(yùn)行,必須有一個(gè)正在運(yùn)行的程序P1 ,將將 P2從可執(zhí)行文件中加載入內(nèi)存,將從可執(zhí)行文件中加載入內(nèi)存,將CPU的控制權(quán)交給它,的控
22、制權(quán)交給它,P2才能得以運(yùn)行;才能得以運(yùn)行; P2開始運(yùn)行后,開始運(yùn)行后,P1暫停運(yùn)行。暫停運(yùn)行。w 當(dāng)當(dāng)P2運(yùn)行完畢后,應(yīng)該將運(yùn)行完畢后,應(yīng)該將CPU的控制權(quán)的控制權(quán)交還給使它得以運(yùn)行的程序交還給使它得以運(yùn)行的程序P1。以后,。以后,P1繼續(xù)運(yùn)行。繼續(xù)運(yùn)行。w 1.exe的執(zhí)行過程的執(zhí)行過程可執(zhí)行文件中的程序裝入內(nèi)存并運(yùn)行的原理可執(zhí)行文件中的程序裝入內(nèi)存并運(yùn)行的原理w1.exe的執(zhí)行過程:的執(zhí)行過程:w(1我們在提示符我們在提示符“D:masm后后面輸入可執(zhí)行文件的名字面輸入可執(zhí)行文件的名字“1”,按,按Enter鍵。鍵。w(21.exe中的程序運(yùn)行;中的程序運(yùn)行;w 問題問題1w(3運(yùn)行結(jié)
23、束,前往,再次顯示提運(yùn)行結(jié)束,前往,再次顯示提示符示符“D:masm”。w 問題問題2w問題問題1w執(zhí)行第執(zhí)行第1步操作時(shí),有一個(gè)正在運(yùn)行步操作時(shí),有一個(gè)正在運(yùn)行的程序?qū)⒌某绦驅(qū)?.exe中的程序加載入內(nèi)存,這中的程序加載入內(nèi)存,這個(gè)正在運(yùn)行的程序是什么?個(gè)正在運(yùn)行的程序是什么?w它將程序加載入內(nèi)存后,如何使程序得它將程序加載入內(nèi)存后,如何使程序得以運(yùn)行?以運(yùn)行?w結(jié)論結(jié)論w在在DOS中直接執(zhí)行中直接執(zhí)行 1.exe 時(shí),是正在運(yùn)時(shí),是正在運(yùn)行的行的command將將1.exe中的程序加載入中的程序加載入內(nèi)存。內(nèi)存。wcommand設(shè)置設(shè)置CPU的的CS:IP指向程序的指向程序的第一條指令即程
24、序的入口),從而使第一條指令即程序的入口),從而使程序得以運(yùn)行。程序得以運(yùn)行。w問題問題2w執(zhí)行第執(zhí)行第3步操作,程序運(yùn)行結(jié)步操作,程序運(yùn)行結(jié)束后,返回到哪里?束后,返回到哪里?w結(jié)論結(jié)論w程序運(yùn)行結(jié)束后,返回到程序運(yùn)行結(jié)束后,返回到command中,中,CPU繼續(xù)運(yùn)行繼續(xù)運(yùn)行command。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.6 匯編程序的編寫與執(zhí)行匯編程序的編寫與執(zhí)行匯編程序從寫出到執(zhí)行的過程:匯編程序從寫出到執(zhí)行的過程:1.編寫源程序編寫源程序1.txt2.編譯編譯masm 1.txt 1.obj3.連接連接link 1.obj 1.exe4.加載到內(nèi)存并運(yùn)行加載到內(nèi)存并
25、運(yùn)行第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用為了觀察程序的運(yùn)行過程為了觀察程序的運(yùn)行過程 ,我們可,我們可以使用以使用Debug。Debug 可以將程序加載入內(nèi)存,設(shè)可以將程序加載入內(nèi)存,設(shè)置置CS:IP指向程序的入口,但指向程序的入口,但Debug并不放棄對并不放棄對CPU 的控制,的控制,這樣,我們就可以使用這樣,我們就可以使用Debug 的相的相關(guān)命令來單步執(zhí)行程序關(guān)命令來單步執(zhí)行程序 ,查看每條,查看每條指令的執(zhí)行結(jié)果。指令的執(zhí)行結(jié)果。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用接下
26、來可以用接下來可以用R命令看一下各個(gè)寄存命令看一下各個(gè)寄存器的設(shè)置情況:器的設(shè)置情況:可以看到,可以看到,Debug將程序從可執(zhí)行文將程序從可執(zhí)行文件加載入內(nèi)存后,件加載入內(nèi)存后,CX寄存器中存放寄存器中存放的是程序的長度。的是程序的長度。1.exe 中程序的中程序的機(jī)器碼共有機(jī)器碼共有15個(gè)字節(jié)。個(gè)字節(jié)。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用用用U命令查看一下其他指令:命令查看一下其他指令:第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用用用T命令單步執(zhí)行程序中的每命令單步執(zhí)行程序中的每一條
27、指令,并觀察每條指令一條指令,并觀察每條指令的執(zhí)行結(jié)果。的執(zhí)行結(jié)果。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用到了到了 int 21,要用,要用P命令執(zhí)行:命令執(zhí)行:int 21 執(zhí)行后,顯示執(zhí)行后,顯示“Program terminated normally”,返,返回到回到Debug中。中。表示程序正常結(jié)束。表示程序正常結(jié)束。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用最后,使用最后,使用Q命令退出命令退出Debug,將返回到將返回到command中,因?yàn)橹校驗(yàn)镈ebug是由是由comm
28、and加載運(yùn)行加載運(yùn)行的。的。如果需要退出如果需要退出DOS,請輸入,請輸入exit并回車。并回車。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)w 需要注意的是,在需要注意的是,在 DOS 中運(yùn)行程序時(shí),中運(yùn)行程序時(shí),是是command將程序加載入內(nèi)存;將程序加載入內(nèi)存;w 所以程序運(yùn)行結(jié)束后返回到所以程序運(yùn)行結(jié)束后返回到command中,而在這里是中,而在這里是debug 將程序加載入內(nèi)將程序加載入內(nèi)存,所以程序運(yùn)行結(jié)束后要返回到存,所以程序運(yùn)行結(jié)束后要返回到Debug中。中。w 我們在我們在 DOS中用中用 “Debug 1.exe” 運(yùn)行運(yùn)行Debug對對1.exe進(jìn)行跟蹤時(shí),程序加
29、載的進(jìn)行跟蹤時(shí),程序加載的順序是:順序是:command加載加載Debug,Debug加載加載1.exe。w 返回的順序是:從返回的順序是:從1.exe中的程序返回到中的程序返回到Debug,從,從Debug返回到返回到command。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用啟動(dòng)啟動(dòng)Debug啟動(dòng)啟動(dòng) Debug,它是可用于測試和,它是可用于測試和調(diào)試調(diào)試 MS-DOS 可執(zhí)行文件的程可執(zhí)行文件的程序。序。 Debug drive:path filename parameters drive:path filename 指定要測試的可執(zhí)行文
30、件的位指定要測試的可執(zhí)行文件的位置和名稱。置和名稱。 parameters 指定要測試的可執(zhí)行文件所需指定要測試的可執(zhí)行文件所需要的任何命令行信息。要的任何命令行信息。第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用Debug 命令命令 ? 顯示顯示 Debug 命令列表。命令列表。 a 匯編匯編 8086/8087/8088 記憶碼。記憶碼。 c 比較內(nèi)存的兩個(gè)部分。比較內(nèi)存的兩個(gè)部分。 d 顯示部分內(nèi)存的內(nèi)容。顯示部分內(nèi)存的內(nèi)容。 e 從指定地址開始,將數(shù)據(jù)輸入到內(nèi)存。從指定地址開始,將數(shù)據(jù)輸入到內(nèi)存。 f 使用指定值填充一段內(nèi)存。使用指定值填
31、充一段內(nèi)存。 g 運(yùn)行在內(nèi)存中的可執(zhí)行文件。運(yùn)行在內(nèi)存中的可執(zhí)行文件。 h 執(zhí)行十六進(jìn)制運(yùn)算。執(zhí)行十六進(jìn)制運(yùn)算。 i 顯示來自特定端口的顯示來自特定端口的 1 字節(jié)值。字節(jié)值。 l 將文件或磁盤扇區(qū)內(nèi)容加載到內(nèi)存。將文件或磁盤扇區(qū)內(nèi)容加載到內(nèi)存。 m 復(fù)制內(nèi)存塊中的內(nèi)容復(fù)制內(nèi)存塊中的內(nèi)容n 為為 l 或或 w 命令指定文件,或者指定正在命令指定文件,或者指定正在測試的文件的參數(shù)。測試的文件的參數(shù)。 第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用Debug 命令命令 o 向輸出端口發(fā)送向輸出端口發(fā)送 1 個(gè)字節(jié)的值。個(gè)字節(jié)的值。 p 執(zhí)行循環(huán)、重復(fù)
32、的字符串指令、軟件中執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程。斷或子例程。 q 停頓停頓 Debug 會話。會話。 r 顯示或改變一個(gè)或多個(gè)寄存器。顯示或改變一個(gè)或多個(gè)寄存器。 s 在部分內(nèi)存中搜索一個(gè)或多個(gè)字節(jié)值的在部分內(nèi)存中搜索一個(gè)或多個(gè)字節(jié)值的模式。模式。 t 執(zhí)行一條指令,然后顯示所有寄存器的執(zhí)行一條指令,然后顯示所有寄存器的內(nèi)容、所有標(biāo)志的狀態(tài)和內(nèi)容、所有標(biāo)志的狀態(tài)和 Debug 下一下一步要執(zhí)行的指令的解碼形式。步要執(zhí)行的指令的解碼形式。 u 反匯編字節(jié)并顯示相應(yīng)的原語句。反匯編字節(jié)并顯示相應(yīng)的原語句。 w 將被測試文件寫入磁盤。將被測試文件寫入磁盤。 xa 分配擴(kuò)展內(nèi)存。分配
33、擴(kuò)展內(nèi)存。 xd 釋放擴(kuò)展內(nèi)存。釋放擴(kuò)展內(nèi)存。 xm 映射擴(kuò)展內(nèi)存頁。映射擴(kuò)展內(nèi)存頁。 xs 顯示擴(kuò)展內(nèi)存的狀態(tài)。顯示擴(kuò)展內(nèi)存的狀態(tài)。 第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用調(diào)試命令調(diào)試命令顯示和修改寄存器或存儲單元有顯示和修改寄存器或存儲單元有關(guān)命令關(guān)命令運(yùn)行程序命令運(yùn)行程序命令匯編和反匯編命令匯編和反匯編命令文件的裝、寫命令文件的裝、寫命令退出退出DEBUG命令命令其他命令其他命令第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用命令參數(shù)命令參數(shù)分隔命令參數(shù)分隔命令參數(shù) 一切一切 Debug
34、 命令都接受參數(shù),命令都接受參數(shù),除了除了 q 命令之外。可以用逗號命令之外。可以用逗號或空格分隔參數(shù),但是只有在或空格分隔參數(shù),但是只有在兩個(gè)十六進(jìn)制值之間才需要這兩個(gè)十六進(jìn)制值之間才需要這些分隔符。因此,以下命令等些分隔符。因此,以下命令等價(jià):價(jià): dcs:100 110 d cs:100 110 d,cs:100,110 第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用命令參數(shù)命令參數(shù)指定有效地址項(xiàng)指定有效地址項(xiàng) Debug 命令中的命令中的 address 參數(shù)指定參數(shù)指定內(nèi)存位置。內(nèi)存位置。Address 是一個(gè)包含字是一個(gè)包含字母段記錄
35、的二位名稱或一個(gè)四位字母段記錄的二位名稱或一個(gè)四位字段地址加上一個(gè)偏移量。可以忽略段地址加上一個(gè)偏移量。可以忽略段寄存器或段地址。段寄存器或段地址。a,g,l,t,u 和和 w 命令的默認(rèn)段是命令的默認(rèn)段是 CS。所有其。所有其他命令的默認(rèn)段是他命令的默認(rèn)段是 DS。所有數(shù)值。所有數(shù)值均為十六進(jìn)制格式。均為十六進(jìn)制格式。 有效地址如下:有效地址如下: CS:0100 04BA:0100 在段名和偏移量之間要有冒號。在段名和偏移量之間要有冒號。 第第4章章 MASM匯編基礎(chǔ)及上機(jī)匯編基礎(chǔ)及上機(jī)4.7 調(diào)試程序調(diào)試程序Debug的使用的使用命令參數(shù)命令參數(shù)指定有效范圍項(xiàng)指定有效范圍項(xiàng) Debug
36、命令中的命令中的 range 參數(shù)指參數(shù)指定了內(nèi)存的范圍。可以為定了內(nèi)存的范圍。可以為 range 選擇兩種格式:起始地選擇兩種格式:起始地址和結(jié)束地址,或者起始地址址和結(jié)束地址,或者起始地址和長度范圍由和長度范圍由 L 表示)。表示)。 例如,下面的兩個(gè)語法都可以指例如,下面的兩個(gè)語法都可以指定從定從 CS:100 開始的開始的 16 字節(jié)范字節(jié)范圍:圍: cs:100 10f cs:100 L 10 顯示和修改寄存器或存儲單元有關(guān)命令顯示和修改寄存器或存儲單元有關(guān)命令1.R命令命令顯示單個(gè)寄存器的內(nèi)容并等待顯示單個(gè)寄存器的內(nèi)容并等待修改這個(gè)寄存器的內(nèi)容。修改這個(gè)寄存器的內(nèi)容。R之后輸入寄存
37、器名字符。之后輸入寄存器名字符。顯示所有寄存器和標(biāo)志位值。顯示所有寄存器和標(biāo)志位值。只輸入只輸入R。OF DF IF SF ZA AF PF CF顯示和修改寄存器或存儲單元有關(guān)命令顯示和修改寄存器或存儲單元有關(guān)命令1.R命令命令顯示上述顯示上述8個(gè)狀態(tài)標(biāo)志位的狀態(tài)并等待重個(gè)狀態(tài)標(biāo)志位的狀態(tài)并等待重新設(shè)置。新設(shè)置。輸入輸入RF。按回車不改變標(biāo)志位狀態(tài)。按回車不改變標(biāo)志位狀態(tài)。或輸入新的狀態(tài)符,重新設(shè)置標(biāo)志位狀態(tài)。或輸入新的狀態(tài)符,重新設(shè)置標(biāo)志位狀態(tài)。顯示和修改寄存器或存儲單元有關(guān)命令顯示和修改寄存器或存儲單元有關(guān)命令2.D命令命令顯示某個(gè)存儲區(qū)的內(nèi)容。顯示某個(gè)存儲區(qū)的內(nèi)容。 D,如不指定范圍,一
38、次顯示如不指定范圍,一次顯示8行行16個(gè)字節(jié)個(gè)字節(jié)D 默認(rèn)段寄存器為默認(rèn)段寄存器為DS,當(dāng)前偏移地址,當(dāng)前偏移地址 D 地址地址D 0B03:0100D 130;130為偏移地址,默認(rèn)段寄存器為偏移地址,默認(rèn)段寄存器DS顯示和修改寄存器或存儲單元有關(guān)命令顯示和修改寄存器或存儲單元有關(guān)命令2.D命令命令顯示某個(gè)存儲區(qū)的內(nèi)容。顯示某個(gè)存儲區(qū)的內(nèi)容。 D 范圍范圍-D DS:100-D CS:100-D DS:100 110-D 100 L 10顯示和修改寄存器或存儲單元有關(guān)命令顯示和修改寄存器或存儲單元有關(guān)命令3.E命令命令顯示和修改存儲單元的內(nèi)容。默認(rèn)段地址為顯示和修改存儲單元的內(nèi)容。默認(rèn)段地址
39、為DS。 E 地址地址從指定地址開始,修正或連續(xù)修改存儲單元內(nèi)容。從指定地址開始,修正或連續(xù)修改存儲單元內(nèi)容。DEBUG首先顯示指定單元內(nèi)容,如要修改,可輸入新首先顯示指定單元內(nèi)容,如要修改,可輸入新數(shù)據(jù)數(shù)據(jù)減號鍵顯示上一個(gè)單元內(nèi)容并可修改減號鍵顯示上一個(gè)單元內(nèi)容并可修改空格鍵顯示下一個(gè)單元內(nèi)容并可修改空格鍵顯示下一個(gè)單元內(nèi)容并可修改如不修改,可按回車鍵結(jié)束命令。如不修改,可按回車鍵結(jié)束命令。 E 地址地址 數(shù)據(jù)表數(shù)據(jù)表從指定的地址開始用數(shù)據(jù)表給定的數(shù)據(jù)修改存儲單元。從指定的地址開始用數(shù)據(jù)表給定的數(shù)據(jù)修改存儲單元。 E DS:170 F3 2F 8D。顯示和修改寄存器或存儲單元有關(guān)命令顯示和修
40、改寄存器或存儲單元有關(guān)命令4.F命令命令在指定的存儲器地址范圍內(nèi)置入在指定的存儲器地址范圍內(nèi)置入list參數(shù)參數(shù)給出的數(shù)值或字符代碼。默認(rèn)段地址為給出的數(shù)值或字符代碼。默認(rèn)段地址為DS。F 范圍范圍 數(shù)據(jù)表數(shù)據(jù)表將數(shù)據(jù)表寫入指定范圍的存儲單元;數(shù)據(jù)將數(shù)據(jù)表寫入指定范圍的存儲單元;數(shù)據(jù)個(gè)數(shù)多,忽略多出的數(shù)據(jù),個(gè)數(shù)少,則個(gè)數(shù)多,忽略多出的數(shù)據(jù),個(gè)數(shù)少,則重復(fù)使用數(shù)據(jù)表。重復(fù)使用數(shù)據(jù)表。F DS:0 L5 01,02,03,04,05F DS:0 L5 01 02 03 04 05空格分隔)空格分隔)F DS:0 L5 FF ;5個(gè)字節(jié)重復(fù)使用個(gè)字節(jié)重復(fù)使用FF顯示和修改寄存器或存儲單元有關(guān)命令顯示
41、和修改寄存器或存儲單元有關(guān)命令5.M命令命令用指定的存儲區(qū)的內(nèi)容傳送到另一指令的存儲區(qū)用指定的存儲區(qū)的內(nèi)容傳送到另一指令的存儲區(qū)去。默認(rèn)段地址為去。默認(rèn)段地址為DS。M 范圍范圍 地址地址范圍指被傳送的存儲區(qū)的地址范圍。范圍指被傳送的存儲區(qū)的地址范圍。地址指傳送的目的存儲區(qū)的開始地址。地址指傳送的目的存儲區(qū)的開始地址。運(yùn)行程序命令運(yùn)行程序命令1.G命令命令執(zhí)行正在調(diào)試的程序。默認(rèn)段地址為執(zhí)行正在調(diào)試的程序。默認(rèn)段地址為CS。 G;從;從CS:IP指向的指令開始執(zhí)行程序,直到指向的指令開始執(zhí)行程序,直到程序結(jié)束。程序結(jié)束。 G=地址;從指定地址開始執(zhí)行程序,直到程地址;從指定地址開始執(zhí)行程序,直
42、到程序結(jié)束。序結(jié)束。 G 斷點(diǎn)斷點(diǎn)1,斷點(diǎn),斷點(diǎn)2,斷點(diǎn)斷點(diǎn)10;從;從CS:IP指向指向的指令開始執(zhí)行程序,直到遇到斷點(diǎn)。的指令開始執(zhí)行程序,直到遇到斷點(diǎn)。G=地址地址 斷點(diǎn)斷點(diǎn)1,斷點(diǎn),斷點(diǎn)2,斷點(diǎn)斷點(diǎn)10G=100 ;從指定地址開始執(zhí)行程序。;從指定地址開始執(zhí)行程序。G=100 105 110 120運(yùn)行程序命令運(yùn)行程序命令2.T命令命令執(zhí)行一條或多條指令,每執(zhí)行一條指令如同執(zhí)行一條或多條指令,每執(zhí)行一條指令如同執(zhí)行一次執(zhí)行一次R命令,顯示所有寄存器的內(nèi)容命令,顯示所有寄存器的內(nèi)容和狀態(tài)標(biāo)志位的狀態(tài)。和狀態(tài)標(biāo)志位的狀態(tài)。 T;從當(dāng)前;從當(dāng)前IP開始執(zhí)行一條指令。開始執(zhí)行一條指令。 T 數(shù)
43、值;從當(dāng)前數(shù)值;從當(dāng)前IP開始執(zhí)行多條指令。開始執(zhí)行多條指令。 T =地址;地址; T =地址地址 數(shù)值;數(shù)值; T T5 / T=100 5要想填入正確的地址和要跟蹤的命令數(shù),應(yīng)要想填入正確的地址和要跟蹤的命令數(shù),應(yīng)先使用先使用-u命令察看內(nèi)容命令察看內(nèi)容運(yùn)行程序命令運(yùn)行程序命令3.P命令命令跟蹤執(zhí)行并跳過子程序跟蹤執(zhí)行并跳過子程序 。 P =地址地址 數(shù)值數(shù)值;類似;類似T命令,但跳過命令,但跳過子程序和中斷服務(wù)程序子程序和中斷服務(wù)程序運(yùn)行程序命令運(yùn)行程序命令T命令和命令和P命令的區(qū)別命令的區(qū)別單步跟蹤命令單步跟蹤命令T單步執(zhí)行命令單步執(zhí)行命令P人們常將單步跟蹤命令稱作人們常將單步跟蹤命令稱作“單步進(jìn)入單步進(jìn)入(step in)”,而將單步執(zhí)行命令稱作而將單步執(zhí)行命令稱作“單步通過單步通過(step over)”。對于對于t命令,單步跟蹤命令命令,單步跟蹤命令t會進(jìn)入進(jìn)程,一步步地執(zhí)會進(jìn)入進(jìn)程,一步步地執(zhí)行行而單步執(zhí)行命令而單步執(zhí)行命令p會按照一般程序執(zhí)行
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021學(xué)年上海復(fù)旦附中高一(下)期中英語試題及答案
- 離思五首其一:古代詩詞情感解讀教案
- 小學(xué)演講活動(dòng)方案
- 酒店承包經(jīng)營協(xié)議書
- 銀行貸款審批實(shí)務(wù)問題
- 公交公司售卡活動(dòng)方案
- 公交開通活動(dòng)方案
- 技術(shù)開發(fā)保密與成果共享協(xié)議條款修訂
- 公眾號贈(zèng)書活動(dòng)方案
- 敘事作文小家中的大道理400字11篇范文
- 2024屆江蘇省徐州市、南通市等2地高三第二次調(diào)研測試語文試題
- 智能化立體停車樓項(xiàng)目分析報(bào)告
- 超聲檢查健康宣教課件
- 廣西創(chuàng)業(yè)擔(dān)保貸款培訓(xùn)課件
- 2024屆江蘇省南京市聯(lián)合體數(shù)學(xué)七年級第二學(xué)期期末監(jiān)測試題含解析
- 《現(xiàn)場改善技巧》課件
- 國開電大《人文英語3》一平臺機(jī)考總題庫珍藏版
- 玻璃隔斷墻施工方案
- Python GUI設(shè)計(jì):tkinter菜鳥編程
- 新家庭如何塑造人
- 2024屆新高考數(shù)學(xué)熱點(diǎn)沖刺復(fù)習(xí)“三新”背景下如何提高成績+以《數(shù)列》為例淺談教材使用
評論
0/150
提交評論