Linked by Thom Holwerda on Fri 31st Aug 2018 23:32 UTC
General Development

The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). While the provided code and various examples should work under any Linux-based 64-bit OS, they have only been tested under Ubuntu 14.04 LTS (64-bit).

Your light reading for the weekend.

Order by: Score:
Just a little notice
by Kochise on Sun 2nd Sep 2018 12:37 UTC
Kochise
Member since:
2006-03-03

Even though no one seems interested by this topic, I am and I thank you for the info.

Reply Score: 2

RE: Just a little notice
by teco.sb on Sun 2nd Sep 2018 14:14 UTC in reply to "Just a little notice"
teco.sb Member since:
2014-05-08

I'm with you. I find these sort of links very useful.

I have always recommended folks who want to learn assembly to read Programming from the Ground Up (https://savannah.nongnu.org/projects/pgubook/). I still have to read this one to decide if that'll change.

I like the fact that they introduce SSE instructions in chapter 2. Few books that talk about assembly even recognize that SIMD instructions exist.

I don't like the fact that they use the Intel syntax, though. I find instructions like "movq (qNumA), %rax" more intuitive and less error prone than "mov rax, qword [qNumA]". Both of those "move a quad word from memory location qNumA to rax register", but the AT&T syntax is more explicit about your intention. After all, movq, movl, and movzxl are all technically different.

Edited 2018-09-02 14:14 UTC

Reply Score: 3

RE[2]: Just a little notice
by emojim on Sun 2nd Sep 2018 17:26 UTC in reply to "RE: Just a little notice"
emojim Member since:
2018-08-07

I don't like the fact that they use the Intel syntax, though. I find instructions like "movq (qNumA), %rax" more intuitive and less error prone than "mov rax, qword [qNumA]". Both of those "move a quad word from memory location qNumA to rax register", but the AT&T syntax is more explicit about your intention. After all, movq, movl, and movzxl are all technically different.


teco.sb,

That does seem more intuitive. I only dabbled with assembly back in the 1900's, but as a Windows user it seems like everything was geared towards Intel syntax.

I'm going to check out that book you recommended and one of these days I'll have another go on Linux.

~j

Edited 2018-09-02 17:27 UTC

Reply Score: 2

RE[3]: Just a little notice
by Kochise on Mon 3rd Sep 2018 06:56 UTC in reply to "RE[2]: Just a little notice"
Kochise Member since:
2006-03-03
RE[2]: Just a little notice
by Alfman on Mon 3rd Sep 2018 07:15 UTC in reply to "RE: Just a little notice"
Alfman Member since:
2011-01-28

teco.sb,


I don't like the fact that they use the Intel syntax, though. I find instructions like "movq (qNumA), %rax" more intuitive and less error prone than "mov rax, qword [qNumA]". Both of those "move a quad word from memory location qNumA to rax register", but the AT&T syntax is more explicit about your intention. After all, movq, movl, and movzxl are all technically different.


Maybe I am biased due to my experience, but I personally don't like the ATT syntax as much. I prefer intel syntax as in NASM/YASM code since it emphasizes the registers being acted upon.

Edited 2018-09-03 07:16 UTC

Reply Score: 2

RE[3]: Just a little notice
by Kochise on Mon 3rd Sep 2018 08:57 UTC in reply to "RE[2]: Just a little notice"
Kochise Member since:
2006-03-03

If only they choose the Motorola syntax...

Reply Score: 1

Wait a moment
by ThomasFuhringer on Mon 3rd Sep 2018 08:06 UTC
ThomasFuhringer
Member since:
2007-01-25

I have always been intrigued by assembly programming and find it, if nothing more, at least a great exercise. To somebody starting out I would, however, suggest to go for ARM assembly (tons of free material out there). It is architecturally less baroque and might somewhere down the road even be useful in the realm of embedded systems.

Reply Score: 3

My Approval
by Dr.Cyber on Mon 3rd Sep 2018 16:38 UTC
Dr.Cyber
Member since:
2017-06-17

I approve of this post.

Reply Score: 0