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.

Na tabela 25 estão representados os 240 códigos hexadecimais das 240 instruções de TEST, SET e RESET.

<-- Voltar

Hosted by www.Geocities.ws

1