.label len 1 jmp start read_input: mov a 0 mov b 0 mov c 64 sys mov b 1 sub str c len ret str_to_num: ; pointer to current character .label ptr 2 ld a len mov b 63 add str c ptr .label mult 3 mov a 1 str a mult .label num 4 mov a 0 str a num .label zero 48 stm_loop: ;load char, subtract zero, multiply by 10 ld b ptr ldr a b mov b zero sub swp c a ld b mult mul ; add to num swp c b ld a num add str c num ld a mult mov b 10 mul str c mult ; move pointer ld a ptr mov b 1 sub str c ptr cmp c 63 jz stm_loop ret start: jmr read_input jmr str_to_num ld a 4 str a 8 ; store number 1 to 8 jmr read_input jmr str_to_num ld a 4 ; load number from read ld b 8 add str c 16 ; put our number into 16 #using printer.a jmr print_num ; print number at 16 (well not print but stringify) mov a 1 ; write mov b 1 ; stdout mov c 32 ; address sys ; syscall