Escolar Documentos
Profissional Documentos
Cultura Documentos
Assembly Pic
Assembly Pic
Organizao Interna
Instrues
Instrues
Instrues
Instrues
c%rf f
'impa o conte(do no f da mem)ria (o endere*o de+e ser +,%ido). Adiciona o conte(do do registrador . ao conte(do presente no endere*o f. / %oca% onde o resu%tado ser, arma0enado +ai depender do bit d. /s bits 1& C e DC do registrador de status podem ser afetados.
add-f f& d
Instrues
add%- k
Adiciona o +a%or de uma constante k& de 2 bits& no registrador de traba%ho. $orna o bit b da pa%a+ra de 2 bits arma0enada no endere*o f igua% a 0 %)gico. Des+ia a e3ecu*4o das instru*5es para a instru*4o assina%ada com a etiqueta k.
bcf f& b
goto k
Instrues
mo+-f f
6o+e o conte(do presente no registrador . para o endere*o de mem)ria f. 6o+e o conte(do presente no endere*o da mem)ria f para o registrador . (se d 7 0) ou para o pr)prio endere*o f (se d 7 1). 6o+e o +a%or k (2 bits) para o registrador ..
mo+f f& d
mo+%- k
Instrues
6ode%o...
Instrues
Instrues
fib0 equ 20 fib equ 2 fib2 equ 22 fibtem! equ 2" org 00 c%rf fib0 mo+%- 1 mo+-f fib1 mo+-f fib8 for-ard mo+f fib1& 0 add-f fib8& 0 mo+-f fibtemp mo+f fib1& 0 mo+-f fib0 mo+f fib8& 0 mo+-f fib1 mo+f fibtemp& 0 mo+-f fib8 goto for-ard end
so de etiquetas 9fib09& 9fib19& etc.& para referenciar endere*os de mem)ria. Foram esco%hidos os endere*os de 80 at: 8; (em he3adecima%).
<nforma ao montador onde o programa de+e ser arma0enado. "este caso& o endere*o inicia% : 00.
Instrues
fib0 equ 80 fib1 equ 81 fib8 equ 88 fibtemp equ 8; org 00 #lrf fib0 mo$l% mo$%f fib mo$%f fib2 for%ard mo$f fib & 0 add%f fib2& 0 mo$%f fibtem! mo+f fib1& 0 mo+-f fib0 mo+f fib8& 0 mo+-f fib1 mo+f fibtemp& 0 mo+-f fib8 goto for-ard end
<nicia a s:rie de Fibonacci com os endere*os citados= fib0 > 0 fib1 > 1 fib8 > 1 (fib8 7 fib1 ? fib0)
6o+e o conte(do de fib1 para o registrador de traba%ho. @oma o conte(do de fib8 com o conte(do do registrador de traba%ho. 6o+e o conte(do do registrador de traba%ho para o endere*o 9tempor,rio9. Asses s4o os procedimentos para fa0er fib1 ? fib8
Instrues
fib0 equ 80 fib1 equ 81 fib8 equ 88 fibtemp equ 8; org 00 c%rf fib0 mo+%- 1 mo+-f fib1 mo+-f fib8 for-ard mo+f fib1& 0 add-f fib8& 0 mo+-f fibtemp mo$f fib & 0 mo$%f fib0 mo$f fib2& 0 mo$%f fib mo$f fibtem!& 0 mo$%f fib2 goto for%ard end
6o+e no+amente o conte(do de fib1 para o registrador de traba%ho. 6o+e o conte(do do registrador de traba%ho para fib0 (imp%ementa*4o em assembly de fib0 > fib1). 6o+e o conte(do de fib8 para o registrador de traba%ho. 6o+e o conte(do do registrador de traba%ho para fib1 (imp%ementa*4o em assembly de fib1 > fib8). 6o+e no+amente o conte(do de fibtemp (que tem a soma dos n(meros anteriores da s:rie) para o registrador de traba%ho. 6o+e o conte(do do registrador de traba%ho para fib8 (imp%ementa*4o em assembly de fib8 > fibtemp). @ustenta*4o do %a*o com gotoB
'este
'er as se*5es 4.4 at: 4.D (capEtu%o 4 do %i+ro te3to Designing Embedded Systems with PIC Microcontrollers) e reprodu0ir a simu%a*4o do programa da s:rie de Fibonacci.
Instrues
bsf f& d
@eta o bit d do conte(do arma0enado em f com +a%or %)gico 1.
bcf f& d
@eta o bit d do conte(do arma0enado em f com +a%or %)gico 0.
(ais um teste)))
!eprodu0ir este programa em assemb%J em um simu%ador (Proteus& 6u%tisim& Ktech%ab&...). Adicionar bot5es para os pinos de entrada no porto A e %eds nos pinos do porto b.
Programas em Assembly
Diagramas de estado.
Programas em Assembly
Programas em Assembly
Decis5es=
<nstru*5es que testam um bit em particu%ar e& dependendo do resu%tado do teste& ou o programa continua sendo e3ecutado norma%mente ou h, um des+io de e3ecu*4o das instru*5es.
btfsc f& b btfss f& b
$esta o bit b do conte(do arma0enado no endere*o f. @e esse bit for 1& ent4o h, o 9sa%to9 de apenas uma instru*4o.
$esta o bit b do conte(do arma0enado no endere*o f. @e esse bit for 0& ent4o h, o 9sa%to9 de apenas uma instru*4o.
Programas em Assembly
A3emp%o=
Programas em Assembly
A3emp%o=
Programas em Assembly
Programas em Assembly
Programas em Assembly
Programas em Assembly
(ais testes)))
*ubrotinas
*ubrotinas
call e return
O+*), a pi%ha somente tem 2 posi*5es.
"ecessita de etiqueta (%abe% de 2 bits) Nuando call : uti%i0ada& o endere*o da instru*4o que +em %ogo ap)s call (ou seMa& o conte(do do PC # contador do programa) : arma0enada na pi%ha. / endere*o da primeira instru*4o da subrotina : gra+ada no PC. Nuando a subrotina : fina%i0ada por return& o conte(do do topo da pi%ha (endere*o da instru*4o que +em ap)s call) : 9desempi%hado9 e arma0enado no PC. As instru*5es call e return de+em sempre serem usadas Muntas.
*ubrotinas
*ubrotinas
sar uma certa posi*4o da mem)ria para arma0enar um +a%or que ser+ir, como 9contador9 # +a%or decrementado& em um %a*o& at: chegar a 0ero. / tempo gasto para isso depende de= do +a%or inicia% arma0enado na mem)ria e do tempo gasto no %a*o.
Atrasos n4o t4o precisos podem ser gerados usando outros osci%adores (circuito !C e3terno& por e3emp%o).
A3emp%o...
decfs0 f& d
Decrementa o conte(do presente no endere*o f. @e esse conte(do for 0ero& sa%taOse uma instru*4o. / bit d direciona para onde o resu%tado do decremento ser, arma0enado.
Instrues ./gi#as
and-f f& d
A"D entre conte(do de . e conte(do de f.
ior-f f& d
/! inc%usi+o entre . e f.
3or-f f& d
/! e3c%usi+o entre . e f.
and-% k
A"D entre conte(do de . e k.
ior%- k
/! inc%usi+o entre . e +a%or %itera% k.
3or%- k
/! e3c%usi+o entre . e +a%or k.
r%f f& d
Des%ocamento de 1 bit para esquerda
rrf f& d
Des%ocamento de 1 bit para direita.
Instrues ./gi#as
Instrues ./gi#as
Instrues ./gi#as
Instrues ./gi#as
'abelas Look-up
Consiste em um b%oco de dados que : arma0enado na mem)ria do programa& e que : acessado e uti%i0ado por e%e. P o e%emento uti%i0ado para a inser*4o de um padr4o de +a%ores em a%gum endere*o ou registrador.
'abelas Look-up
'abelas Look-up
addwf pcl L soma o conte(do do registrador . ao pc% (bJte menos significati+o do PC). retwl L instru*4o de retorno de subrotina. !etorna o +a%or %itera% indicado ao registrador ..
Qer e3emp%oB
'abelas Look-up
'abelas Look-up
'abelas Look-up
'abelas Look-up
'abelas Look-up
Direti+a Rinc%ude= cada arqui+o S.incT possui +,rias defini*5es de endere*os de mem)ria.
6acros= recurso uti%i0ado pe%o programador para agrupar instru*5es e& com isso& obter mais f%e3ibi%idade na escrita dos programas.