echo START 0 start .LDCH txt .JSUB char .JSUB nl .LDA #txt .JSUB string .JSUB nl LDCH #12 JSUB num halt J halt .char char STB regB STT regT .STL regL STS regS .shranimo registre WD #1 .obnovimo registre LDB regB LDT regT .LDL regL LDS regS RSUB .nl nl STB regB STT regT STS regS .shranimo registre LDCH newline WD #1 LDX #1 LDCH newline, X WD #1 .obnovimo registre LDB regB LDT regT LDS regS RSUB .string string STA regA STB regB STT regT .STL regL STS regS .shranimo registre loop LDB #1 CLEAR A .da lahko comparamo z 0 LDCH @regA COMP #0 WD #1 .add +1 to regA LDA regA ADD #1 STA regA JGT loop LDA regA .obnovimo registre LDB regB LDT regT .LDL regL LDS regS RSUB .izpiše število zapisano v A na std izhod num STA regA STB regB STT regT STL regL STS regS .shranimo registre LDX #4 .X steje stevke, 4 je zadnji index arraya velikosti 5 LDS #10 .za množenje/deljenje LDT #0x30 .za pretvorbo v ascii loop2 RMO A, B DIVR S, B .B = B/10 MULR S, B .B= B*10 SUBR B, A .A = ostanek ADDR T, A .pretvorimo A v ascii STCH digs, X .shranimo ascii ostanek .zmanjšamo X in primerjamo z #5 RMO X, A SUB #1 RMO A, X LDA #0 COMPR X, A RMO B, A .premaknemo kar je še potrebno izračunati v A DIVR S, A .A je sedaj naslednja števka JEQ loop2 JGT loop2 .kličemo string za izpis LDA #digs JSUB string JSUB nl LDA regA .obnovimo registre LDB regB LDT regT LDL regL LDS regS RSUB .digits za num digs RESB 5 .0 bo prazna za lazje izpisovanje BYTE 0 .konec števke .txt txt BYTE C'hi' BYTE 0 .constante newline BYTE 0x0D BYTE 0x0A .registri regA RESW 1 regB RESW 1 regT RESW 1 regS RESW 1 regL RESW 1 END start