資源描述:
《匯編語言編程軟件使用指南.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、匯編語言編程和調(diào)試工具一、匯編語言編程工具學(xué)習(xí)匯編語言的目的就是要用匯編語言編程來解決實(shí)際問題,下面介紹二種常用的匯編語言編程環(huán)境:宏匯編MASM6.11和TurboAssember5.0。1.1、宏匯編MASM系統(tǒng)在宏匯編MASM系統(tǒng)中,程序員可用二種方法來處理源程序:命令行和集成環(huán)境。1.1.1命令行命令1、編寫源程序可用計(jì)算機(jī)系統(tǒng)中各種能編輯文本文件的編輯器來編輯匯編源程序。常用的編輯器有:EDIT、Q、Word、記事本、寫字板、WPS等。源文件的后綴為:.ASM。2、匯編程序當(dāng)源程序編寫好后,可用MASM命令來匯編該源程序。如果源程序沒有語法錯(cuò)誤,那么,將生成
2、目標(biāo)文件(.OBJ文件),為最終生成可執(zhí)行文件作準(zhǔn)備,但如果源程序有錯(cuò)誤,匯編程序?qū)@示出錯(cuò)誤位置和原因,也可用列表文件(.LST文件)來查看出錯(cuò)位置和原因。下面給出一些使用該命令的實(shí)例情況。例1.1:查看MASM命令的功能…>masm/?(*)用戶輸入的命令用“下劃線”來表示,系統(tǒng)顯示的內(nèi)容沒有“下劃線”。以下與此相同?!?ZiGeneratesymbolicinformationforCodeView/ZdGenerateline-numberinformation其中:選項(xiàng)/Zi和/Zd是經(jīng)常被引用的二個(gè)選項(xiàng),因?yàn)樗鼈兣c符號跟蹤有關(guān)。例1.2:用MASM命令匯
3、編源程序…>masmtest……Invoking:ML.EXE/I./Zm/ctest.asm……Assembling:test.asm如果MASM命令顯示了類似如上的處理結(jié)果,那么,表示源文件TEST.ASM已成功匯編,并已生成了其目標(biāo)文件TEST.OBJ。例1.3:用MASM命令匯編源程序…>masmtest……Invoking:ML.EXE/I./Zm/ctest.asm……Assembling:test.asmtest.asm(10):errorA2070:invalidinstructionoperands如果MASM命令顯示了類似如上的處理結(jié)果,那么,表示
4、源文件有錯(cuò),沒有生成其目標(biāo)文件。在本例中,顯示第10行有語法錯(cuò):非法的指令操作數(shù)。這時(shí),要用編輯器閱讀源程序的第10行,看看輸入指令時(shí)是否有誤。假如源程序有許多錯(cuò)誤,很難記住全部出錯(cuò)位置,那么,可用列表文件來輔助查錯(cuò)。例1.4:在匯編源程序的同時(shí),生成其列表文件。…>masmtest,,test……Assembling:test.asmtest.asm(10):errorA2070:invalidinstructionoperands列表文件TEST.LST是一個(gè)文本文件,可用編輯器直接閱讀,并可看出其錯(cuò)誤的位置和原因。下面是一個(gè)列表文件的實(shí)例?!?edittest.
5、lstMicrosoft(R)MacroAssemblerVersion6.1108/26/0018:42:57test.asmPage1-1.modelsmall.4860000.data.radix700002A080Fw2db60,11,180003000A0009w1dw10T,1001B0000.code.startupmovdl,7777htest.asm(10):errorA2070:invalidinstructionoperands00108BC2movax,dx00120FA4C201shlddx,ax,10016D1D0rclax,1.exit0
6、end在此后面還有其它內(nèi)容,但它們對查錯(cuò)沒有幫助,所以,在此省略。1、連接程序當(dāng)由源文件匯編成功后,即可用連接程序(LINK.EXE)生成其可執(zhí)行文件。例1.5:查看連接程序(LINK.EXE)的具體選項(xiàng)?!?link/?LINK,,,,Validoptionsare:/?/ALIGNMENT/BATCH/CODEVIEW……/STACK/TINY/WARNFIXUP例1.6:用連接程序生成執(zhí)行文件。方法1:…>linktest……RunFile[test.exe]:ListFile[nul
7、.map]:Libraries[.lib]:DefinitionsFile[nul.def]:LINK:warningL4021:nostacksegment這種方法需要確認(rèn)連接過程中的各種文件名,如果使用文件名的默認(rèn)值,那么直接按“回車”鍵即可。在上面四個(gè)文件名中,最重要二個(gè)文件名是:執(zhí)行文件名和庫文件名。一般情況下,無需更換最終生成的執(zhí)行文件名;如果在連接過程中需要其它的庫文件,則在顯示第三行提示時(shí),輸入所需要的庫文件名。最后一行顯示一個(gè)警告信息,提出本程序沒有定義堆棧段,該警告信息可以不必理會,因?yàn)樵搱?zhí)行文件是可運(yùn)行的,在操作系統(tǒng)裝入時(shí)會自動為