|
|
1.1 ! root 1: .file "strlen.s" ! 2: # @(#)strlen.s 1.5 ! 3: # Fast assembler language version of the following C-program ! 4: # strlen ! 5: # which represents the `standard' for the C-library. ! 6: ! 7: # Given string s, return length (not including the terminating null). ! 8: ! 9: # strlen(s) ! 10: # register char *s; ! 11: # { ! 12: # register n; ! 13: # ! 14: # n = 0; ! 15: # while (*s++) ! 16: # n++; ! 17: # return(n); ! 18: # } ! 19: .globl _strlen ! 20: .text ! 21: .align 2 ! 22: _strlen: ! 23: .word 0x0000 # pgm uses regs 0,1,2 ! 24: movl 4(ap),r2 # ptr to s1 ! 25: movl r2,r1 # workin copy in r1 ! 26: L0: ! 27: locc $0,$65535,(r1) # search for a terminating null ! 28: beql L0 # go back for more if string is BIG! ! 29: subl3 r2,r1,r0 # calculate string length in r0 ! 30: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.