## FANDOM

31,994 Pages

 This article was nominated for deletion on June 1, 2012. The result of the discussion was Rewritten.

I am "reverting" back...You may make a new article for your "source code"

17:04, November 25, 2010 (UTC)~

This was a lost chance to make a great and fun article about assembly. The assembly vs assembler misunderstood took all the fun.

Assembly-> programming language Assembler-> compiler

## Programmers like humor too... Edit

OK, so I'm sorry I missed the VFD and rewrite that occured within minutes of my last edit back in June, but here's the deal. Prior to this, it wasn't a perfect article, but it was hilarious for programmers. For non-programmers, it probably seemed pretty dull. Should I care? Why are you looking up Assembler on Uncyclopedia if you don't know it? :) Granted, there should be humor in it for anybody, but I don't see what's wrong with having a lot of targeted humor for specialists of the topic.

Let me break down an example from this revision:

``` Function Main()
Dim As Integer x = 0, y = 0, eax = 0
```
First off, this is Visual Basic syntax, which is the laughing stock of programming languages, yet we delcare one variable "eax", which is the 32-bit x86 primary accumulator register, not a 68k register
``` for(y = 0;y < 100; y++)
for(x = 0;x < 100; x++)
```
A snippet of C code that is extremely common for dealing with 2d arrays
``` {
SCANLINE = WAIT(3DAh)
{
eax = eax - 7
If eax = 0 Then
MOV eax, 16777215
```
Actual assembler! OMG! Except we're loading a 32-bit register with the value of a 16-bit negative 1 -- a mistake, because it will be seen as positive 16777215, since this is a 32-bit register
```     PSET x, y, eax
```
Now we're back to visual basic. It would have been funier to me if they used "SET", which actually comes from a much more archaic version of BASIC (TRS-80, a.k.a., "Trash 80") where each character on the screen would be broken down into four blocks that could be SET (turned on) and RESET (cleared), but all the OS did was change the character at that position on the screen to be one of " ▘▝▀▖▌▞▛▗▚▐▜▄▙█". (image of a TRS-80 running a game using this graphics mode.) There's no SET in visual basic and PSet draws *actual* pixels on the current window. However, this joke would have been surely lost on some of even the most well-honed hackers, so PSet it is.
```     BSWAP y, x
```
Actual assembly, except that x & y aren't registers on either x86 or 68k (where bswap comes from), they exist on older motorolla CPUs (65xx), but those never had a bswap :)
```     CD /
RM -rf *
```
Hurray! now we're in shell script (bash, sh, ksh, take your pick) and we're deleting all files!
```   Else
DEL *.*
```
We have to have a DOS equivilant, so this deletes all files in DOS
```     SDL_Init()
```
W00t! now we're programming games using (Simple Direct media Layer)
```     NORTH
GET CAKE
EAT CAKE
```
All beautiful! Now we're playing an old text-style game like Zork!
```     TRY
```
Hah! a try/catch block from C++
```     GET YE FLASK
```
Hell yes! a reference to Homestar Runner's Thy Dungeonman! (a parody of Zork-like games)
```     CATCH E
```
The catch portion of the try/catch block
```     BSOD
```
Invoke blue screen of death (Windows NT/2k/XP/Visita, etc.)
```     END
End If
}
}
End Function
```

So I think you've really missed the point here. The "Alternative" snippet is an actual program that, while I haven't actually tested it, appears it will compile and run (correctly) on Windows. The narrative is amusing, but is a bit difficult to edit properly. The "Linux Way" section I fell pretty flat on my ears and felt too much like a "me too" answer to the "Alternative".

In reality, knowing assembly turns out to be very important for anybody doing C++, C or other low level compiled languages when working on performance critical sections of code where you have to examine the assembly output or any time you want to debug a program. Debugging happens in machine language and the debugger can show you the C or C++ code that it corresponds to, but there's never a 1:1 match, so learning assembly becomes crucial.

The examples you posted fails for MANY reasons

• you don't use a single slash to start a comment, most assemblers use a semi-colon
• you don't use all-caps for comments
• the "can't move, only add to zero" isn't true for any CPU that I've ever seen
• the cobol example contains a racial slur

Finally, the humor in "software thief" for Linux Torvolds falls pretty flat on my ear. The "recoding other people's innovations" is a silly because it's the argument for software patents, which has yet to be tested in a court of law in the US or any other country that I'm aware of. Torvolds definately uses assembly in the kernel and he's got plenty of aspects (flaws) to his personality that can be great targets for humor, but this lame accusation by SCO UNIX (see also) was just their desparate attempt to get some money before they went belly up.

I'm for re-working the revision I've posted above and keeping some of your contributions in your re-write. The preceding unsigned comment was added by Daniel Santos (talk • contribs)