Alsalam alikom wa ra7mat allah wa barakatoh
It's time for publishing... at least as we planned to.. but for our bad luck.. it's exaaaaaaaaaams' time so we have so limited time to complete the googlepages we started and to put a well formed documentation online..
But let me tell u the general Ideas we tried to demonstrate:
OOAssembly as briefly described before Here
Let me tell u an example for the language :
class Pixel
public dword x
public dword y
endClass
class Window : Pixel
public proc Initialize
...
...
endProc
public proc PutPixel
...
...
endProc
endClass
class Main
proc Main
Window wnd
call wnd.Initialize
mov ax, #3
mov wnd.X, ax
mov wnd.Y, ax
call wnd.PutPixel
endProc
endClass
This is assembly yes.. expected output size.. yes, reliable..yes, readble.. yesss, powerful.. yesss
this example demonstrates many things..
1- Inheritance : child classes contains parent's members with no dublicate code..
2- VGA Memory, u have 128 x 128 pixels, 4-bit color each memory.. that is about 8Kb memory.. any change in it will affect the output window..
3- Dynamic memory Allocation.. Window wnd is dynamically created in run time wnd will contain a pointer to the created object.. any proc can access it's local variables as offest from "loc" which is a pointer to the start address allocated for this process.. or can access it's classes member as offset of "this" which is a pointer to the start address allocated for this class instance..
- Compiler output structure :
We don't output any variables that the user created.. all variables we use r
last : Data 0
this : Data 0
loc : Data 0
tmp : Data 0
last is a pointer to the last allocated memory.. tmp is used as a temporary space for some further calculations...
This was a brief about the language and the compiler..
Another thing is the Debugger
U can debug forward or backword.. step by step or till breakpoint or whole program run..
backword navigation is smartly implemented.. we don't take snapshot of all variables and memory locations.. we keep track of the changes only...
we have watch.. quickwatch.. values inside objects of classes.. or address of the class.... etc..
stepping can be on UserLines (that OO Code written above), or on generated Assembly, or on MicroOperations level...
Another thing is dynamically debugging on a Flash model for the Computer Design... u can c leds on the registers changed and u can see the new value of them u can also c which Control Lines r currently active...etc...
this is for now.. Let's study a little :) ...
Alsalam alikom wa ra7mat allah wa barakatoh
It's time for publishing... at least as we planned to.. but for our bad luck.. it's exaaaaaaaaaams' time so we have so limited time to complete the googlepages we started and to put a well formed documentation online..
But let me tell u the general Ideas we tried to demonstrate:
OOAssembly as briefly described before Here
Let me tell u an example for the language :
class Pixel
public dword x
public dword y
endClass
class Window : Pixel
public proc Initialize
...
...
endProc
public proc PutPixel
...
...
endProc
endClass
class Main
proc Main
Window wnd
call wnd.Initialize
mov ax, #3
mov wnd.X, ax
mov wnd.Y, ax
call wnd.PutPixel
endProc
endClass
This is assembly yes.. expected output size.. yes, reliable..yes, readble.. yesss, powerful.. yesss
this example demonstrates many things..
1- Inheritance : child classes contains parent's members with no dublicate code..
2- VGA Memory, u have 128 x 128 pixels, 4-bit color each memory.. that is about 8Kb memory.. any change in it will affect the output window..
3- Dynamic memory Allocation.. Window wnd is dynamically created in run time wnd will contain a pointer to the created object.. any proc can access it's local variables as offest from "loc" which is a pointer to the start address allocated for this process.. or can access it's classes member as offset of "this" which is a pointer to the start address allocated for this class instance..
- Compiler output structure :
We don't output any variables that the user created.. all variables we use r
last : Data 0
this : Data 0
loc : Data 0
tmp : Data 0
last is a pointer to the last allocated memory.. tmp is used as a temporary space for some further calculations...
This was a brief about the language and the compiler..
Another thing is the Debugger
U can debug forward or backword.. step by step or till breakpoint or whole program run..
backword navigation is smartly implemented.. we don't take snapshot of all variables and memory locations.. we keep track of the changes only...
we have watch.. quickwatch.. values inside objects of classes.. or address of the class.... etc..
stepping can be on UserLines (that OO Code written above), or on generated Assembly, or on MicroOperations level...
Another thing is dynamically debugging on a Flash model for the Computer Design... u can c leds on the registers changed and u can see the new value of them u can also c which Control Lines r currently active...etc...
this is for now.. Let's study a little :) ...
Alsalam alikom wa ra7mat allah wa barakatoh
This comment has been removed by a blog administrator.
ReplyDelete