“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 ™: 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, JeffInsert non-formatted text here
::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”
):'
::rapidshare link - https://rapidshare.com/files/3167923781/WDUWD_1-4.zip
::verzend.be link - http://www.verzend.be/zk4xtkolf53x/WDUWD_1-4.zip.html
::Crocko link - http://www.crocko.com/ECF5E935475B4C7896D36B75BEEE5930/WDUWD_1-4.zip
::
'Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors'
::Author - Talat Ozyagcilar
::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 80×86 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