ASM +RUST WEB_SIMULATOR.EXE

COMPILED: 0 WARNINGS
VERSION: 0x1A4F2C BUILD: #[cfg(target_os = "web")]

ASM DISASSEMBLY

ARCH: x86_64 | OPT: -O3
0x0000: mov rax, 0x1 ; Initialize counter
0x0008: lea rdi, [rel msg]
0x000F: mov rsi, 0x2
0x0017: syscall ; Write to stdout
0x0019: inc rax
0x001C: cmp rax, 0xA
0x0024: jl 0x0008
msg: db 'Simulating web with ASM+RUST',0xA,0
RAX
0x0000001A
RBX
0x7FFF0000
RCX
0x00000000
RDX
0x0000001B

RUST SOURCE

EDITION: 2021
// Web simulation crate
#![no_std]
#![feature(asm)]
use web_sys::{Document, HtmlElement};
pub unsafe fn simulate_web() -> Result<(), JsError> {
let doc = Document::new()?;
let body = doc.body().unwrap();
// Inline ASM for performance
asm!(
"mov rdi, {0}",
"call qword ptr [rdi + 0x18]",
in("rdi") &body,
);
Ok(())
}
fn main() {
unsafe {
simulate_web().unwrap();
}
}
$ cargo build --release

MEMORY VISUALIZATION

HEAP: 0x7F450000 - 0x7F4A0000
0x7F45000
0x7F45008
0x7F45010
0x7F45018
0x7F45020
0x7F45028
0x7F45030
0x7F45038
0x00000001
0x00000000
0x7F45050
0x00000002
0x53494D20
0x554C4157
0x4954494E
0x00000000
STACK TRACE
0x7FFFEF34: main()
0x7FFFEF2C: simulate_web()
0x7FFFEF24: asm!("mov rdi...")
0x7FFFEF1C: syscall
PERFORMANCE
ASM Cycles: 0x0003E8 (1000)
Rust Nanos: 0x0000FA (250)
Memory Used: 0x000800 (2KB)

Made with DeepSite LogoDeepSite - 🧬 Remix