This code is to calculate e from the infinite series for e^x: e=1++1+1/2!+1/3!+1/4!+... format: (4 enable bits)(hex:r on A bus)(hex:r on B bus)(hex: updated r on D bus) opcode ^^^^=(2x PC update, A bus valid, B bus valid, D bus valid) mov r0 rB 1011x0B mov opcode #rB to hold small small float mov r0 rC 1011x0C mov opcode #rC to hold 1.0 to increment k 1.0 mov rC rA 0011xCA mov opcode #rA to hold sum fadd rC rA rA 0111CAA fadd opcode # starts 1+1 mov rC rD 0011xCD mov opcode #rD to hold k! mov rC r9 0011xC9 mov opcode #r9 to hold k mov r0 r8 1011x08 mov opcode 2 mov rF rE 0011xFE mov opcode add r8 rE rE 01118EE add opcode #note (rE) is address of following instruction fadd rC r9 r9 0111C99 fadd opcode # k<-k+1.0 fmul r9 rD rD 01119DD fmul opcode # k+1!<-(k+1)*k! finv rD r2 0011xC2 finv opcode #r2 will be 1/2!, 1/3!, 1/4! fadd r2 rA rA 0111CDC fadd opcode #current total sum fcmp r2 rB 01102Bx fcmp opcode = fsub opcode wiht no D bpl rE 0011xEF plus condition mov rE rF opcode mov r0 rE 1011x0E mov opcode address to output e store rA rE 0110AEx store opcode halt sum added term 2.50000000 0.500000000 2.66666675 0.166666672 2.70833325 4.16666679E-02 2.71666670 8.33333377E-03 2.71805549 1.38888892E-03 2.71825385 1.98412701E-04 2.71827888 2.48015876E-05 2.71828151 2.75573188E-06 2.71828175 2.75573200E-07 2.71828175 2.50521079E-08 2.71828175 2.08767559E-09 2.71828175 1.60590444E-10 2.71828175 1.14707454E-11 2.71828175 7.64716361E-13 2.71828175 4.77947726E-14 2.71828175 2.81145736E-15 2.71828175 1.56192068E-16 2.71828175 8.22063508E-18 2.71828175 4.11031759E-19 sum deviation: exact-sum 2.7182818284590455 -4.4408920985006262E-016