在C++项目里调用纯汇编模块

步骤

Step 1 创建Cpp

创建Main.cpp,代码如下:

#include <stdio.h>
#include <conio.h>

extern "C" void _cdecl Reverse(char*);

char chararray[17] = "So what is this?";

int main(int argc, char* argv[]) {
    printf("%s \n", chararray);
    Reverse(chararray);
    printf("%s\n", chararray);
    getchar();
    return 0;
}

Step2 创建Asm

创建reverse.s

.586
.model flat,c
.stack 1024
.code
public Reverse

Reverse proc uses esi, \
arraychar:ptr
    mov esi,arraychar
    mov eax,0
    push eax
    .repeat
        mov al,[esi]
        push eax
        inc esi
    .until byte ptr [esi] == 0
    mov esi,arraychar
    .while eax != 0
        pop eax
        mov [esi],al
        inc esi
    .endw
    Ret
Reverse endp
End

Step3 添加生成自定义依赖项

image.png

image.png

Step4 配置汇编文件

image.png

image.png

Step5 编译运行

image.png


点墨
26 声望3 粉丝

全栈前端开发工程师