Jump to content


Photo
- - - - -

Assembly


  • Please log in to reply
18 replies to this topic

#1 blackzero

blackzero

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts
  • Location:Pennsylvania

Posted 19 August 2008 - 07:17 PM

I've been trying to find a good tutorial for learning assembly, im a bit confused because im pretty sure that its telling me that with each different type of computer there is a different way of doing assembly, well every tutorial i find is x86 but i have a 64-bit processor so im pretty sure that means that i have to do things slightly different? if i'm wrong about any of this please correct me but if i am right does anyone know of a 64-bit assembly tutorial cause i seem to be only able to find the x86 ones and i have tried googleing for a 64-bit one but im not even completly sure what i need to loook for in order to get started, i do have some programming experience in c, c++, c#, and java but i want to find a tutorial that treats you like a complete newb just so that i know they will cover everything so i dont miss anything. thanks in advance for any help anyone can give me in finding more info.

#2 livinded

livinded

    Dangerous free thinker

  • Agents of the Revolution
  • 1,942 posts
  • Location:~/

Posted 19 August 2008 - 08:03 PM

the 64bit intel/amd cpus are just an extended and expanded version of the x86 processors. The instruction set and registers are basically identical with some additions to the x86_64 processors. Assuming you are using Linux, the book you want to get is Professional Assembly Programming from Wrox. It's the best resource I've found for learning ia32 assembly. It doesn't cover long mode (64bit support) but honestly most of what you need for that can be found in the intel architecture manuals which are available in printed and digital format on the intel website for free.

Edited by livinded, 19 August 2008 - 08:07 PM.


#3 blackzero

blackzero

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts
  • Location:Pennsylvania

Posted 19 August 2008 - 08:09 PM

thank you for such a quick response, well i am using windows, i know shameful but every attempt at learning linux has failed especially since i have a newer laptop that linux has no drivers for the wireless card and i refuse to go without wireless lol, so is it that the 64-bit version has some extra ones or are some of the x86 ones changed?

#4 blackzero

blackzero

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts
  • Location:Pennsylvania

Posted 19 August 2008 - 09:30 PM

why did you remove the part on the art of assembly?

#5 livinded

livinded

    Dangerous free thinker

  • Agents of the Revolution
  • 1,942 posts
  • Location:~/

Posted 20 August 2008 - 06:04 PM

why did you remove the part on the art of assembly?

Because it wasn't the book I was thinking of and I can't remember the name of the correct one.

#6 blackzero

blackzero

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts
  • Location:Pennsylvania

Posted 20 August 2008 - 10:25 PM

oh well i got art of assembly but it seems to be somewhat compiler specific, its talking about specifically using the HLA assembler...i dont know if that means that the HLA assembler adds its own stuff so i couldn't compile with other compilers or if it doesn't mean anything at all, but i will have to read over that part again cause i dont want a compiler specific tutorial, i just want to learn the basic concepts of assembly, one of my goals is to make a program to allow me to write directly to a flash drive in a custom formatting so that other people wouldn't even be able to tell something is even on the flash drive unless they have my program...thanks for your help

#7 livinded

livinded

    Dangerous free thinker

  • Agents of the Revolution
  • 1,942 posts
  • Location:~/

Posted 21 August 2008 - 03:40 PM

There is no reason to use assembly to write this, it could be done with any language which supports file I/O. HLA is basically a bunch of macros that you drop assembly around. There are high level conditional macros and other things you would find in higher level languages which don't directly map to an opcode of the architecture.

#8 mirrorshades

mirrorshades

    aviatorglasses

  • Agents of the Revolution
  • 951 posts
  • Gender:Male

Posted 21 August 2008 - 09:39 PM

I bought this book a few years ago:

http://www.amazon.co.../dp/0471375233/

I really like it. It has a very light writing style, so it is somewhat easy to follow.

I think for assembly language, a "tutorial" would be insufficient. It's not something like you may find in other languages where, for example, if you are already pretty good with Python, you would tend to pick up Ruby fairly quickly. Assembly language is its own beast, and involves a LOT of memorizing magic numbers and seemingly-cryptic content to make it work.

I've never made a real serious go at it, but I still highly recommend the book. If you want to get down to a level closer to the hardware, assembly language is the place to be.

