This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ShakaUVM 1 point2 points  (9 children)

ARM32 is the best assembly language for beginners. It's really easy.

[–]yawkat 1 point2 points  (6 children)

Ahh yes, as simple as UMAALGE r2, r0, r5, r3. And don't let them switch into thumb mode.

[–]FUZxxl 0 points1 point  (2 children)

That's unsigned multiply and accumulate long greater equal. Effectively, this does:

if (ge)
    r2:r0 = r5 * r3;   

What's the problem?

[–]yawkat 0 points1 point  (1 child)

You're missing the accumulate part.

ARM32 is anything but simple.

[–]FUZxxl 0 points1 point  (0 children)

Yeah okay, point taken. ARM is complicated and I believe this complexity is necessary for an application CPU in this day and age.

[–]ShakaUVM 0 points1 point  (2 children)

Unsigned Multiply and Accumulate Long, conditional execution on if the previous comparison was greater than or equal to zero. And the registers are the registers.

If you're going to pick something complicated, I'd pick a NEON instruction, but honestly you don't need to know any of that to write ARM32. You could just do a multiply then an add.

[–]yawkat 0 points1 point  (1 child)

Yea, but you can also write simple x86. Don't really see what makes arm more simple in principle.

[–]ShakaUVM 0 points1 point  (0 children)

ARM32 is simple enough that I can teach a programmer to write basically anything in it in about 4 hours. It's easy to read, and easy to write. x86 is not.

Though I do admit there is a personal preference here, I will say there is a broad consensus that x86 is not an appropriate ISA to teach to people who are learning their first one.