汇编语言的Hello World
生活随笔
收集整理的這篇文章主要介紹了
汇编语言的Hello World
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
匯編語言的Hello World,匯編語言沒有我想象的那么低級,它已經具備了不少高級語言的特性,代碼也變得清晰,層次清楚,易于維護了。
a.asm
.386?
.model?flat,stdcall?
includelib?kernel32.lib?
includelib?user32.lib?
MessageBoxA?PROTO?:DWORD,:DWORD,:DWORD,:DWORD
MessageBox?equ?<MessageBoxA>
ExitProcess?PROTO?:DWORD
.data?
MsgBoxCaption??db?"Welcome",0?
MsgBoxText???????db?"Hello world!",0?
.code?
start:?
invoke?MessageBox,?0,?addr?MsgBoxText,?addr?MsgBoxCaption,?0?
invoke?ExitProcess,?0
end?start?
ml a.asm /subsystem:windows
生成a.exe后直接執行
是時候轉變對匯編語言是低級語言的印象了。現在的宏匯編已經和高級語言沒有太大的距離了。如下在的階乘子程序:
factorial?proc?num:DWORD
????mov?eax,?1
????.while?num?>?1
????????imul?eax,?num
????????dec?num
????.endw
factorial?endp
用C語言來寫:
DWORD?factorial(num?DWORD){
??DWORD?val?=?1;
??while(num>1)
??{
????val?*=?num;
????num?--;
??}
??return?val;
}
不過C++2005自帶的MASM沒有 *.inc文件,連2003的h2inc.exe都不提供。據說M$有可能會發布MASM8.0版本的開發包,但是至今沒有任何消息。很郁悶!!!
經過一翻搜索,終于找到第三方支持的MASM開發包。http://www.masm32.rantx.com/files/m32v9r.zip
支持網站:http://www.movsd.com/
http://spiff.tripnet.se/~iczelion/
最新的版本用的 MASM 是6.14版本。附加的inc和lib文件非常全面。
之所以不用更新版本的MASM是為了避免License問題。關于6.14版本與更高版本之間的兼容比較,可以參考:
http://www.masm32.com/mlcompat.htm
更全面的中文教程(yycnet.yeah.net翻譯)地址在下面:
http://211.147.7.6:9999/flyfish/source/win32asm.chm
對Masm8.0有興趣,并想知道其改進,可再參考MSDN Library中關于MASM的參考。
轉載于:https://www.cnblogs.com/liangxiaofeng/p/3473793.html
總結
以上是生活随笔為你收集整理的汇编语言的Hello World的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 堆排序:
- 下一篇: Microsoft Dynamics C