Avaliação 2 MIC - 2017_1

Propaganda
2) (3 pt) Para o programa a seguir complete a tabela com os valores constantes em cada co-
luna após o processamento da instrução da respectiva linha de instrução conforme visto
em exercícios de revisão. Os valores numéricos na tabela estão na base decimal. Considere que antes da primeira instrução as variáveis TEMP1, TEMP2 e o W possuem valores
nulos (zero).
INSTRUÇÂO
MOVLW 22
MOVWF TEMP1
ADDLW 8
MOVWF TEMP2
ADDWF TEMP1,1
INCF TEMP2,1
MOVF TEMP2,1
ADDLW 25
DECF TEMP1,1
ADDWF TEMP1,0
MOVLW 12
ADDWF TEMP2,1
MOVF TEMP1,0
ADDLW 18
INCF TEMP1,0
W
TEMP1
TEMP2
3) (3 pt) Para o programa a seguir complete a tabela com os valores constantes em cada co-
luna após o processamento da instrução da respectiva linha de instrução. Os valores numéricos na tabela estão na base binária (Ver tabela verdade da operação XOR).
INSTRUÇÃO
MOVLW B’00101101’
MOVWF TEMP1
ANDLW B’00111001’
MOVWF TEMP2
IORLW B’10011011’
XORWF TEMP1,1
ANDWF TEMP1,0
ANDWF TEMP2,0
IORWF TEMP1,0
XORLW B’10110011’
ANDWF TEMP2,0
XORWF TEMP1,1
ANDWF TEMP2,0
W
00101101
A
0
0
1
1
Tabela Verdade XOR
B
A XOR B
0
0
1
1
0
1
1
0
TEMP1
00000000
TEMP2
00000000
Sintaxe
ADDLW k
ADDWF f,d
ANDLW k
ANDWF f,d
BCF f,b
BSF f,b
BTFSC f,b
BTFSS f,b
CALL k
CLRF f
CLRW
CLRWDT
COMF f,d
DECF f,d
DECFSZ f,d
GOTO k
INCF f,d
INCFSZ f,d
IORLW k
IORWF f,d
MOVLW k
MOVF f,d
MOVWF f
NOP
OPTION
RETFIE
RETLW k
RETURN
RLF f,d
RRF f,d
SLEEP
SUBLW k
SUBWF f,d
SWAPF f
TRIS f
XORLW k
XORWF f,d
Set de instruções do PIC
Descrição Microchip
Operação equivalente
Soma Literal e W
W=W+k
Soma W e f *
d = W + f (onde d pode ser W ou f)
AND Literal com W
W = W AND k
AND W com f *
d = W AND f (onde d pode ser W ou f)
Bit Clear f
f(b) = 0 (Apaga bit)
Bit Set f
f(b) = 1 (Seta bit)
Bit Test f, Skip if Clear
f(b) = 0 ? Se for zero(0), pule uma instrução
Bit Test f, skip if Set
f(b) = 1 ? Se for um(1), pule uma instrução
Subroutine Call
Chamada a uma subrotina no endereço k
Clear f
f=0
Clear W Register
W=0
Clear Watchdog Timer
Watchdog timer = 0
Complemento de f
d = not f (onde d pode ser W ou f)
Decremento de f
d = f -1 (onde d pode ser W ou f)
Decremento f, Skip(pula)se 0
d = f -1 (onde d pode ser W ou f) se = 0 pula
Go to address
Pule para o endereço k
Incrementa f *
d = f +1 (onde d pode ser W ou f)
Incrementa f, pula se =0 *
d = f +1 (onde d pode ser W ou f) se d = 0 pule
Inclusive OR Literal com W
W = W OR k
Inclusive OR W com f *
d = f OR W (onde d pode ser W ou f)
Move literal para W
W=k
Move f *
d = f (onde d pode ser W ou f)
Move W para f *
f=W
No Operation
Nenhuma operação
Load Option Register
OPTION = W
Return from Interrupt
Retorna de uma interrupção
Return Literal to W
Retorna de uma subrotina com W = k
Return from Subroutine
Retorna de uma subrotina
Rotação para esquerda *
d = f << 1 (onde d pode ser W ou f)
Rotação para direita *
d = f >> 1 (onde d pode ser W o f)
Go into Standby Mode
Coloca em standby o PIC
Subtrai W de Literal
W=k-W
Subtrai W de f *
d = f - W (onde d pode ser W ou f)
Swap f
f = Swap do bit 0123 com 4567 de f
Load TRIS Register
TRIS di f = W
Exclusive OR Literal com W
W = W XOR k
Exclusive OR W com f *
d = f XOR W (onde d pode ser W ou f)
Tabela 1 – Código padrão para o programa assembly da questão 1
#DEFINE BANK0 BCF STATUS,RP0 ;SETA BANK 0 DE MEMÓRIA (PROGRAMA)
#DEFINE BANK1 BSF STATUS,RP0 ;SETA BANK 1 DE MAMÓRIA (CONFIGURAÇÃO)
CBLOCK 0x20
; AS VARIÁVEIS DO PROGRAMA DEVEM SER DEFINIDAS AQUI
ENDC
ORG
GOTO
0x00
CONFIGURACAO
ORG
NOP
RETFIE
0x04
;ENDEREÇO INICIAL DA INTERRUPÇÃO
;RETORNA DA INTERRUPÇÃO
CONFIGURACAO:
BANK1
;ALTERA PARA O BANCO 1
; A CONFIGURAÇÃO DOS REGISTRADORES DO BANCO 1 DEVE SER
;INSERIDA AQUI
BANK0
;RETORNA PARA O BANCO 0
INICIO:
;O PROGRAMA PRINCIPAL DEVE SER INSERIDO AQUI
END
Download