Today I will remind them.
#![no_std]
#![no_main]
use core::panic::PanicInfo;
use core::arch::asm;
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
loop {}
}
fn main(msg: &str) {
unsafe {
asm!(
"syscall",
in("rax") 1,
in("rdi") 1,
in("rsi") msg.as_ptr(),
in("rdx") msg.len(),
options(nostack, readonly)
);
}
}
#[unsafe(no_mangle)]
pub extern "C" fn _start() -> ! {
let msg = "I'M GOING TO CHOP MA BALLZ OFF!\n";
main(msg);
unsafe {
asm!(
"syscall",
in("rax") 60,
in("rdi") 0,
options(nostack, noreturn, nomem)
);
}
}