On the Subject of Assembly Code

Why are registers important, when you are already modifying them!

On the module, there are 3 displays. The left display will have 8 "codes", the top display will have a description of what a "code" does, and the right display tells you the position of the list you are in.

The list on the left of the module is index-0.

To solve the module, multiply the number of AA batteries by 2 and add 1. Modulo 8 and add 1 again. If there is any Lines of code, Scripting, or Brainf---, the number is 0. This number is the "code" you are going to solve for in each stage, where the "code" is the 3-5 letter word on the left of the module and the 2nd column in the list below.

Refer to the list below to get the description. You can also use the 2 buttons to cycle through the descriptions on the top of the module.

Index Code Meaning
1 AAA ASCII adjust AL after addition
2 AAD ASCII adjust AX before division
3 AAM ASCII adjust AX after multiplication
4 AAS ASCII adjust AL after subtraction
5 ADC Add with carry
6 ADD Add
7 AND Logical AND
8 CALL Call procedure
9 CBW Convert byte to word
10 CLC Clear carry flag
11 CLD Clear direction flag
12 CLI Clear interrupt flag
13 CMC Complement carry flag
14 CMP Compare operands
15 CMPSB Compare bytes in memory
16 CMPSW Compare words
17 CWD Convert word to doubleword
18 DAA Decimal adjust AL after addition
19 DAS Decimal adjust AL after subtraction
20 DEC Decrement by 1
21 DIV Unsigned divide
22 ESC Used with floating-point unit
23 HLT Enter halt state
24 IDIV Signed divide
25 IMUL Signed multiply
26 IN Input from port
27 INC Increment by 1
28 INT Call to interrupt
29 INTO Call to interrupt if overflow
30 IRET Return from interrupt
31 Jcc Jump if condition
32 JCXZ Jump if CX is zero
33 JMP Jump
34 LAHF Load FLAGS into AH register
35 LDS Load pointer using DS
36 LEA Load Effective Address
37 LES Load ES with pointer
38 LOCK Assert BUS LOCK# signal
39 LODSB Load string byte
40 LODSW Load string word
41 LOOP Loop control
42 MOV Move
43 MOVSB Move byte from string to string
44 MOVSW Move word from string to string
45 MUL Unsigned multiply
46 NEG Two's complement negation
47 NOP No operation
48 NOT Negate the operand, logical NOT
49 OR Logical OR
50 OUT Output to port
51 POP Pop data from stack
52 POPF Pop FLAGS register from stack
53 PUSH Push data onto stack
54 PUSHF Push FLAGS onto stack
55 RCL Rotate left (with carry)
56 RCR Rotate right (with carry)
57 REPxx Repeat MOVS/STOS/CMPS/LODS/SCAS
58 RET Return from procedure
59 RETN Return from near procedure
60 RETF Return from far procedure
61 ROL Rotate left
62 ROR Rotate right
63 SAHF Store AH into FLAGS
64 SAL Shift Arithmetically left (signed shift left)
65 SAR Shift Arithmetically right (signed shift right)
66 SBB Subtraction with borrow
67 SCASB Compare byte string
68 SCASW Compare word string
69 SHL Shift left (unsigned shift left)
70 SHR Shift right (unsigned shift right)
71 STC Set carry flag
72 STD Set direction flag
73 STI Set interrupt flag
74 STOSB Store byte in string
75 STOSW Store word in string
76 SUB Subtraction
77 TEST Logical compare (AND)
78 WAIT Wait until not busy
79 XCHG Exchange data
80 XLAT Table look-up translation
81 XOR Exclusive OR