typically, flags in the status register are modified as effects of arithmetic and bit manipulation operations. for example, a z bit may be set if the result of the operation is zero and cleared if it is nonzero. other classes of instructions may also modify the flags to indicate status. for example, a string instruction may do so to indicate whether the instruction terminated because it found a match/mismatch or because it found the end of the string. the flags are read by a subsequent conditional instruction so that the specified action (depending on the processor, a jump, call, return, or so on) occurs only if the flags indicate a specified result of the earlier instruction.