日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言的Hello World

發布時間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言的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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。