![64位汇编语言的编程艺术](https://wfqqreader-1252317822.image.myqcloud.com/cover/1/51906001/b_51906001.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.13 “Hello,world!”程序
至此(本章前面包含大量篇幅),我们终于学习了足够知识,可以编写程序“Hello,world!”,如程序清单1-5所示。
程序清单1-5 “Hello,world!”程序的汇编语言代码
![](https://epubservercos.yuewen.com/6EAC66/30664241903216506/epubprivate/OEBPS/Images/096.jpg?sign=1738961109-1suM97LgzNI7R21dQvtzjQDVYryqzr9p-0-9ca1a419ca6c0852c3a3dcc047e6551a)
在上述汇编语言代码中,包含两条“魔法”语句,本章暂不做进一步的解释。只需要接受这样一个事实:需要在函数开始时从RSP寄存器中减去56,然后在函数结束时将该值累加回RSP,才能正常地调用C/C++函数。第5章将更全面地解释这些语句的作用。
程序清单1-6中的C++函数调用汇编代码,并使得printf()函数可用。
程序清单1-6 用于“Hello,world!”程序的C++代码
![](https://epubservercos.yuewen.com/6EAC66/30664241903216506/epubprivate/OEBPS/Images/101.jpg?sign=1738961109-hZhpdbTLV191gU95lwJPP1fXbRbawMDZ-0-3871d92dc83b082ede6b4d4590709a67)
在作者本人的计算机上编译和运行此代码所需的一系列步骤如下所示:
![](https://epubservercos.yuewen.com/6EAC66/30664241903216506/epubprivate/OEBPS/Images/102.jpg?sign=1738961109-4z9hPRI0JlAUg0DqkdySnYSmmNFcmpS4-0-5f39d1ebeb41ab10ea3afacab77a6bc3)
我们终于可以在控制台上输出“Hello,world!”字符串啦!