притянут C++
This commit is contained in:
@@ -7,4 +7,4 @@ enable_language(ASM_NASM)
|
|||||||
set(CMAKE_ASM_NASM_FLAGS "-f elf64")
|
set(CMAKE_ASM_NASM_FLAGS "-f elf64")
|
||||||
set(CMAKE_ASM_NASM_FLAGS_DEBUG "-gdwarf")
|
set(CMAKE_ASM_NASM_FLAGS_DEBUG "-gdwarf")
|
||||||
|
|
||||||
add_executable(casm asm.asm c.c)
|
add_executable(casm asm.asm c.c cpp.cpp)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
global main
|
global main
|
||||||
extern sum, print, scan
|
extern sum, print, scan, test_vector, a
|
||||||
|
|
||||||
section .text
|
section .text
|
||||||
main:
|
main:
|
||||||
@@ -12,7 +12,11 @@ main:
|
|||||||
call sum ; сумма
|
call sum ; сумма
|
||||||
mov rdi, rax ; результат
|
mov rdi, rax ; результат
|
||||||
call print ; напечатать
|
call print ; напечатать
|
||||||
|
call test_vector
|
||||||
pop rbx ; восстановить rbx
|
pop rbx ; восстановить rbx
|
||||||
|
|
||||||
|
mov dword [rel a], 42 ; записать значение 42 в переменную a
|
||||||
|
|
||||||
mov rdi, 0
|
mov rdi, 0
|
||||||
mov rax, 60
|
mov rax, 60
|
||||||
syscall
|
syscall
|
||||||
2
casm/c.c
2
casm/c.c
@@ -1,6 +1,8 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int a;
|
||||||
|
|
||||||
int sum(int a, int b) {
|
int sum(int a, int b) {
|
||||||
return a+b;
|
return a+b;
|
||||||
}
|
}
|
||||||
|
|||||||
11
casm/cpp.cpp
Normal file
11
casm/cpp.cpp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#include <vector>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
extern "C" void test_vector() {
|
||||||
|
std::vector<int> vec = std::vector<int>();
|
||||||
|
for(auto i = 0; i < 10; i++)
|
||||||
|
vec.push_back(i);
|
||||||
|
for(auto num : vec)
|
||||||
|
std::cout << num << ", ";
|
||||||
|
std::cout << std::endl;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user