Instrucoes de Manipulacao de Bits
Na maior parte dos programas é necessário colocar a
1 (set), colocar a 0 e testar individualmente os bits de um registo ou de uma
posição de memória. 0 microprocessador Z80 tem possibilidade de executar
estas tarefas fazendo uso de instruções simples.
Nas instruções que actuam sobre os bits de células
de memória o endereçamento pode ser indirecto, endereço no par HL, ou
indexado, endereço dado por (IX + d) ou (IY+ d).
Quando se testa um bit de um registo ou de uma posição
de memória a flag Z é colocada a 1 se o bit tiver o valor 0.
BIT b, r.- Teste do Bit b do Registo r
Esta instrução testa o valor de um dos oito bits
(b) de um dos registos de uso geral (r).
É uma instrução de dois bytes com a seguinte
codificação:

A flag Z recebe o valor complementar do bit b
(Z <--rb).
Teste do Bit b de Uma Célula de Memória:
BIT b, (HL), BIT b, (IX + d), BIT b, (IY + d)
Se o endereçamento for indirecto, BIT b, (HL), basta
substituir na instrução anterior rrr por 110.
Se o endereçamento é indexado ter-se-á um código
de operação Composto por quatro bytes:

0 terceiro byte contém a base de endereço
d que se deve adicionar aos registos IX e IY. 0 valor dos bits bbb é idêntico
ao da instrução anterior e selecciona um dos oito bits na posição de memória.
0 registo de flags é afectado do mesmo modo que na
instrução anterior.
SET b, ir: Colocação a 1 do Bit b do Registo r
Esta instrução coloca o valor 1 no bit b de
um dos registos de uso geral. E uma instrução de dois bytes com o formato:

0 registo de flags não é alterado por esta instrução.
SET b, (HL); SET b, (IX + d); SET b (lY + d): Colocação
a 1 do Bit b de Uma Célula de Memória
Se o endereçamento for indirecto, SET b, (HL),
basta substituir na instrução anterior os bits rrr por 110.
Se o endereçamento for indexado ter-se-á um código
de instrução formado por quatro bytes:

0 terceiro byte contém a base de endereço d que
adicionada ao conteúdo dos registos IX e IY fornece o endereço da célula de
memória. 0 significado dos bits bbb é idêntico ao da instrução anterior:
selecção de um dos oito bits da célula de memória para atribuir o valor 1.
0 registo de flags não é afectado por esta instrução.
RES b, s: Colocação a 0 do Bit b de Um Registo ou
de Uma Célula de Memória
Se nas instruções de SET substituirmos os dois bits
dentro do rectângulo tracejado 11 pelos dois bits 10 obtêm-se os códigos binários
das instruções RES b, s.
As instruções RES colocam a 0 (reset) o bit b
de um registo de uso geral (B, C, D, E, H, L, A) ou de uma posição de memória.
0 endereçamento da memória pode ser indirecto (HL) ou indexado (IX + d), (IY +
d).
0 registo de flags não é afectado por esta instrução.