我已经评估过在ASM函数中使用C中的数组。 弄清楚我需要将地址传递给该数组。但是在ASM中访问数组之后怎么样呢? (例如,数组[0],数组[1]等。)
C函数:
#include <stdio.h>
void asm_function(char *address);
int main() {
char array[] = "Abc";
asm_function(15, array);
return 0;
}
ASM功能:
.type asm_function, @function
.section .data
EXIT = 60
EXIT_SUCCESS = 1
BUFF_LENGTH = 512
format: .asciz "%s\n"
.section .bss
.lcomm buffer, BUFF_LENGTH
.section .text
.globl asm_function
asm_function:
movq %rdi, buffer
subq $8, %rsp
movq $0, %rax
movq buffer_lancuch, %rsi
movq $format, %rdi
call printf #prints whole String
exit:
addq $8, %rsp
movq $EXIT, %rax
movq $EXIT_SUCCESS, %rdi
syscall
我真正需要的是分别访问所有字符。 将欣赏所有提示。