Visual Studio-X64匯編編寫(xiě)方法
純64位匯編:
includelib ucrt.lib includelib legacy_stdio_definitions.lib includelib user32.lib extern printf:proc extern MessageBoxA:proc .data szFormat db "%s",0 szHello db "HelloWorld",0 szRk db "123",0 .code start proc sub rsp,28h mov rdx,offset szHello mov rcx,offset szFormat call printf mov r9,0 mov r8,offset szHello mov rdx,offset szRk mov rcx,0 call MessageBoxA add rsp,28h ret start endp end
注意:
1.平臺(tái)工具集要選VS2015
2.屬性->生成依賴(lài)項(xiàng)->masm
3.鏈接器->高級(jí)->入口點(diǎn)
64位混合編程(C++/Asm):一定要嚴(yán)格執(zhí)行代碼規(guī)范,不然各種報(bào)錯(cuò)
1.asm:
includelib legacy_stdio_definitions.lib includelib user32.lib extern printf:proc .data szformat db "%s\n",0 .code Myadd proc sub rsp,28h add rcx,rdx mov rax,rcx add rsp,28h ret Myadd endp Myprintf proc sub rsp,28h mov rdx,rcx lea rcx,szformat call printf add rsp,28h ret Myprintf endp end
main.cpp:
#include <iostream> #include <windows.h> EXTERN_C UINT64 Myadd(UINT64 a, UINT64 b); EXTERN_C void Myprintf(const char* szbuffer); int main() { UINT64 num = Myadd(1, 2); printf("%lld\r\n", num); Myprintf("hello word"); system("pause"); return 0; }
注意:
如果生成報(bào)錯(cuò),并且沒(méi)有屬性里面沒(méi)有Microsoft Macro Assembler,換成VS2015也沒(méi)有的話,
就在源文件里面找到.asm后綴的文件右鍵屬性->常規(guī)->項(xiàng)類(lèi)型->Microsoft Macro Assembler即可。
到此這篇關(guān)于Visual Studio-X64匯編編寫(xiě)的文章就介紹到這了,更多相關(guān)Visual Studio-X64匯編內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
匯編語(yǔ)言 跳轉(zhuǎn)指令與C語(yǔ)言的條件分支
這篇文章主要介紹了匯編語(yǔ)言 跳轉(zhuǎn)指令與C語(yǔ)言的條件分支,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03匯編語(yǔ)言MUL指令無(wú)符號(hào)數(shù)乘法的使用
這篇文章主要介紹了匯編語(yǔ)言MUL指令無(wú)符號(hào)數(shù)乘法的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02使用匯編語(yǔ)言編寫(xiě)一條簡(jiǎn)單的貪吃蛇的實(shí)現(xiàn)
這篇文章主要介紹了使用匯編語(yǔ)言編寫(xiě)一條簡(jiǎn)單的貪吃蛇的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01