匯編編譯工具radasm
A. 怎樣在64位WIN7下配置WIN32匯編編輯器Radasm
步驟/方法
1、將下載好的masm32壓縮包解壓,得到的整個文件夾拷貝至C盤根目錄。
雙擊安裝hla.exe,同樣地,必須也安裝到C盤根目錄下。
2、完成之後,右擊計算機-屬性-高級系統設置-環境變數,查看系統變數,其中的三項如果如圖所示的一樣,證明安裝hla成功,配置也是正確的。
3、雙擊安裝RadASM.v2.2.1.9,由於步驟一已經復制了masm32至C盤根目錄,所以安裝時masm32選項不要勾選,對於hla而言,只需要勾選「文件關聯」一項,如圖所示。安裝目錄同樣選擇C盤根目錄,確保安裝完成之後RadASM.exe在C:\RadASM。
4、雙擊桌面的Radasm圖標或者C:\RadASM\目錄下的RadASM.exe進入程序。工具欄點擊:文件-新建工程,編譯器選擇hla,類型選Console APP,填好工程名,使用hello world的模板。
5、新建的工程完成了,試著編譯並運行,如圖,運行成功得到結果。
6、點擊工具欄:選項-語言,選擇簡體中文。然後是環境變數,發現了沒,Radasm安裝時自動把環境變數和路徑設置為基於C盤根目錄的,這也是之前的步驟為什麼必須把masm32以及hla安裝於C盤根目錄的原因。如果masm32以及hla沒有安裝到C盤根目錄,Radasm的自動配置環境變數將不起作用,用戶必須手動更改。
7、至此,整個安裝和配置過程已經結束了。如果能按照以上步驟做,64位WIN7下對於配置基於Radasm編輯器的hla編程環境和XP是一樣的。
B. 匯編語言是用什麼軟體編譯的
《匯編語言》清華大學出版社 王爽版,這是比較全面的匯編教材,適合初學者。你以前學的是高級軟體編程,現在學匯編需要了解計算機的組成知識。編譯器就用masm 5.0就可以。是在dos下的。
C. 匯編 radasm win32程序 怎麼指定程序入口地址
前些天,看到這個標題,直接過了,因為這個好像根本不是問題,結果過了幾天,看這個問題還沒有結果,於是好奇,進來看看。
RadASM只是一個開發環境,具體使用什麼語言,你要有那個語言的編譯和鏈接器,放在任何目錄都可以,然後在對應那個語言的xxxx.ini中指定編譯器和連接器的位置,如果是MASM宏匯編,那麼需要在MASM.INI中指定,例如:
[Enviroment]
1=path,c:masm32in;
[CharTab]
2=0251222522222232;20-2F
3=1111111111242221;30-3F
[Open]
0="匯編源文件 (*.asm;*.inc;*.mac;*.txt),*.asm;*.inc;*.mac;*.txt"
1="資源文件 (*.rc),*.rc"
2="文本文件 (*.txt),*.txt"
3="所有文件 (*.*),*.*"
src="匯編文件 (*.asm),*.asm,asm"
hdr="頭文件 (*.inc),*.inc,inc"
mod="模塊 (*.asm;*.mac),*.asm;*.mac"
1=path 這個就是用來定義宏匯編編譯器的地址,填上正確的地址即可。
至於匯編源程序,你完全可以如在DOS環境下使用的那樣,例如:
.data
s1 db '這里放數據『,0
.code
entry proc
mov eax, [eax].PEB.ImageBaseAddress
call GetCurrAddr
mov hInstance[ebx], eax
......
entry endp
.data
s2 db '這里也放數據,當然也可以放到前面去。
.code
start:
mov dest, offset Mz
mov clenth, Len
invoke GetCurrentDirectory,nBufLen, addr szFName
invoke lstrcat,addr szFName, addr myFName
invoke CreateFile,addr szFName, ; pointer to name of the file
GENERIC_WRITE or GENERIC_READ,; access (read-write) mode
null, ; share mode
null, ; pointer to security attributes
CREATE_ALWAYS, ; how to create
FILE_ATTRIBUTE_NORMAL, ; file attributes
NULL
mov hFile, eax
invoke WriteFile,hFile,dest,clenth,addr br,NULL
.if eax
invoke lstrcpy,addr szFName,addr myFName1
invoke lstrcat,addr szFName,addr szOpenOk
invoke MessageBox,null,addr szFName,
addr szCaption,MB_OK
.else
invoke MessageBox,NULL,addr szOpenEr,
addr szCaption,MB_ICONERROR or MB_OK
.endif
invoke CloseHandle,hFile
xor eax, eax
invoke ExitProcess,eax
end start
編譯鏈接後,代碼從 start開始執行,start 的級別比 entry 高,如果代碼中有entry,同時有start,那麼編譯後,結果是start,而不是entry,准確的說法是結尾 end 後面根的啟動地址名稱,隨便叫什麼都可以,習慣上用 start。
這是我以前寫書時寫的一些演示代碼,都是在RadASM中開發的,代碼絕對都可以編譯運行的,我在附件里給你發一個匯編源代碼,你可以試著用RadASM來編譯一下。