/******************************************************* * File: one2tenWhile.s * Date: July 11, 2021 * Author: DSS * Assembler: as under the gcc compiler * Purpose: print integers 1 thru 10 using a test at start of loop *******************************************************/ .global main .text main: # Originally used %r10 for value but it got clobbered mov $0, %r12 #put value in reg r12 loop: cmp $10 ,%r12 #compare register values je done #if reg values were unequal (ctr#=10), iterate inc %r12 #inc value # printf(format,nextValue); # Put format string in %rdi # then call printf function mov $format, %rdi mov %r12,%rsi #put value in %rsi for output (not) in delay slot xor %rax, %rax #must 0 out %rax; wish I knew why call printf #print it jmp loop done: ret format: .asciz "%d\n"