duvidas operadores mpasm

Enviado:
21 Jun 2011 17:39
por diogo_18sp
ola boa tarde a todos estou com umas duvidas dos operadores mpasm , estava lendo o livro desbravando o pic dai fiquei com uma duvida posso utilizar os operadores em minha programaçao , a linguagem que uso eo assembler e uso o mplab 7.20...
valor = flags << 2 ;
poderia usar este trecho do programa para rotacionar um bit?
obrigado
Re: duvidas operadores mpasm

Enviado:
21 Jun 2011 18:01
por andre_luis
Se a variável flags representar um BIT, sim.
Entretanto, esse comando conheço da linguagem C.
+++
Re: duvidas operadores mpasm

Enviado:
21 Jun 2011 18:15
por Jorge_Francisco
andre_teprom escreveu:Se a variável flags representar um BIT, sim.
Entretanto, esse comando conheço da linguagem C.
+++
Isso aí é o mesmo que multiplicar
flags por 4, irá rotacionar 2 bits à esquerda, mas em asm acho que é a instrução é RLCF.

Enviado:
22 Jun 2011 11:43
por MOR_AL
Que eu saiba seria:
rlf registro, destino
rlf registro, destino
Observar que o conteúdo do carry (STATUS,C) vai para o bit 0 do registro e o bit 7 do registro vai para o carry.
Ou seja é um loop que contém o registro e o bit cary.
Não sei se o MPASM aceita a instrução que você postou. Só testando.
Testei e ele não gostou!
MOR_AL

Enviado:
23 Jun 2011 12:13
por RobL
Observe que em Assembly não se usa se quer sinal de = para associação.
No entanto, em certos programas, em assembly, ve-se o operando com uma função complexa com soma, multiplicação, divisão, operações que o set de instruções não fazem. Isto é em nível de "linkador". Antes do processo de produzir o código fonte, essas operações serão feitas pelo programa no PC e um valor final será colocado no lugar dessa operação. Só então será linkado. Daí poderá ver complexas operações com sinais <<, >> * / etc... , do lado direito de uma instrução. Estas operações ajudam a tornar o programa mais compreensível.
Por ex:
MOVLW, (Fclk * (Motor / 4))
em vez de
MOVLW, 0x12