rek START 0 JSUB sinit JSUB binit LDT #10 loop JSUB read . Pretvorimo iz ASCII v stevilko COMP #1 . Če je (A) == 0 končamo JLT halt JSUB fa . Sicer izračunamo (A)! JSUB store . Shranimo znake na buffer JSUB print . Printamo iz bufferja CLEAR B CLEAR A J loop . Gremo prebrat naslednji vhod print LDCH @bfp . Shranimo char iz pomnilniske lokacije na katero kaze bfp (torej iz bufferja) +STCH @screen . Ta char zapisemo na zaslon LDA screen ADD #1 . Pomaknemo screen za eno naprej STA screen LDA bfp . Bfp znizamo za 1, da kaze na naslednji znak (printamo v obratnem vrstnem redu kakor smo zapisovali) SUB #1 . STA bfp . COMP #buffer . Ce smo sli cez buffer, smo sprintali vse, gremo na exit JLT print_exit . J print . Ce nismo sli cez, potem imamo se za sprintat print_exit LDA #buffer STA bfp . Obnovimo bfp na začetek bufferja za naslednjo zanko RSUB store COMP #10 JLT s_single STA tmp . MOD DIV #10 MUL #10 RMO A, X LDA tmp SUBR X, A . MOD ADD #48 +STCH @bfp . Na buffer shranimo char ki je ostanek deljenja LDA bfp . A = bfp ADD #1 . A += 1 STA bfp . bfp = bfp + 1, buffer pointer premaknemo naprej LDA tmp . Obnovimo A DIV #10 . A /= 10 J store s_single ADD #48 +STCH @bfp LDA bfp ADD #1 STA bfp LDB #0 STB tmp RSUB halt J halt read RD #0xFA . V A se shrani naslednji prebrani znak COMP #0xA JEQ rExit . Če preberemo newline gremo na izhod SUB #0x30 . Sicer iz ascii kode dobimo stevko LDB tmp MULR T, B . tmp *= 10 ADDR A, B . tmp += A STB tmp J read rExit LDA tmp . Shranimo prebrano stevilko v A LDB #0 STB tmp . Ponastavimo tmp RSUB fa STL @stkp JSUB spush STB @stkp JSUB spush . Base case COMP #2 JLT faExit RMO A, B SUB #1 JSUB fa MULR B, A faExit JSUB spop LDB @stkp JSUB spop LDL @stkp RSUB binit LDA #buffer . V A nalozimo pomnilnisko lokacijo od bufferja STA bfp CLEAR A RSUB sinit STA stkA LDA #stk STA stkp LDA stkA RSUB spush . stkp++ STA stkA LDA stkp ADD #3 STA stkp LDA stkA RSUB spop . stkp-- STA stkA LDA stkp SUB #3 STA stkp LDA stkA RSUB bfp WORD 0 . Pointer na buffer buffer RESB 10 . Buffer zadosti za napisat 10 mestne stevilke screen WORD 0xb800 stkp WORD 0 stk RESW 1000 stkA WORD 0 tmp WORD 0 END rek