Вызов программы ASM из Си » History » Version 2
Version 1 (krufter_multiclet, 07/19/2013 05:09 PM) → Version 2/20 (krufter_multiclet, 07/19/2013 05:23 PM)
h1. Вызов программы ASM из Си
Вызов программы, написанной на ассемблере из Си организован при помощи стека. Подробнее о стеке можно прочитать тут [[Обзор работы со стеком]].
Рассмотрим пример вызова процедуры, написанной на ассемблере, из Си функцией типа *void*.
Пусть программа на ассемблере принимает два аргумента и выполняет их сложение, а также выдает результат через UART.
На Си вызов функции будет выглядеть так:
<pre>
#include <HDL51001_ccf.h>
void function_add(int arg1, int arg2);
void main()
{
int a,b;
a = 19;
b = 7;
function_add(a,b);
a = 20;
b = 13;
function_add(a,b);
}
</pre>
Вызов программы, написанной на ассемблере из Си организован при помощи стека. Подробнее о стеке можно прочитать тут [[Обзор работы со стеком]].
Рассмотрим пример вызова процедуры, написанной на ассемблере, из Си функцией типа *void*.
Пусть программа на ассемблере принимает два аргумента и выполняет их сложение, а также выдает результат через UART.
На Си вызов функции будет выглядеть так:
<pre>
#include <HDL51001_ccf.h>
void function_add(int arg1, int arg2);
void main()
{
int a,b;
a = 19;
b = 7;
function_add(a,b);
a = 20;
b = 13;
function_add(a,b);
}
</pre>