    //Press F5 in the editor to compile and run.

    --------Hello.HC.Z---------
    "Hello World\n";

    --------Hello.HC.Z---------
    U0 Main()
    {
      "Hello World\n";
    }
    Main;

    --------Hello.HC.Z---------
    U0 MyPrint(U8 *st)
    {
      "%s",st;
    }
    MyPrint("Hello World\n");

    --------Hello.HC.Z---------
    U0 MyPrint2(U8 *st1,U8 *st2) //Any number of args.
    {
      "%s %s\n",st1,st2; //Any number of args.
    }
    MyPrint2("Hello","World");

    --------Hello.HC.Z---------
    U0 MyPrint(U8 *st)
    {
      "" st; //Empty with no comma means first is fmt str.
    }
    MyPrint("Hello World\n");

    --------Hello.HC.Z---------
    asm {
    MSG:    DU8 "Hello World\n",0;

    //The convention is underscore on C callable.
    //Two colons means exported symbol.
    _HELLO_WORLD::
    //You can only clobber RAX,RBX,RCX,RDX
            PUSH    RSI
            MOV     RSI,MSG
            CALL    PUT_STR
            POP     RSI
            RET
    }
    Call(_HELLO_WORLD);

    --------Hello.HC.Z---------
    asm {
    _HELLO_WORLD::
    //You can only clobber RAX,RBX,RCX,RDX
            MOV     RAX,'Hello '
            CALL    PUT_CHARS //Up to 8 chars packed into one 64-bit int.
            MOV     RAX,'World\n'
            CALL    PUT_CHARS
            RET
    }
    Call(_HELLO_WORLD);

    --------Hello.HC.Z---------
    asm {
    _MY_PRINT::
    //You can only clobber RAX,RBX,RCX,RDX
            PUSH    RBP
            MOV     RBP,RSP
            PUSH    RSI
            MOV     RSI,U64 SF_ARG1[RBP]
            CALL    PUT_STR
            POP     RSI
            POP     RBP
            RET1    8       //Callee pops the stack to clear args.
    }
    _extern _MY_PRINT U0 MyPrint(U8 *st);
    MyPrint("Hello World\n");

    --------Hello.HC.Z---------
    asm {
    _MY_PRINT::
    //You can only clobber RAX,RBX,RCX,RDX
            PUSH    RBP
            MOV     RBP,RSP
            PUSH    U64 SF_ARG1[RBP]
            CALL    &PutS   //Callee pops the stack to clear args.
            POP     RBP
            RET1    8
    }
    _extern _MY_PRINT U0 MyPrint(U8 *st);
    MyPrint("Hello World\n");