Hello to all.
I'm new to the board, and new to programming in general, also new to assembler programming.
I have 4 questions.

1)Is there going be an HLA in the future, because despite of what some are saying abouth HLA, i kinda love the the HLA concept , i hope it don't fade away just like delphi did.
It's a great way for poeple like me who does it the hard way, with lots of books,(not in school that is).


2)Is there a HLA Help file that i could use in RadASM IDE , or any hint how to convert the HTML or PDF files to a help file .?

3);Is this the main HLA forum or is there more ??

4)Ok i'm a n00b, so i have been making these little programs so i can understand a little what's going on in the stack and in this procedure i've made.
As i said before i'm one of those poeple who love to do things the hard way, so here a little code iv? made, where is my procedure's data at is it at ????, because i can't find it there.
can someone clear my mind please, and remember i'm a n00b, so be gentle with me.


program pushpop;

//
#include( "stdlib.hhf" )
#include( "console.hhf")
const
myText := "Hello and welcome to Assembly Language with HLA";
conText := "Press any key to continue";
Const_Data := 6666666;
Const_Data_Two := 8888888;
static
Test_Data_One : dword := 1234567;
Test_Data_Two : dword := 7654321;
Test_Const_Data : dword := Const_Data;
Test_Const_Data_Two : dword := Const_Data_Two;
TestPtr : dword;

procedure Test_Var(var Var_To_Push:dword );


begin Test_Var;


push (eax); //save register this would be [esp+12]
mov (Var_To_Push,eax);
push (eax); // this should be [esp+16]

stdout.put("In our procedure our ESP points to ---------------->[ ", esp ," ] ",nl);
stdin.readLn(); // check the sht here
pop (eax);
pop (eax);


end Test_Var;



begin pushpop;

stdout.put( myText, nl, nl );
stdout.put( conText );
stdin.readLn();

stdout.put("Before we push anything on the stack ");
stdout.put("ESP points to[ ", esp ," ] ",nl);

push (Test_Data_One);
stdout.put("Push the first test data on the stack ");
stdout.put("ESP points to[ ", esp ," ] ",nl);

push (Test_Data_Two);
stdout.put("Push the second test data on the stack ");
stdout.put("ESP points to[ ", esp ," ] ",nl);

push (ebx); // this wil become [esp+4]
mov (9999999,ebx);
Test_Var([ebx]); // wat will happen here ..???

// try getting the data on the stack that our proc pushed

xor (ebx,ebx); // zero eax
mov ([esp+20],ebx); // copy pushed data form procedure [esp+20] into ebx
stdout.put("Data on [ESP+20] is now[ ",( type int32 ebx), " ] ",nl);


xor (ebx,ebx); // zero eax
mov ([esp+4],ebx); // copy data at [esp+4] into ebx
stdout.put("Data on [ESP+4] is now [ ",( type int32 ebx), " ] ",nl);

xor (ebx,ebx);
mov ([esp+8],ebx);
stdout.put("Data on [ESP+8] is now [ ",( type int32 ebx), " ] ",nl,nl);

pop (ebx);
pop (Test_Data_Two);
stdout.put("After pop Test_Data_One " );
stdout.put("ESP points to[ ", esp ," ] ",nl);

pop (Test_Data_One);
stdout.put("After pop Test_Data_Two " );
stdout.put("ESP points to[ ", esp ," ] ",nl,nl);

stdout.put("Press any key to clear the screen",nl,nl);
stdin.readLn();
console.cls();

// -----------------------------------------------
// Pointer testing here
// Change values via a Pointer
// -----------------------------------------------
mov (&Test_Data_One,eax);
mov ([eax],ebx);
stdout.put("Old data Test_Data_One : ",(type int32 ebx),nl);
// Hmmm this won't work
//mov ($646569,[eax]);
mov (Test_Const_Data,[eax]);
mov ([eax],ebx);
stdout.put("New data Test_Data_One : ",(type int32 ebx),nl,nl);
// ----------------------------------------------
// Pointer Testing old fashion style
// Change value via pointer
// ----------------------------------------------

lea (Test_Data_Two,eax);
// Hmmm not working
//mov (Test_Data_Two,eax);
mov ([eax],ebx);
stdout.put("Old data Test_Data_Two : ",(type int32 ebx),nl);

mov (Test_Const_Data_Two,[eax]);
mov ([eax],ebx);
stdout.put("New data Test_Data_Two : ",(type int32 ebx),nl,nl);

stdout.put( conText );
stdin.readLn();

end pushpop;

Posted on 2004-12-10 19:10:31 by zellennium
1. HLA is currently still being regularily developed. As the sources are readily available, it will remian as long as there are people who use it :)

