User:Tepples/mnemonic puns

Some assembly language mnemonics look like something else.


 * ADC (MOS Technology 6502, ARM)
 * Looks like "analog to digital converter", but means "add with carry". In fact, it may be used to build a ramp-compare ADC using a comparator and time base, similar to the 555-based paddle reading circuit of 8-bit home computers, if the system provides an easy way to get the comparator's state into carry.


 * ASL (6502, Motorola 68000)
 * Looks like American Sign Language or "What are your age, sex, and location?", but means multiply a value by 2. "Add to self" is closer, because it's reportedly how left shifts are implemented inside the 6502, but it officially stands for "Arithmetic Shift Left".


 * BBC0 through BBC7 (WDC 65C02 with bit manipulation )
 * Looks like British Broadcasting Corporation, but means branch if bit 0-7 of a value at a given address on zero page is cleared to 0. Some assemblers use  (reset as synonym for clear as in  ) instead.


 * BBS0 through BBS7 (65C02 with bit manipulation)
 * Looks like "bulletin board system", but means branch if bit 0-7 of a value at a given address on zero page is set to 1.


 * BLT (6502)
 * Looks like a sandwich, but means "branch if less than". On the 6502 series, it's a synonym for the instruction BCC (branch if carry clear) that WDC made official when it published the 65816 datasheet.


 * BMI (6502, 68000)
 * Looks like body mass index or Broadcast Music Inc., but means "branch if most significant bit of previous result was true".


 * BRA (65C02, 68000)
 * Looks like an undergarment, but means "branch always" for a PC-relative jump.


 * CLI (6502)
 * Looks like command-line interface, but means clear the interrupt priority level to 0. (The 6502 has two priority levels: 0 for IRQ and 1 for NMI.)


 * COP (WDC 65816/65802)
 * Looks like a police officer, but means emulate a coprocessor that would otherwise hijack the data bus.


 * DEA (65816)
 * Looks like a U.S. government agency specializing in fighting the War on Some Drugs, but means subtract 1 from register A.


 * DEC (6502)
 * Looks like Digital Equipment Corporation, but means read an address, subtract 1, and write back the resulting value.


 * JAM (6502)
 * Looks like "jam" (fruit preserves) or NBA Jam or the "Jam It In" Internet meme (NSFW), but it's a rarely used synonym for any of the 6502's twelve halt opcodes.


 * LAX (6502)
 * Looks like an airport on the west coast of the U.S. or the opposite of phonologically tense, but means load a value into register A and copy it to register X.


 * LDR (ARM)
 * Looks like "long-distance relationship" but means copy a 32-bit value from memory to a register.


 * LES DI (Intel 8086)
 * Looks like Spanish for "I gave them" but means "load a far pointer into ES (segment part) and DI (offset part)". For example,  resembles the Spanish for "I gave them my address."


 * LINK (68000)
 * Looks like a character from the video game The Legend of Zelda, but means create a stack frame.


 * LUI (MIPS)
 * Looks like "lazy", "rent", or "him" depending on the language, but means load a 16-bit literal value multiplied by 0x10000.


 * MVP (65816)
 * Looks like most valuable player, but means a block copy in ascending order.


 * PEA (65816)
 * Looks like a vegetable, but means push an immediate 16-bit value on the stack.


 * PHB (65816)
 * Looks like "pointy-haired boss", but means push the data segment.


 * PHD (65816)
 * Looks like "doctor of philosophy", but means push the frame pointer.


 * PHK (65816)
 * Looks like a long-time FreeBSD maintainer, but means push the code segment.


 * PHP (6502)
 * Looks like PHP: Hypertext Preprocessor, Physicians Health Plan, or any of several other meanings, but means push the status flags to the stack.


 * SAX (6502)
 * Looks like the inventor of the saxophone, but means store the bitwise AND of the values in registers A and X to memory.


 * SAX (Hudson Soft HuC6280)
 * Also looks like Sax, but means swap the values in registers A and X.


 * SAY (HuC6280)
 * Looks like "say", but means swap the values in registers A and Y.


 * SEC (6502)
 * Looks like a U.S. stock market regulator or a collegiate athletic conference covering most of the former Confederacy, but means set the carry flag in preparation for a subtraction.


 * SED (6502, except 2A0x)
 * Looks like the Spanish word for "thirst" or a text transformation utility for UNIX shell scripts, but means enable binary-coded decimal arithmetic for addition and subtraction.


 * SEI (6502)
 * Looks like the Italian word for "six", but means set the interrupt priority level to 1, blocking IRQ but allowing NMI.


 * SEX (Motorola 6809)
 * Looks like sex or the the Latin word for "six", but means sign extension of a ones' or two's complement value from a narrow word length to a wider one. For example, on an 8-bit machine, it might copy bit 7 of a register to all other bits.


 * SEX (RCA 1802)
 * Also looks like sex, but means "set X" or "select index", designating which CPU register is used for indexing.


 * SMB3 (65C02 with bit manipulation)
 * Looks like Super Mario Bros. 3, but means read a zero page address, set bit 3 to true, and write back the resulting value. Roughly the same as.


 * STP (6502 (as unofficial opcode), late 65C02 revisions, 65816)
 * Looks like a gasoline additive or the band Stone Temple Pilots, but means halt until reset.


 * SWINE (ARM)
 * Looks like pigs but means perform a system call only if the last operation produced a nonzero result. This might be done, say, if a particular system provides division as a syscall in order to avoid division by zero.


 * TAS (68000)
 * Looks like a tool-assisted speedrun, but means grab a mutex. The memory controller in the original Sega Genesis didn't implement this; [//segaretro.org/Mega_Drive_Quirks two games rely on this instruction not working] and will not work on compact revisions of the console made in 1998 and later that have "fixed" the bug.


 * TAS (65816)
 * Also looks like a tool-assisted speedrun, but means copy the accumulator to the stack pointer. Synonym of TCS.


 * TAX (6502)
 * Looks like theft of private wealth by a government, but means copy the value from register A to register X.


 * TDD (HuC6280)
 * Looks like teletypewriters used by deaf people, but means a block copy in descending order.


 * TIN (HuC6280)
 * Looks like the chemical element tin, but means a block copy in ascending order to an MMIO port at a constant address.


 * TSA (65816)
 * Looks like a U.S. government agency known for touching travelers' junk, but means copy the stack pointer to the accumulator. One might use this as part of a subroutine prolog or epilog to set up or tear down a stack frame. Synonym of TSC.