, чтобы упростить некоторый код сборки для упрощения объединения функций, я использовал соглашение о вызовах, когда один параметр передается через 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