Assembly language, anyone?

Options
I'll probably start poking around once I get to work, but figured it might be a good question for here. I don't know jack about assembly language, and want to find a good introductory book or primer. If it ties into Windows internals and system calls, then even better.

Does anyone have suggestions?

Replies

  • _Thanatos_
    Options
    What kind of assembly language? There're many variants that target different architectures. There's MIPS, RISC, 68K, x86 for Intel based boards, etc. They all have different registers, and opcodes and capabilities.

    Although if you don't know this book may be a good place to start..

    http://www.amazon.com/dp/0471375233/?tag=stackoverfl08-20
  • CoderGal
    CoderGal Posts: 6,800 Member
    Options
    Computer Organization & Design The Hardware/Software Interface (Fourth Edition), by David A. Patterson and John L. Hennessey, Morgan Kauffman (2009)
    ISBN 978-0-12-374493-7

    ^Sorry, that's about the only one I've ever looked at so that's all I got.

    Online is cheap :P

    Start: http://en.wikipedia.org/wiki/MIPS_architecture
  • ScatteredThoughts
    ScatteredThoughts Posts: 3,562 Member
    Options
    What kind of assembly language? There're many variants that target different architectures. There's MIPS, RISC, 68K, x86 for Intel based boards, etc. They all have different registers, and opcodes and capabilities.

    Although if you don't know this book may be a good place to start..

    http://www.amazon.com/dp/0471375233/?tag=stackoverfl08-20

    Well, most of what i would be dealing with is malware targeting Windows. I imagine x86 is really the only thing which would apply for my needs.

    ETA - Thanks. Will take a look at that book. I like that has some linux coverage. We don't deal with it as much on the malware side, but definitely has relevance.
    Computer Organization & Design The Hardware/Software Interface (Fourth Edition), by David A. Patterson and John L. Hennessey, Morgan Kauffman (2009)
    ISBN 978-0-12-374493-7

    Will also take a look at that. :)
  • CoderGal
    CoderGal Posts: 6,800 Member
    Options
    Computer Organization & Design The Hardware/Software Interface (Fourth Edition), by David A. Patterson and John L. Hennessey, Morgan Kauffman (2009)
    ISBN 978-0-12-374493-7

    Will also take a look at that. :)
    It's a mips book, sorry, I don't have any scope outside of that.

    And now I'd like to share a story. I sat in on a seminar the Computer Science Faculty was having here and one Professor was suggesting they teach Scala in the beginning of the degree. Well, another Professor was outraged lol. He asked who in their right minds would want to learn that? At which I piped up "And that's coming from the guy who teaches Assembly, so that must say something". lol</stoneAges>
  • _Thanatos_
    Options
    Computer Organization & Design The Hardware/Software Interface (Fourth Edition), by David A. Patterson and John L. Hennessey, Morgan Kauffman (2009)
    ISBN 978-0-12-374493-7

    Will also take a look at that. :)
    It's a mips book, sorry, I don't have any scope outside of that.

    And now I'd like to share a story. I sat in on a seminar the Computer Science Faculty was having here and one Professor was suggesting they teach Scala in the beginning of the degree. Well, another Professor was outraged lol. He asked who in their right minds would want to learn that? At which I piped up "And that's coming from the guy who teaches Assembly, so that must say something". lol</stoneAges>

    I wouldn't really look at it like that. Languages are just tools. Each with their own advances & disadvantages. Assembly is still widely used in certain areas... like embedded systems, OS development, compiler design, etc.

    Scala is a multiparadigm language and could easily be used to teach OOP as well as Functional programming. Once learned, one could easily pick up other languages. So I don't see the big deal about learning it first. Hell I started out with C. Heh
  • CoderGal
    CoderGal Posts: 6,800 Member
    Options
    Computer Organization & Design The Hardware/Software Interface (Fourth Edition), by David A. Patterson and John L. Hennessey, Morgan Kauffman (2009)
    ISBN 978-0-12-374493-7

    Will also take a look at that. :)
    It's a mips book, sorry, I don't have any scope outside of that.

    And now I'd like to share a story. I sat in on a seminar the Computer Science Faculty was having here and one Professor was suggesting they teach Scala in the beginning of the degree. Well, another Professor was outraged lol. He asked who in their right minds would want to learn that? At which I piped up "And that's coming from the guy who teaches Assembly, so that must say something". lol</stoneAges>

    I wouldn't really look at it like that. Languages are just tools. Each with their own advances & disadvantages. Assembly is still widely used in certain areas... like embedded systems, OS development, compiler design, etc.

    Scala is a multiparadigm language and could easily be used to teach OOP as well as Functional programming. Once learned, one could easily pick up other languages. So I don't see the big deal about learning it first. Hell I started out with C. Heh
    I started out with C/C++. I still think teaching Scala as the main programming language is a terrible idea (which is how they were talking about it). Graduate with a degree and go yay I know Scala. Especially if what you are trying to learn is algorithms, I'd say Scala would make that...time consuming.
  • chessgeekdavidb
    chessgeekdavidb Posts: 208 Member
    Options
    Free pdfs from Intel, everything you need to know about x86 assembly language

    http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

    After that there is a Windows Internals series by Mark Russinovich that will give you the Windows internals pieces.
  • ScatteredThoughts
    ScatteredThoughts Posts: 3,562 Member
    Options
    Free pdfs from Intel, everything you need to know about x86 assembly language

    http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

    After that there is a Windows Internals series by Mark Russinovich that will give you the Windows internals pieces.



    Cool. Thanks for the reference link and recommendation!

    BTW - Do you play on chess.com, or any of the other online sites? :)
  • CoderGal
    CoderGal Posts: 6,800 Member
    Options
    And at 1am instead of making my simulated MIPS processor in java that takes in assembly code I am on this fitness site...watching people talk about chess in an assembly geek post :tongue:
  • chessgeekdavidb
    chessgeekdavidb Posts: 208 Member
    Options
    Free pdfs from Intel, everything you need to know about x86 assembly language

    http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

    After that there is a Windows Internals series by Mark Russinovich that will give you the Windows internals pieces.



    Cool. Thanks for the reference link and recommendation!

    BTW - Do you play on chess.com, or any of the other online sites? :)

    I play on gameknot.com
  • chessgeekdavidb
    chessgeekdavidb Posts: 208 Member
    Options
    And at 1am instead of making my simulated MIPS processor in java that takes in assembly code I am on this fitness site...watching people talk about chess in an assembly geek post :tongue:

    Geeks Я US! Have fun with your code, I've been writing code for for than 35 years :)