I have just posted on my site, a help file called asmintro.hlp. It is at URL http://www.pbq.com.au/home/hutch/tricks/asmintro.hlp I would appreciate any feedback from people who have asked for introductory asm information. I will keep working on the file as I get the correct type of information and any feedback will help in making it a better file for beginners. Either replies on this forum or email to my address at email@example.com. Regards.
I think it's too specific and yet not specific enough (well not yet) hehe I'm all fuzzy again :P It's too assembler (which is hard for a newbie) but the asm itself doesn't get explained very thoroughly yet. I hope you don't mind me asing but what is wrong with AoA? Wonderfull effort though, keep it up.
Looks great, but i would suggest three things: 1) Macros: talk about using LOCAL within macros and why.. this was a bit of a leaning experience for me when i started using macros with JMP's in them. 2) Pointers: The section is perfect, but i would continue on its use by perhapst including a section on structures and then a section on function calling with pass by reference and pas by value examples to better show a new user the symantics of moving and getting to data within fucntions. 3) Lastly, in the string section, It took me a bit to learn a foriegn lable system (not shown in higher level languages), the @@ and @f, @b.. This is a minor thing but may save a new user his hair if you mentioned thier use and purpose. Other than these 3 critisisms, i think its a very good start and not too heavy on the code. (I bet most newbies come from some form of other language and thus has a start in thinking code anyways..) Hope This helps NaN
:Hiroshimator Nothing is wrong is AOA 16 bit version AOA HLA version I wouldn't call assembler textbook at all To say more - the more books about asm 32 bit specific programming the better. And The Assembler 32 Programming Book has not been written yet. There were nothing close to Knuth's AOP. Always very little about programming itself (style, algos, structures of big projects ect.) The Svin.
NaN, Thanks for the feedback, your points are useful ones so I will see what can be added to the help file to make it clearer. I agree with The Svin about AOA, 16 bit code is not much use in win32 and HLA is a different concept from pure assembler. Any further constructive comments are welcome as they help to make the help file more useful to newbies. Regards, firstname.lastname@example.org
In the help file you made typo in the "Addressing and Pointers" section, first you say this:
and then you say this:
mov eax, lpvar ; copy address into eax
Those two lines are the same, and you say they do different things. I like the file, but I think it lacks some details in some areas.
mov eax, lpMyVar ; copy the VALUE into eax
I have just posted a later version with an extra section on basic loop code design. I have incorporated some of the suggestions made so far. GogetaSSJ4, You will need to read the actual sequence in the file, not just skim the code. You can move anything into EAX if its the right size. Regards, email@example.com
Yes, you can, but with exactly the same line, what do you move? The address or the value?
This following information is contained in the Addressing and Pointers section of the help file.
Regards, firstname.lastname@example.org This message was edited by hutch--, on 2/13/2001 5:55:46 PM
; this is how you get the address of the variable ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lea eax, MyVar ; <<<<<<<< Original address ; this is how you make a pointer to that address ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mov lpMyVar, eax ; --------------------------------------------- ; you can then pass ot to a procedure in TWO ; different ways, BY VALUE or BY REFERENCE. ; --------------------------------------------- ; passing by VALUE ; ~~~~~~~~~~~~~~~~ mov eax, lpMyVar ; copy the VALUE into eax push eax ; push it as a parameter call MyProcedure ; call the procedure ; passing by REFERENCE ; ~~~~~~~~~~~~~~~~~~~~ lea eax, lpMyVar ; load the ADDRESS into eax push eax ; push it as a parameter call MyProcedure ; call the procedure ; ----------------------------------------- ; what you do in a procedure that receives ; this parameter when passed by REFERENCE ; ----------------------------------------- MyProcedure proc lpMyVar:DWORD mov eax, lpMyVar mov eax, The original address is now in eax. Look above at line "lea eax, MyVar", this IS the original address. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hi, Yes a nice into. Do you think you could include and introduction to windows messaging?. regards
Hello Hutch. I have been reading your Introduction to 32 bit assembler, and find it very informative. It would be nice to have a section on the proper use of buffers. I enjoyed reading it and will use it much, I am sure. Thanks for your continuing time and efforts. Bob:)
Guys, thanks for the feedback, I am trying to keep it in the ASM area rather than addressing windows functions directly as it is a different field that is addressed in other areas reasonably well. Bob, I will see what I can do in the buffers area as I get the time. Regards, email@example.com This message was edited by hutch--, on 3/2/2001 8:42:41 AM
Excellent, it answers almost all of my questions that were in my head swirling and jogging, really excellent!!!!