I've never used inline assembly shockingly, and I'm just wondering how/if I can do something. Bit of background; I'm coding a basic OS kernel, I have various subroutines written in assembly and amongst others I have a puts subroutine that is an attempt at mimicking puts in C. In order to call puts I move the address of my string to the esi register and call puts: mov esi, strDATE call puts I'm using the GCC compiler (and possibly in the future G++), how could I get puts to print a string from C? I guess I'm looking for something like... char HW = "Hello World!"; asm("mov HW, esi"); asm("call puts"); (inverted code because GCC uses AT&T syntax I believe?).