Para saber mais sobre o que são, quais tipos e modos de endereçamento, leia o artigo:
Modos de endereçamento do 8086/8088
Registros de mesmo tamanho
Um detalhe importante, que muitos esquecem, que acaba por ser um erro por parte dos estudantes, é o tamanho dos registros quando estamos trabalhando com a instrução MOV.Os registros de 8 bits são: AL, AH, BL, BH, CL, CH, DL e DH
Os registros de 16 bits são: AX, BX, CX, DX e os registros de segmento (CS, DS, ES, SS, FS e GS).
Sabendo disso, instruções do tipo não são permitidas:
MOV AL, BX
Pois o registro BX armazena 16 bits e o AL somente 8 bits.
O Assembler também irá acusa erro caso faça:
MOV BX, AL
Ou seja, só usa registros de mesmo tamanho para trabalhar com a instrução MOV.
A instrução MOV no endereçamento de registro
Como pudemos ver no artigo passado, quando introduzimos os conceitos sobre os modos de endereçamento no microprocessador 8086, a instrução MOV é extremamente poderosa e versátil, sendo amplamente usada nos mais diversos tipos de endereçamentos.Porém, ela tem suas regras e limitações, que são detalhes importantes de serem lembrados.
Por exemplo, usamos ela para copiar informações entre registros e/ou memória, porém não podemos usar a instrução MOV entre registros de segmentos, bem como registros de segmento não podem ser usados como destino. Ou seja, não podemos fazer:
MOV DS, ES
MOV ES, AX
A razão disso é que o endereço da próxima instrução a ser executada pelo microprocessador 8086/8088 está armazenado nos registros CS e IP, e se mudarmos apenas um desses registros, não seria possível encontrar a próxima instrução.
Um cuidado que devemos lembrar é o que foi dito no tópico anterior: só use a instrução MOV entre registros de mesmo tamanho.
Por fim, lembramos sempre que a instrução MOV não altera os bits de flag.
Nenhum comentário:
Postar um comentário