Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sources for learning x64 assembly language

261 views
Skip to first unread message

Cecil Bayona

unread,
Feb 10, 2018, 9:48:30 PM2/10/18
to
After years of putting it off I'm considering learning x64 Assembly
Language so I been looking for a decent book or Internet resource and
I'm having difficulties finding something reasonable at Amazon or the
Internet. I retired due to health reasons so it's important that the
books not bee too expensive.

At Amazon there are a couple of books for $35 on X64 but they are for
Linux, currently I use Windows 10, I bought one anyway but I', looking
for a good book or Internet resource on X64 in a Windows environment.

Any assistance would be appreciated.

Thanks
--
Cecil - k5nwa

Rod Pemberton

unread,
Feb 11, 2018, 12:48:42 AM2/11/18
to
While an excellent book can be worth the price, there is plenty of free
information on the Internet nowadays. Have you tried the GIYF method?
When I entered "64-bit x86 assembly language intro" into Google, many
decent looking webpages were in the results. The first was from Intel
(link below). The second page had link to Amazon assembly books
(around $35 each), Youtube videos, and webpages and pdf's from the CS
departments of a few universities. There was even a Udemy course.

https://software.intel.com/en-us/articles/introduction-to-x64-assembly

Next, pick an assembler. There are three basic syntaxes: MASM, AT&T,
and NASM. You'll need to familiarize yourself with each. Many today
like NASM syntax. It's simpler and similar to TASM Ideal. Next,
you'll need to pick an assembler, e.g., NASM, YASM (NASM syntax),
FASM (NASM syntax), GAS (AT&T syntax), MASM, WASM (MASM syntax), etc.

I would think that with modest time and effort, you could then move on
to Intel and AMD programmer reference manuals. These provide you with
an abundance of information, but don't teach you how to program. Of
course, it'll help if you learned assembly once before, especially old
8-bit's or early Intel x86 or 68000. The general purpose instructions
in the Intel/AMD instruction set are from the same era. If so, you'll
have a basic understanding of registers, addressing modes, and general
purpose instructions.

Also, Sandpile.org is an excellent reference to be used in addition to
the Intel/AMD programmer reference manuals.


Rod Pemberton
--
The question is not whether Elon Musk can launch a Tesla into space,
but whether or not he can return it to Earth without damaging the paint.

Cecil Bayona

unread,
Feb 11, 2018, 1:33:46 AM2/11/18
to
Thanks

I have done quite a bit of assembly language work way back with the
8080/8085/Z80 and the 6809/68000 families but I wanted some sort of book
or tutorial on the x64 family. The reason is that I decided not to
bother with the X86 due to it's complexity and irregularity, registers
are not equal and all sorts of exceptions as to what registers can be
used for different addressing modes, a book or a website can help me
sort that out. I was hoping that with the x64 Intel cleaned up some of
that mess and make the architecture more regular, also the extra
registers will come in handy.

Currently I have dabbled some with the assembler in the MSP430 and dsPIC
families of embedded CPUs but I need to do some assembler on my desktop
PCs. I did buy a book on Amazon on X64 and Linux but was hoping for
something on X64 and Windows instead since that is the OS I currently use.

--
Cecil - k5nwa

Bartc

unread,
Feb 11, 2018, 7:04:06 AM2/11/18
to
I think it was AMD who created the 64-bit version of the x86 and kept it
large binary compatible (same encodings plus extra prefix bytes to deal
with extra registers and 64-bit operands). Intel had to copy it.

But the mess hasn't been cleaned up, if anything it's even worse.
However you won't notice it unless you look at the instruction encodings.

What you will notice is the ugly mix of register names.

(There /was/ some cleaning up done with the introduction of the 80386,
such as being able to use [almost] any registers as base or index
registers. If you're only familiar at 8086, then yes that aspect is better.)

--
bartc

Steve

unread,
Feb 11, 2018, 7:34:09 AM2/11/18
to
Hi,

Cecil Bayona <cba...@nospicedham.cbayona.com> writes:
>After years of putting it off I'm considering learning x64 Assembly
>Language so I been looking for a decent book or Internet resource and
>I'm having difficulties finding something reasonable at Amazon or the
>Internet. I retired due to health reasons so it's important that the
>books not [be] too expensive.

You might look at the MASM Forum:

http://www.masm32.com/board/index.php?

There are some tutorial examples; see Mikl__'s ml64 examples and hutch--'s
sub-forums.

There are two groups working on ML64 compatible assemblers as well;
UASM Assembler Development , and ASMC Development sub-forums.

HTH,

Steve N.

Cecil Bayona

unread,
Feb 11, 2018, 3:04:33 PM2/11/18
to
The amount of books on X64 assembler are so limited then one has to deal
with using Intel or GAS syntax, I rather stick with Intel syntax and
mnemonics.

For now I will setup an environment to play with with two IDEs,
VisualAsm, and Ms VisualCode, and the Intel assemblers.

VisualAsm is a very nice IDE that allows 16 bit, 32 bit, or 64 bit
assembler projects and debugging. VisualAsm has a nice feature in that
if you pull a 16 bit file into a 64 bit project it will highlight all
the areas that will give you problems, that will be handy as I have some
old software that I wish to convert from DOS to Win64 and that feature
will come very useful. This tool uses the Intel Assemblers ml16, ml, ml64

Ms VisualCode is also a very nice IDE that supports multiple languages,
right now I have it setup with Go and Python, but one could add other
languages as needed and they all get along so most likely I will end up
using Ms Visual Code. This IDE is available tor Windows, Linux, and
MacOS which could be handy in the future. There is an add-on for support
for NASM/YASM/TASM/GAS Syntax and 16bit, 32bit, and 64bit instructions,
that pretty much covers it.

Rather than a book I will use the Internet for resources and start out
with simple projects until I get used to the quirks of Intel Assembly
Language which hopefully have been lessened with X64 mode.

What a mess, but then life tends to be messy.


--
Cecil - k5nwa
0 new messages