I'm new to asm, and I've been learning with the nasm assembler...

I'm new to asm, and I've been learning with the nasm assembler, mainly because that's what the tutorials have been using.

But what's the Jow Forums approved assembler for x86?

Attached: download.png (225x225, 3K)

Other urls found in this thread:

git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/x86/vp9intrapred.asm;hb=HEAD#l96
twitter.com/SFWRedditImages

>Jow Forums
>assembly

if it's not an "install gantoos" meme, you're in the wrong place

Attached: tech_this_is_g.png (1284x877, 73K)

Bummer, man.

nasm is the Jow Forums approved assembler user

I don't believe that for a goddamned second.

GAS

i didn't use nasm when i was learning assembly, i was using GAS, which is the GNU assembler, which uses AT&T syntax, for example:

_start:
movl $1, %eax
movl $0, %ebx
int $0x80


the above example moves the value 1 into register eax and value 0 into ebx and calls the operating system to terminate the program, with AT&T syntax the operand direction is from left to right which makes more sense to me than the intel syntax which is from right to left.

Dude just use GCC as.

why not

when you assign value to a variable, do you do
a = 1
or
1 = a
? ATT is retarded.

Totally. Intel syntax always bothered me

GAS can support both now too fwiw

Attached: 8EE80417-D664-4B34-8C00-A2864B2B919C.jpg (2000x3000, 491K)

there is not assignment operator like '=' in asm, with asm you are using the processor's instructions directly, nonetheless, you can put data into registers and into memory locations with the mov instruction.
the mov instruction COPIES data from the source to the destination, remember that.
also, think of your registers as your variables, eAx and eBx and eCx, those are the 32 bit registers and can hold at the most 32 bits of data.

When you -move- something however, you do say "I'll put this here" don't you?
AT&T syntax makes more sense in this case as it follows the same logic as your brain

The intel syntax is common in the Microsoft world, AT&T is the standard in Linux/Unix.

Anything Microsoft is dogshit and the people involved second rate. They will attempt to lie and shame you into using their shit. You should adjust to us. Be professional. It is bs. They don’t know wtf they are doing anyway.

Attached: A1500C01-993B-4F9C-B587-55FC137F635D.jpg (634x479, 43K)

if you want i can teach you what i know about asm, 1 to 1 lessons

I used nasm for my bootloader and some early kernel stuff
but I have converted it all to GAS now, at&t syntax is gud.

Thanks all for the info! This is all very helpful. So should I ditch nasm/intel syntax for now, and study GAS and AT&T syntax instead?

no it follows the same logic as other programming languages (sort of like memory move functions in C). i'd like my languages behave as similar to each other as possible thank you.

yasm assembler
ld for linking and loading

FASM. If you use GAS, kys

FASM is part of Russian secret services botnet

>AT&T syntax

Yuck.

nasm with x86util and x86inc
git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/x86/vp9intrapred.asm;hb=HEAD#l96

There's nothing better or faster.

/Thread

Asm is not fucking c

Att syntax is fail and cringe

Based and redpilled

All professional RE tools are Intel syntax (Ida, binja, r2, winding, every other debugger on the planet)
Only absolute garbage like gdb is is at&t anymore

Based and redpilled.
Fasm is written in its own assembly language and has almost no dependencies.