User Tools

Site Tools


recommended_reading_asm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

recommended_reading_asm [2013/08/13 00:44] (current)
Line 1: Line 1:
 +"If you want to learn assembly you need to be motivated enough to do it
 +on your own. If you want to get good enough at reversing to work on
 +malware you will need to know assembly. That's all there is to it. Buy
 +a book and get started!
 +[...]
 +you won't learn assembly by coming to NSL once a month. You'll learn it ''
 +the Linux way (tm): by beating your face against a wall until it makes sense.''
 +[...]''
 +Go wild! All the assembly references posted here are helpful. Read as''
 +much as you can before the next meeting : )"'''''- datagram'''
 +
 +==Articles==
 +::'''Title - Writing DOS utilities with DEBUG, part 1'''
 +
 +::Author - Prosise, Jeff<nowiki>Insert non-formatted text here</nowiki>
 +::PC Magazine
 +::Sep 28, 1993
 +
 +::Abstract -    Tips for using the DEBUG feature of DOS to create small assembly language programs 
 +::are offered.  Programs can be written with an understanding of as few as a dozen assembly 
 +::language commands.
 +
 +::'''Title - Writing DOS utilities with DEBUG, Part 2
 +
 +::Author - Prosise, Jeff
 +::PC Magazine
 +::Oct 12, 1993
 +
 +::Abstract -    Three DOS programming services available through interrupt 21h are explained in a 
 +::discussion about programming small assembly language DOS utilities.  Functions 2Ah, 2Ch and 30h 
 +::return the date, time and DOS version, respectively.
 +
 +::'''Title - Writing DOS utilities with DEBUG, part 3
 +
 +::Author - Prosise, Jeff
 +::PC Magazine
 +::Oct 26, 1993
 +
 +::Abstract -    Programming services available in the PC BIOS are discussed, focusing on the 
 +::functions in the BIOS, the logical "and" and "or" instructions, indirect addressing and loops.
 +
 +::'''Title - Writing DOS utilities with DEBUG, Part 4
 +
 +::Author - Prosise, Jeff
 +::PC Magazine'''
 +::Nov 9, 1993
 +
 +::Abstract -    Tips for incorporating logic into assembly programs written using DOS' DEBUG 
 +::miniassembler are offered.  Command line parameters can be recognized using the methods described.
 +
 +
 +Most likely Ziff-Davis will come down hard(DMCA takedown notice, at least) so don't advertise 
 +-->
 +'''Download(PDFs for each article, password is ''"nullspace"''):'''
 +::<nowiki>rapidshare link - https://rapidshare.com/files/3167923781/WDUWD_1-4.zip </nowiki>
 +::<nowiki>verzend.be link - http://www.verzend.be/zk4xtkolf53x/WDUWD_1-4.zip.html </nowiki>
 +::<nowiki>Crocko link - http://www.crocko.com/ECF5E935475B4C7896D36B75BEEE5930/WDUWD_1-4.zip </nowiki>
 +
 +
 +::'''Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors'''
 +
 +::Author - Talat Ozyagcilar<nowiki> </nowiki>
 +::Freescale Semiconductor 
 +::Application Note Document Number: AN4248, Rev. 3, 01/2012
 +
 +::Abstract -  An extremely useful introduction to integrating magnetometer and 
 +::accelerometer data in order to build a digital compass. Detailed 
 +::descriptions of how the math works, with most functions implemented in C#
 +::Can be downloaded at 
 +::http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf
 +
 +==Books==
 +
 +::'''Professional Assembly Language'''
 +:::http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010
 +
 +:::"Examples use C as a high-level language, Linux as the development environment, and GNU 
 +:::tools for assembling, compiling, linking, and debugging "
 +
 +:::'''Comments'''
 +
 +:::'''NMI-'''''"There was another one from Wrox a number of years(DOS extender era) before this one''  
 +:::''that I liked. Can't remember the title off hand.''
 +
 +:::''The first review mentions AT&T syntax only. So maybe not the best unless you're sticking with ''
 +:::'''gas' on Linux.  Still it's positive on the basics."''
 +
 +:::'''livinded-'''''"The fact that it's at&t and only focuses on linux isn't a huge issue and depending ''
 +:::''on what you're interested in may not even be an issue. I'm personally a fan of at&t syntax and have ''
 +:::''little to no interest in windows, but I will say that it's not horrible difficult to shift back and ''
 +:::''forth between intel and at&t, at least for reading assembly.''
 +
 +:::'''datagram-'''''"I don't have too many books on assembly, but I would recommend''
 +:::''Professional Assembly Language (AT&T syntax) and the Intel IA-32''
 +:::''documentation (http://www.intel.com/products/processor/manuals/). It''
 +:::''doesn't really matter which type of assembly you learn, but I'd''
 +:::''recommend sticking with x86 and Intel or AT&T to make things easy (and''
 +:::''applicable to the meeting). I personally like AT&T as a learning tool''
 +:::''because it is easy to distinguish between registers, literal values,''
 +:::''and memory locations (this was one of the stumbling blocks at the''
 +:::''meeting, too). Aside from that there's no real difference in the same''
 +:::''way that there's no huge difference between little endian and big''
 +:::''endian. I've grown accustomed to AT&T just because most of the Linux''
 +:::''tools use that by default.''
 +
 +
 +::'''Assembly Language Step-by-Step: Programming with DOS and Linux'''
 +:::http://www.amazon.com/Assembly-Language-Step---step-Programming/dp/0471375233/
 +
 +:::'''Comments'''
 +
 +:::'''NMI-'''''"The Duntemann book. Uses NASM(Netwide Assembler). I've heard good things about this one,''
 +:::''but never really looked at it. ''
 +
 +
 +::'''Introduction to 80x86 Assembly Language and Computer Architecture'''
 +:::http://www.amazon.com/Introduction-Assembly-Language-Computer-Architecture/dp/0763772232/
 +
 +:::'''Comments'''
 +
 +:::'''NMI-'''''"The price is insane(~$75), but used it's tolerable(~$11).  The first review says "When you ''
 +:::''finish the book, you may understand assembly, but you won't know what to do with it (or what you can ''
 +:::''do with it). Nor is it thorough enough to be used as a reference material for work. It omits quite a ''
 +:::''few processor instructions that I feel are important to know for reference."''
 +
 +:::''The other two are much more positive."''
 +
 +
 +::'''Dr. Paul Carter's PC Assembly Tutorial'''
 +:::See below 'Web sites' for link
 +
 +:::'''From the author:''' ''"I grew frustrated at teaching 16-bit real mode programming and''
 +:::''decided to change to 32-bit protected mode. However, I soon ran into a''
 +:::''problem. I could not find a textbook that covered 32-bit protected''
 +:::''mode assembly programming! So, I decided to write my own.  I also did''
 +:::''not want students to have to go out and buy expensive software for the''
 +:::''course. I decided to base the course on the free NASM (Netwide''
 +:::''Assembler) and the free GNU gcc compiler (however, any 32-bit C''
 +:::''compiler would work). Another advantage of these choices was that''
 +:::''students could use Windows, Linux or FreeBSD to develop on. (In fact,''
 +:::''I use Linux for my main development platform.)''
 +
 +
 +== PCB Design ==
 +http://www.compliance-club.com/pdf/DesignTechniquesPart1.pdf
 +
 +http://www.compliance-club.com/pdf/DesignTechniquesPart2.pdf
 +
 +http://www.compliance-club.com/pdf/DesignTechniquesPart3.pdf
 +
 +http://www.compliance-club.com/pdf/DesignTechniquesPart4.pdf
 +
 +http://www.compliance-club.com/pdf/DesignTechniquesPart5.pdf
 +
 +http://www.compliance-club.com/pdf/DesignTechniquesPart6.pdf
 +
 +==Web Sites==
 +
 +::http://www.sandpile.org/
 +::''sandpile.org - The world's leading source for pure technical x86 processor information.''
 +
 +:::'''Comments'
 +
 +:::'''CharlieX-'''''"[It] covers just about everything on the PC asm/hardware side."''
 +
 +::http://grayscale-research.org/new/asmdb.php
 +::''Ruiner had a hellish 3 days and mapped out every possible valid instruction call, enjoy/download the fruits of his labor''
 +
 +::http://www.azillionmonkeys.com/qed/tech.shtml
 +::''Paul Hsieh's Tech Page''
 +
 +:::'''Comments'''
 +
 +:::'''CharlieX-'''''"Paul hsieh has a few old but good articles, with lots of links."''
 +
 +::http://www.drpaulcarter.com/pcasm/
 +::''Dr. Paul Carter's PC Assembly Tutorial''
 +
 +:::'''Comments'''
 +
 +:::'''skout-'''''"I like his writing style, it was easy to follow, also it is free to ''
 +:::''download.  A full ASM course, read this and then hit up the intel docs and your''
 +:::''well on your way."''
 +
 +:::'''livinded-'''''"Having read the book, there were a few issues I had with it and ''
 +:::''the author. First of all there is an abstraction library that wraps a bunch of ''
 +:::''functionality up into it which is used throughout the book. While you'll learn assembly ''
 +:::''a lot of the work is done for you in this sense and really takes away from diving in and ''
 +:::''learning it well. Secondly, while attempting to discuss a couple of possible errors I ''
 +:::''found in the book, the author never responded."''
 +
 +==Analog Stuff==
 +::[http://www.ti.com/lit/an/sloa093/sloa093.pdf Filter design in 30 seconds] - From the TI website
  
recommended_reading_asm.txt ยท Last modified: 2013/08/13 00:44 (external edit)