[英]How to asynchronously pass redshift query from lambda function?
[英]How to pass array from assembly to a C function
我想將匯編代碼中定義的數組傳遞給 C function,但是當我嘗試在 Z0D61F8370CAD1D412F80B84D143E125Z 代碼中訪問該數組時出現段沖突錯誤。 這是匯編代碼(我使用的是nasm):
%include "io.inc"
extern minimo ;My C function
extern printf
section .data
array db 1, 2, 3, 4, 5 ;My array
alen db 5 ;My array length
fmt db "%d", 10, 0 ;Format for the printf function
section .text
global CMAIN
CMAIN:
xor eax, eax
mov ebx, [alen]
mov ecx, [array]
push ebx
push ecx
call minimo
add esp, 8
push eax
push fmt
call printf
add esp, 8
mov eax, 1
mov ebx, 0
int 80h
這是我的 C 代碼:
int minimo(int *array, int size){
int ret = array[0];
for (int i = 1; i < size; i++){
if(array[i] < ret){
ret = array[i];
}
}
return ret;
}
mov ecx, [array]移動位於“array”指向的位置的值,所以你需要移動一個地址mov ecx, array
就可以了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.