can anyone help?

Programming, for all ages and all languages.
Post Reply
thoover

can anyone help?

Post by thoover »

??? I'm tring to learn ASM, can anyone give me a site that i can learn ASM or some scorce codes becouse i can learn form scorces easly. ::)
Phugoid

Re:can anyone help?

Post by Phugoid »

Try cracking or otherwise reverse engineering some software you have on your computer. You will most likely fail (it is hard), but you will learn very much about assembly in the process, as well as maybe a little about how compilers generate code and the user-space environment in your operating system.

If you are on Windows, I suggest OllyDbg (http://www.ollydbg.de/) for a debugger.

When you load up your first program, you will most likely have no idea what any of the code means. So, I suggest you Google for the basics of x86 (such as what the registers are). Then, you can use a reference such as the NASM manual, Appendix B (http://alien.dowling.edu/~rohit/nasmdoc0.html) for information on what each instruction does.

Assembly source is a bit different from what you see after disassembly. I think, however, that stepping through code is more likely to give you an understanding of assembly than looking at it.
JAAman

Re:can anyone help?

Post by JAAman »

better than (more complete and acurate) the nasm manual would be intel vol.2(a & b), its a much larger book (over 1000 pages together) but much more complete and acurate -- and contains instructions the nasm manual doesn't (and more detail about some of the more complex ones)

[url=http://developer.intel.com/design/pentium4/manuals/index_new.htm#sdm_vol1]
## ---- ----- ------ Intel Manuals[/url]

you only need vol 2 for learning ASM,

vol.1 will give you more information on the basics of the CPU -- important for understanding how the program interacts with the CPU

vol.3 is only necessary for OSdevers and BIOS writers
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:can anyone help?

Post by Candy »

> vol.3 is only necessary for OSdevers and BIOS writers

They didn't ship me a copy! :(...

I heard they were shipping them now, so I'm going to order one...

PS: you can also order books from AMD, or download them. You'd want the instruction set, which is volume 3 from their series. 64-bit media (MMX, 3DNOW) and floating point is volume 5 and 128-bit media is volume 4. Order numbers are 24594 for volume 3 (which you'll want), 26568 for volume 4 and 26569 for volume 5 (4+5 were added later on, so they have higher numbers. Intel just made it 2A and 2B).

3 also includes system instructions, which you'll probably not need. They're in a separate section though.

I consider the AMD manuals to have a better overview, whereas intel orders everything on alphabet, you get it by the generic category in AMD's manuals. Makes me skip right ahead of a load of instructions my cpu doesn't have, or that I cannot use in usermode. Also, for OSDEV, all relevant new opcodes are grouped together.

Needless to say, since Intel didn't ship the one important one, the rest is now carrying my bed (which broke, and is now fixed) together with the 4th print of the indispensable pc hardware book (since it contains less than the 3rd print, which I also have).
JAAman

Re:can anyone help?

Post by JAAman »

well i prefer the Intel layout over the AMD one (easier to find specific instructions)

my copy is old (before they split vol.2 -- revision 12) but i just ordered another copy (which should include the 64bit extensions)
i also have the AMD ones

i tried to get an updated copy (over a year ago -- revision 14), but they only sent vol.1 and 2a (not 2b or 3)
but they have the link back on the download page (where it used to be before they removed it to discourage orders)

eedless to say, since Intel didn't ship the one important one, the rest is now carrying my bed (which broke, and is now fixed) together with the 4th print of the indispensable pc hardware book (since it contains less than the 3rd print, which I also have).
well, i refer constantly to vol.2 (though i tend to doubt my memory more than most people)
Fixthestar248

Re:can anyone help?

Post by Fixthestar248 »

Go to a used book store, and look for Assrmbly Language for the PC, 3rd edition, by Peter Nortan and John Socha. It may be 13 years old, but it teaches you the best, well ::), in my appinion.
User avatar
kataklinger
Member
Member
Posts: 381
Joined: Fri Nov 04, 2005 12:00 am
Location: Serbia

Re:can anyone help?

Post by kataklinger »

Well it isn't enough to know instruction set of CPU to know how to code in assembler. Asm. programming is a way of thinking and very good book about it is Art of Assembly Language by Randall Hyde and the best thing is that it's free(HTML or PDF).

I got copy of Intel's manuals few days ago (SDG1, SDG2a, SDG2b, SDG3 and Optimization Reference Manual) 8)

Does anybody know internet address where I can order AMD manuals. And I heard that they ships only in USA, is that right?
JAAman

Re:can anyone help?

Post by JAAman »

last i checked (been a few weeks), AMD wasn't shipping the hard-copy (was looking to update mine)

however, the information is almost identical between the AMD and intel versions, with the only significant difference being the CPUID information (which is availible in a seperate download, being only one small document), however the layout is different, some people like it better, some prefer the intel manuals -- though there are some things i like better in the AMD manuals, (particularly in the ISR books, i prefer AMDs method of declaring changes to FLAGS), i have both (and you should get both anyway)

the AMD manuals can be downloaded at http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_7044,00.html
User avatar
kataklinger
Member
Member
Posts: 381
Joined: Fri Nov 04, 2005 12:00 am
Location: Serbia

Re:can anyone help?

Post by kataklinger »

Post Reply