#9 Aghaster

Aghaster

    The Frenchman

  • Agents of the Revolution
  • 2,093 posts
  • Country:
  • Gender:Male
  • Location:Quebec, Canada

Posted 21 August 2008 - 10:11 PM

I bought this book a few years ago:

http://www.amazon.co.../dp/0471375233/

I really like it. It has a very light writing style, so it is somewhat easy to follow.

I think for assembly language, a "tutorial" would be insufficient. It's not something like you may find in other languages where, for example, if you are already pretty good with Python, you would tend to pick up Ruby fairly quickly. Assembly language is its own beast, and involves a LOT of memorizing magic numbers and seemingly-cryptic content to make it work.

I've never made a real serious go at it, but I still highly recommend the book. If you want to get down to a level closer to the hardware, assembly language is the place to be.


I was going to propose that book which I also own. Definitely a great book on assembly that covers greatly the background knowledge you should have before getting into the real stuff, so you don't get lost at all. Buy it, it is worth it.

I also agree with the "don't go for tutorials". Tutorials on the internet will usually get directly to the core of the content, which is far too fast for most people. You really need reading material of the quality of a good book.

#10 INT03h

INT03h

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts

Posted 21 August 2008 - 10:40 PM

I also have that book, not only is it good for learning basic assembly, but how everything works and used to work (segmented memory) on a very fundamental level. Its well written and is just an excellent read even if you never plan on writing in assembler. By learning the low level stuff, you have a better understanding of what your high level code is doing and how you can optimize it/strengthen it.

#11 blackzero

blackzero

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts
  • Location:Pennsylvania

Posted 22 August 2008 - 04:12 PM

thanks a lot guys, ill see about obtaining a copy of this

#12 livinded

livinded

    Dangerous free thinker

  • Agents of the Revolution
  • 1,942 posts
  • Location:~/

Posted 22 August 2008 - 05:41 PM

That was the book I was trying to think of for windows.

#13 xof7

xof7

    Hakker addict

  • Members
  • 558 posts
  • Location:Spokane, Washington

Posted 22 August 2008 - 06:57 PM

Does any body have a link to order the intel docs? I remember someone on IRC a while back talking about ordering them. Maybe it was Wintermute21?

#14 livinded

livinded

    Dangerous free thinker

  • Agents of the Revolution
  • 1,942 posts
  • Location:~/

Posted 22 August 2008 - 07:58 PM

It was probably me, go to http://www.intel.com...cessor/manuals/

#15 WhatChout

WhatChout

    Dangerous free thinker

  • Members
  • 814 posts

Posted 23 August 2008 - 03:33 AM

I found a book by the name of "IBM PC Assembly language programming" by Peter Able very useful.

#16 Wintermute21

Wintermute21

    DDP Fan club member

  • Members
  • 53 posts

Posted 23 August 2008 - 12:43 PM

I remember someone on IRC a while back talking about ordering them. Maybe it was Wintermute21?


Yeah, that was me, hehe.

i can attest to the fact
that shipping is super-fast,
it took 6 days from the time i
called Intel to the time they were
at my door :)

#17 m0untainrebel

m0untainrebel

    HACK THE PLANET!

  • Members
  • 60 posts

Posted 24 August 2008 - 07:45 PM

I'm also interested in learning assembly. I just ordered the book Reversing: Secrets of Reverse Engineering. It looks like it's covering a lot of the stuff I'm interested in learning, and has good reviews, but I haven't actually gotten it in the mail yet.

#18 INT03h

INT03h

    I broke 10 posts and all I got was this lousy title!

  • Members
  • 14 posts

Posted 31 August 2008 - 10:09 AM

I also just started to read that book, I'm through the first and second chapter so far, and it does seem good, knowledge of assembly language will help because the book only provides a cursory overview of IA-32 assembly. I would say read that, then you will know what you don't know, which is half the battle sometimes.

#19 oddflux

oddflux

    SUPR3M3 31337 Mack Daddy P1MP

  • Members
  • 380 posts
  • Location:cyberspace

Posted 08 September 2008 - 01:50 PM

Programming from the Ground up is a free book on IA32 asm; it covers it using the *nix environment

It's what I read.. I liked it - google it




BinRev is hosted by the great people at Lunarpages!