On Friday, 4 October 2013 at 21:10:30 UTC, Adam D. Ruppe wrote:
On Friday, 4 October 2013 at 20:50:09 UTC, Alan wrote:
Does anyone have an example of how to maybe print a character
to the string with a system call?
yeah on Linux the assembly is:
string a = "hello!";
auto sptr = a.ptr;
auto slen = a.length;
version(D_InlineAsm_X86)
asm { // 32 bit
mov ECX, sptr;
mov EDX, slen;
mov EBX, fd;
mov EAX, 4; // sys_write
int 0x80;
}
else version(D_InlineAsm_X86_64)
asm { // 64 bit
mov RSI, sptr;
mov RDX, slen;
mov RDI, fd;
mov RAX, 1; // sys_write
syscall;
}
I gotta run, so I'll leave translating that into machine code
an exercise for the reader (you could compile it in D then
objdump it), at least until I get back to the computer :)
Alright, thanks for the help Adam!