When i was learning my first programming language "turing"
in high school, problems such as making windows, solving equations and etc tought me alot. Basicly what i want is someone advance in asm to post question, it could be every few days
starting from beginner level. thx
Posted on 2002-02-04 15:11:01 by k0d
Ok!

1. What is ASM? :grin: ha ha ha just joking

Seriously, I don't consider myself "advance" but here goes:

Level: Beginner

1. What's the difference between xor eax, eax - sub eax, eax - mov eax, 0
Posted on 2002-02-04 15:29:03 by stryker
Svin posts some puzzles in the Algorthims section every so often - really great stuff to test your mind. Also, there is the Hugi Size coding competition - but it's DOS.
Posted on 2002-02-04 15:42:21 by bitRAKE
k0d,

There is some advantage in learning the very basic machanics first, it will save you a lot of grief in the early stages if you get the swing of how to use the instructions (mnemonics) and the basics of windows API functions and how to look up the data and to call them successfully.

Once you get up to this stage, the problem solving approach you mentioned will be a good one to develop further. Be careful about biting off more than you can chew at the start as it often makes the learning process a lot harder and frustrating. I have seen guys start in ASM who want to write a full web browser and they almost certainly give up in frustration.

Set yourself simple goals first and as you learn how to do more things, make the goals more complex. This way you get a body of code that you understand well and you can make progress on the basis of what you already know.

Regards,

hutch@movsd.com
Posted on 2002-02-04 17:43:07 by hutch--
I also used WinOOT for high school programming courses.

Funny enough they have some cookies that help you to use to almost use it like asm. I used it this year for a contest and got so fed up I made my own pointers:)

Its going to be a big jump from Turing to ASM, I'll tell you that.

Do some reading on the cpu and memory.

... hey, I have a small quiz for you if you want.
You will need to do a little reading. (yes there is 1 trick question)


1. Number bits are in a byte _____

2. Bytes in a DWORD _____

3. Largest positive integer that will fit in a byte _____

4. These numbers in base ten: 0Ah, 8Z1h, and 3Fh _____ ______ _____

6. Available bits in the registers eax and bx ____ ____

5. Explain the flat memory model:





7. Explain what each of these are "mov", "jmp", "push", "pop", what they do, and how to use them.







Posted on 2002-02-04 22:17:28 by -T-
Things that will help you learn asm:

1. Learn how to convert between decimal, hexadecimal, octal and binary these four are very important. There is an asm calculator that can convert in between values but I recommend that you do this by pencil and paper.

2. If you have these help files
x86eas.hlp (forgot the url) - Complete guide including FPU instructions, flags affected by a particular instruction...
opcodes.hlp (included in masm32) - Guide for checking how many clock cycles, bytes used... an instruction will have

These are very handy help files, small and can fit in a floppy if ever go to your school and do some asm stuff(also don't forget to zipped up the assembler and the linker plus the necessary libraries, include files, and the dll's).

-------------------------------------------------------------------------
Gdi32.lib(Optional)
User32.lib
Kernel32.lib
masm32.lib
Gdi32.inc(Optional)
masm32.inc
user32.inc
kernel32.inc
Window.inc
Ml.exe
Link.exe
Rc.exe
Mspdb50.dll
Msdis100.dll
Rcdll.dll
x86eas.hlp
Opcodes.hlp
-------------------------------------------------------------------------

These files are the things you'll ever going to need to code in win32asm with simple windows, messageboxes, dialogs...

3. Try experimenting: Don't do some complicated stuff, make it simple as it can be. If you want to try to show the difference of two values don't make a window just show a messagebox.

QUESTION: What's the difference between xor eax, eax - sub eax, eax - mov eax, 0
HINT: Which flags are affected, which one is faster/slower, which one is the "oldest" method used(this third hint is just for fun).

Hope that helps :grin:
Posted on 2002-02-04 23:55:54 by stryker
I agree..

However, i do think the win32api help file is also a must. But i do realize you did indicate "simple" win32 stuff :)

I was totaly lost (hated using the MSDN back then) untill i got this help file, then i took right off.. Its all about the info you have to work with :)

Back to the point, take to umberg6007's advice! Start small and prove to yourself your taking tiny steps before you need to worry about the world of win 32 API's.


Last thought, i receintly added two sections to my web page (slowly building it up ~ still small tho ). In the "Some Help" option you will find all the help files mentioned, and a few more..

http://nan32asm.cjb.net/

Or direct link (cjb is getting finiky these days):

http://www27.brinkster.com/nan32asm/

Hope it helps..
:alright:
NaN
Posted on 2002-02-05 00:38:31 by NaN
When you got a good graps of the asm basics, try my mosaic tutorial (read it online in the new layout). It shows you step by step how to build the game and at the end of it it has some exercises you can try.

Thomas
Posted on 2002-02-05 12:53:13 by Thomas
thx everyone.
Posted on 2002-02-05 14:42:08 by k0d