Как использовать пользовательские соглашения о вызовах функции MASM из C ++ - PullRequest
0 голосов
/ 07 мая 2019

, чтобы упростить некоторый код сборки для упрощения объединения функций, я использовал соглашение о вызовах, когда один параметр передается через rax, а выходные данные также передаются через rax, так что я могу вызывать несколько функций без необходимости использоватьmov rcx, rax.

в сборке, это работает, проблема возникает, когда я пытаюсь использовать C ++, такого соглашения о вызовах нет, и, поскольку я использую x64, я не могу использовать встроенную сборку.

дополнительная информация:

Я использую Visual Studio 2019

Это одна из функций (хотя я не думаю, что вам нужно это, чтобы понять концепцию):

digcount proc
    mov rcx,10
    mov r11,0
lop:
    mov rdx,0
    cmp rax,0
    jz dend
    div rcx
    inc r11
    jmp lop
dend:
    mov rax, r11
    ret
digcount endp
...