Return from assembly
Show calling an assembly fn and returning a value
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
extern crate rlibc;
|
extern crate rlibc;
|
||||||
|
|
||||||
extern {
|
extern {
|
||||||
fn asm_printchar();
|
fn asm_printchar() -> u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -13,11 +13,12 @@ extern {
|
|||||||
pub extern fn rust_main() {
|
pub extern fn rust_main() {
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
checkerboard(vga_buffer::Color::Red);
|
checkerboard(vga_buffer::Color::Red);
|
||||||
unsafe {
|
unsafe {
|
||||||
asm_printchar();
|
let a = asm_printchar();
|
||||||
|
if a == 1 {
|
||||||
|
checkerboard(vga_buffer::Color::Blue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
loop {}
|
loop {}
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ setup_SSE:
|
|||||||
|
|
||||||
asm_printchar:
|
asm_printchar:
|
||||||
mov rax, 0xf056
|
mov rax, 0xf056
|
||||||
mov [0xb8000], rax
|
mov [0xb8000], ax
|
||||||
|
mov rax, 0x1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user