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.

After you find the description of the correct code, input it by pressing the description box on top and the next stage will happen. Do this for a total of 3 times to solve the module.

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