the third word, mask out the old value of the fourth character from the value held in the register, bitwise or in the new one, and then store back the amended word. At least six machine instructions. Usually, these are relegated to a subroutine, so every store or fetch of a single character involves the overhead of calling a subroutine and returning. With byte addressing, that can be achieved in one instruction: store this character code at that byte address. Text programs are easier to write, they are smaller, and run faster. Hybrid systems Some systems with word addressing, such as the PDP-6/10 and the GE-600/Honeywell 6000 series, have special mechanisms for accessing bytes efficiently. On the PDP-6/10, special instructions operated on a byte pointer which included a word address, a bit offset, and a bit width. The / instructions loaded or stored one byte, the instruction incremented the byte pointer, and the / instructions incremented the byte pointer and then loaded or stored the next byte. These instructions could operate on arbitrary-width bit fields. Programs took advantage of this flexibility: those not needing lowercase letters used the limited character set of 6-bit bytes for efficiency; most used 7-bit ASCII, packed 5 to a word with one unused bit; and the C implementation used 9-bit bytes because C requires all memory to be byte-addressable. On the GE/Honeywell machines, special indirect addressing modes could be used on most instruction types, and operated on a byte pointer which could operate on either 6-bit or 9-bit bytes. Neither of these machines originally had direct machine support for random access to bytes; adjusting a byte pointer to point N bytes before or after the byte to which it currently pointed required a sequence of multiple instructions. The KL10 PDP-10 model extended the instruction to become the "adjust byte pointer" instruction, , that could adjust a byte pointer by an arbitrary number of bytes. See also Data structure alignment Endianness References Computer architecture Central processing unit