.title scomp.mac ; ; ; iscomp:: scomp:: mov r1,-(sp) mov r2,-(sp) mov r3,-(sp) mov (r5)+,r3 ; nargs mov (r5)+,r1 ; 1st address mov (r5)+,r2 ; 2nd address clr r0 ; clear counter 30$: inc r0 ; inc counter tstb (r1) ; i/p null ? beq 10$ ; br, if yes tstb (r2) ; o/p null ? beq 20$ ; br, if yes cmpb (r1)+,(r2)+ ; chrs same ?? 70$: beq 30$ ; br, if yes bgt 40$ ; if greater, no problem neg r0 ; else invert count 40$: cmpb #3,r3 ; 3 args ?? bhi 50$ ; mov r0,@(r5)+ ; return flag as argument 50$: mov (sp)+,r3 mov (sp)+,r2 mov (sp)+,r1 return 10$: tstb (r2) beq 60$ cmpb #' ,(r2)+ br 70$ 60$: clr r0 br 40$ 20$: cmpb (r1)+,#' br 70$ .end