2. There is a general help file (that includes HLA) as well as some sample projects at the RADAsm home page.

http://radasm.visualassembler.com/

3. No main forum, there is another fourm at Hutch's site

http://masmforum.com/index.php

And there is the aoaprogramming group on Yahoo

http://groups.yahoo.com/

There are also general assembly news groups on Google: alt.lang.asm and alt.lang.asm.x86, the latter more friendly than the former.

Now some comments on your code:



mov (9999999,ebx);
Test_Var([ebx]); // wat will happen here ..???


This could cause a memory access violation.

xor (ebx,ebx); // zero eax
mov (,ebx); // copy pushed data form procedure into ebx
stdout.put("Data on is now[ ",( type int32 ebx), " ] ",nl);


Prior to this point, there are only 3 outstanding dwords of pushed data on the stack (the stack is restored, as it should be after the procedure), addressed at , , and . is way out of range.


// Hmmm not working

//mov (Test_Data_Two,eax);


Because this moves the value of "Test_Data_Two" into EAX, rather than the address. If you want the static address of Test_Data_Two, use:
mov ( &Test_Data_Two, eax);
Posted on 2004-12-12 02:42:00 by Kain
1. HLA is currently still being regularily developed. As the sources are readily available, it will remian as long as there are people who use it :)


Well i sure hope so because i,m learning a lot from HLA book, and HLA seems (TO ME) a great way to slide into assembly programming.


2. There is a general help file (that includes HLA) as well as some sample projects at the RADAsm home page.


Hmmm wel this didn't work for me, i was looking for a help file wich works like the win32api help file, by pressing F1 you get instant help in RadASM, or Hide.



Now some comments on your code:



mov (9999999,ebx);
Test_Var([ebx]); // wat will happen here ..???


This could cause a memory access violation.



Yep it did, and i fixing it now.


xor (ebx,ebx); // zero eax
mov (,ebx); // copy pushed data form procedure into ebx
stdout.put("Data on is now[ ",( type int32 ebx), " ] ",nl);

Prior to this point, there are only 3 outstanding dwords of pushed data on the stack (the stack is restored, as it should be after the procedure), addressed at , , and . is way out of range.



Well as i said before i'm running when i should be walking, i haven't hit that chapter yet, but i was playing around with the proc, i know that when you use @noframe and @frame, something changes, not shure what, but i think ebp get's pushed on the stack and esp get copied.
But i fixed this one 2.



// Hmmm not working

//mov (Test_Data_Two,eax);


Because this moves the value of "Test_Data_Two" into EAX, rather than the address. If you want the static address of Test_Data_Two, use:
mov ( &Test_Data_Two, eax);

Yes i know this now i could of use lea (Test_data_Two,eax) also same
effect i think.

Thank you for replying and for your help.
Posted on 2004-12-13 13:53:18 by zellennium
Hmmm wel this didn't work for me, i was looking for a help file wich works like the win32api help file, by pressing F1 you get instant help in RadASM, or Hide.


Try the Borland site to get the API .hlp file (kind of old, but quidk to load)

ftp://ftp.borland.com/pub/delphi/techpubs/delphi2/

The file is called Win32.zip

The SDK can be downloaded from microsoft.com (huge file).
Posted on 2004-12-13 19:55:55 by Kain
Hmmm wel this didn't work for me, i was looking for a help file wich works like the win32api help file, by pressing F1 you get instant help in RadASM, or Hide.


Try the Borland site to get the API .hlp file (kind of old, but quidk to load)

ftp://ftp.borland.com/pub/delphi/techpubs/delphi2/

The file is called Win32.zip

The SDK can be downloaded from microsoft.com (huge file).

Well i allready have this file , but was looking for a HLA help file wich could work within RadASM,so when my cursur stands on let's say @nodisplay that Rad will open a HLA help file instead of win32api help file.
But thanks anyway.
Posted on 2004-12-13 20:29:55 by zellennium
I'm afraid there aren't any. Randall has taken the care to make PDF and HTML versions of HLA help files but those won't work the same way.

Sounds like an idea though. I'll have to look into the cost/benefit factor to see if it's worth doing (or even doable) with the existing files.
Posted on 2004-12-13 20:48:13 by Kain
I'm afraid there aren't any. Randall has taken the care to make PDF and HTML versions of HLA help files but those won't work the same way.

Sounds like an idea though. I'll have to look into the cost/benefit factor to see if it's worth doing (or even doable) with the existing files.


Ooh it's worth it allright, i think it will make things easyer especially for beginners like me.
I use grep but this doesn't always give you what you ask for.
I hope someone does make this help file.
Don't know abouth the cost, but for the benefit factor it's worth it.
:lol:
Posted on 2004-12-14 15:09:18 by zellennium