Hello there, i'm mew here. and i want to start over with the win32asm but i don't know where to start and i know somehow something because i stuidied the asm for dos so what i'm asking right now is. is there a text where i can refer to? is it similar to the dos thig that i learnd? thanks.
GT3, With a background in DOS assembler, the graduation to 32 bit assembler can be done once you get thwe swing of using operating system function calls. In DOS you used interrupts where in 32 bit windows you use API function calls. 32 bit assembler is both easier and a lot more powerful, it has a greater range of instructions and can work in multimegabyte size data easily. The stuff to get is the MASM32 package and install it. For reference material you need the WIN32.HLP file, MSDN if you have it is later and you need to get the 3 volume set of help files from Intel so that you have both the architecture and instruction reference. This should help to get you up and going in 32 bit MASM coding. Regards & Good luck. email@example.com
Hutch's right ;) If you know your x86 stuff, Win32ASM is a lot easier....
yea you can download the text book at www.ask.com and find the text book called "the art of assembly"
The fact is, it is the exact same thing in 32 bits as it is in 16 bits (or almost the same...) I've started to learn 32 bits assembly language for more than a year now and what I've discovered is that in fact it is very similar, it just look different cause all programmers use High Level Masm Syntax (Which by the way you should use cause it'll save you a lot of headaches believe me...) What I can do is explain you briefly how to display a message box in old style ASM push MB_OK ;Constant declare in Windows.inc push offset YourTitle ;offset of a Null terminated String push offset YourMessage ;offset of a Null terminated String push 0 ;Habitually the Handle of a window call MessageBox ;call to a function declared in user32.dll push 0 ;this must be NULL call ExitProcess ;call to a function in kernel32.dll all the .IF (or .if cause those aren't case sensitive by the way) and .while and so on are use just to simplify the reading of sources and anyway they're well interpreted by the Assembler so you should use them. If you don't want to (I did the same thing at first) you can still continue using those cmp and conditional jumps (ja,jb,jz,jnz,jbe,jae and so on...) plus you can still use ecx as a counter registry and loop with some reps or movs or cmps or scas but remember you don't have to set the DS anymore you're in a flat model. I strongly suggest you to compare this closely with the tutorial MessageBox from Iczelion (you can download it on this site)and you should understand a little bit more how it works. In facts you are not using interrupts anymore cause you're not allowed to in the Windows environment. So you should use the Win32API that are a set of function that Microsoft provides for programmers. Those API are like call to you're own function, you push parameters on the Stack and then you call the function. Note that the params are in reverse orders because of the STDCALL at the beginning of the prog (Tutorial #2) Now you need to learn about win32API... A good way to start is by reading the tutorials you find on this site, they're the best around (believe me I searched a lot before finding this site). Welcome in the 32 bits Assembly World, a world of Free Knowledge Free Sources, Free Help, OPTIMAL POWER OVER THE MACHINE... mrpink