Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
ArtistA beautiful purple-haired woman wearing a long purple velvet ankle-length dress with flouncy sleeves and purple suede high heels. She is writing "(- woo -) (= yay =)" on a blackboard.
As you have seen (lol), the experimental ASM code that I have recently posted on here has got rather unwieldy, with its _DW's and _D24's, and its boolflag=value etc. So we now introduce two new parenthesised constructs :
(- constant=value, constant=value, .... -)
and
(= fieldname:bitwidth; fieldname:bitwidth =)
. These are equivalent to compile-time ENUMs and DSECTs respectively. They can be used in SheilAsm code as follows :
_MOV EAX,ES:[EBX.fieldname];
and
_OR EAX,value;
. Existing Kernel code will soon be updated to agree, hopefully making it more readable (or at least less unreadable, lol). Mainly the macros will change; the ASM procedures will largely stay unaltered.
For information, here are all the other parenthesis types used in ::SHE+ILA:: :
(1,2,3,4) // Vector or array
{this;is;a;procedure} // Procedure, lambda, or function
{* i++ <= 10 : ttyout("i is ", i, CRLF) *} // Loop
{! thread1, thread2, thread3 !} // Multithreading
{? DIV0 : ttyout("You divided by zero, wally!") ?} // Event handling and exception catching
{+ blah blah +} // Macros
{_ _MOV EAX, [EBX] _} // Assembler code
(local1=0, local2=3.14, param1=%1, param2=%2) // Local variables
(1,2,3) [i] // Array subscripting
I think that's the lot (Until the next time, lol)