Like many other machines, the 6800 has a compare instruction CMP that compares the accumulator with another operand, specified just as it is in other instructions like ADD and SUB. The CMP instruction, like ADD and SUB, sets the four condition code bits NZVC according to the arithmetic result -- in fact, it is identical with a SUB instruction, except that the result is not written back to the accumulator.
A subsequent conditional branch instruction such as BLS examines the condition code and branches if the condition is satisifed. In the case of BLS, the branch happens if either the C bit of the Z bit is set (or both).
Note that many other instructions set the condition code -- too many to list here. It's common for the instruction immediately preceding the BLS to establish the condition code that is used to decide whether to branch. That instruction doesn't have to be a CMP: it could be an ADD or SUB, or some other instruction entirely. In more tricky code, an earlier instruction might generate the condition code, provided intervening instructions do not modify the relevant bits. Understanding such code entails knowing which instructions set which condition bits, something that distinguishes hot-shot coders from mere mortals like me. My head is not big enough to memorise the details for more than one machine architecture.
[Edit] Source: The M6800 Programming Reference Manual on my desk.
CMP
. – Raffzahn Feb 24 '20 at 15:03