NASM to FASM

This commit is contained in:
Gleb Zaharov 2023-06-19 22:47:51 +03:00
parent 76ac2daa98
commit b7031863c2
2 changed files with 25 additions and 11 deletions

View File

@ -1,5 +1,19 @@
use std::{process::Command, env};
fn main() { fn main() {
println!("cargo:rerun-if-changed=src/syscalls.S"); println!("cargo:rerun-if-changed=src/syscalls.S");
nasm_rs::compile_library_args("libsyscalls.a", &["src/syscalls.S"], &["-f elf32"])
.expect("failed to compile assembly"); let out_dir = env::var("OUT_DIR").unwrap();
Command::new("fasm")
.arg("src/syscalls.S")
.arg(&format!("{}/libsyscalls.a", out_dir))
.status().unwrap();
Command::new("ar")
.arg("crus")
.arg(&format!("{}/libsyscalls.a", out_dir))
.arg(&format!("{}/libsyscalls.o", out_dir))
.status().unwrap();
println!("cargo:rustc-link-search={}", out_dir)
} }

View File

@ -1,13 +1,13 @@
BITS 32 format ELF
section .text section '.text'
global _exit public _exit
global _start_window_draw public _start_window_draw
global _end_window_draw public _end_window_draw
global _define_window public _define_window
global _display_message public _display_message
global _wait_event public _wait_event
global _pressed_key public _pressed_key
_exit: _exit:
mov eax, -1 mov eax, -1