小编IPo*_*Fan的帖子

如何将汇编器值返回给C Int指针?

我正在编写一个小的ASM / C程序,用于计算数字的除数。我得到以下C函数:

#include <stdio.h>
extern void getDivisorCounter(int value, int* result);

int main(int argc, char** argv) {

    int number;
    printf("Please insert number:\n");
    scanf("%d", &number);

    int* result;

    getDivisorCounter(number, result);

    printf("amount of div: %d\n", *result);

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我从以下汇编程序中收到结果:

section .text

global getDivisorCounter

getDivisorCounter:

    push    ebp
    mov     ebp, esp

    mov     ecx, [ebp+8]

    mov     eax, 0
    push    ebx

    for_loop:

        mov     ebx, ecx

        jmp checking

        adding:
            add     ebx, ecx

        checking:
            cmp     ebx, [ebp+8]
            jg      looping
            jl      adding
            inc     eax

        looping:
            loop for_loop

    mov     [ebp+12], …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly nasm pass-by-reference

1
推荐指数
1
解决办法
99
查看次数

标签 统计

assembly ×1

c ×1

nasm ×1

pass-by-reference ×1

x86 ×1