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)