nice project

can't you add the ability to write in procedures and just put a keyword "inline" before it and its instead a macro, saves work to rewrite procedures as macros and vice versa
well an asm programmer want complete control, so it might be better to have all code as procedures without the inline keyword and have control with blocks of code generating calls and blocks of code generating it inline and suffix in a block of code to generate a call for a function in the middle of inline functions and vice versa

Posted on 2007-06-13 07:48:31 by daydreamer

... have control with blocks of code generating calls and blocks of code generating it inline and suffix in a block of code to generate a call for a function in the middle of inline functions and vice versa


That's a neat idea.  I hadn't quite considered that before, but it might make sense to be able to make a function inlined sometimes and not inlined other times.  Of course there are other issues that'd need to be ironed out, like that macros allow compile-time arguments to be passed (i.e. not necessarily "parameters" in the same sense).  I had made Macros and Functions separate objects in PwnIDE, but I recently made Macros simply Functions with a property "inline" and the ability to accept compile-time arguments.  Of course, since I don't have a built-in assembler yet, it'll write them out again as macros, but eventually...

Cheers  :)
Posted on 2007-06-13 21:46:30 by hackulous

That's a neat idea.  I hadn't quite considered that before, but it might make sense to be able to make a function inlined sometimes and not inlined other times

its just an extended version of what you can do in C/C++, you can put inline keyword in front of a procedure, that way you don't need to write two versions of the same code, one macro and one proc

in assembler you have complete control over what code gets generated and its a natural development of assemblers to get complete control over each call is made for generating smallersize when its no timecritical code and inline several functions to be performed after each another in a innerloop
but before that loop, you might have lots of initalizing code and a call to a proc is made once, its unnesserary to bloat code with having it inline, so it should be flagged as noninline
Posted on 2007-06-16 04:44:47 by daydreamer
I am interested in the project, however I have developed an operating system which I use privately which essentially does exactly what you want in a slightly different way. I began
designing operating systems in 1970's for process control,games and my own machines which were many 8008,z80,8080,8085,68000,8086,80x86,RISC,VPU etc. I designed a DOS compatible OS in the 80's and a GUI compatible OS in the 90's. I am implementing a new version which runs on top of Linux,a windows compatible interface,or stand alone. The lower levels are confined to the establishment of mode and scale (8,16,32,64). Upper levels are completely driven by script and are independent from the core. Interrupts and tasks are actually implemented in the software and there is no need for any unique software other than the core memory management and implementation of the corresponding pseudo ops which are a symbolic CISC, somewhat like a virtual CPU.

I have a great deal of fun with it, because it disassembles itself, compiles itself, debugs itself, and displays internal task and code relationships as a 3D world where roads are execution pathways and data dependencies with signs posted with values and disassembled instructions with EA(effective addresses),speed, and allows for timing of the individual pseudo ops.

Something that might interest others here is the fact that I did a rewrite for my own personal use of an IDE called AsmEdit which now works as a Linux task. And I did a rewrite
of Debug which is now also a linux task. I think it was Iczelon?
I thank the writer of those, for loads of information on all sorts of subjects.
If you want the source it can be had by the original author, I don't distribute it to others, but just use it for my own entertainment.
I have an OpenGl compatibility layer that creates menus and windows as objects and it is very simple to use as it is text driven and I guess it would be considered interpreted compiled.
I use Nasm for Linux.
I use gcc and make and ddd

Posted on 2007-06-22 18:45:15 by genomist