You are on page 1of 14

MATA49 Programao de Software Bsico

Leandro Andrade leandrojsa<at>dcc.ufba.br

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

uma lista que segue os seguinte princpios:

Os no os alores s!o sempre inseridos no topo da lista "# $ poss el remo er elementos do topo da pilha% assim tornando o pen&ltimo elemento inserido como o no o topo L'(O )last in% first out*

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

Pilha em tempo de e+ecu,!o

um trecho de mem#ria gerenciado diretamente pela -P. .sa o registrador /"P como um apontador para o topo da pilha

O /"P raramente $ manipulado diretamente% em e0 disso $ modificado por instru,1es que manipulam a pilha

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

Opera,!o Push:

'nsere um elemento no topo da pilha e o /"P passa apontar para o no o topo /m outras pala ras: 2ecrementa em 3 b4tes o endere,o do /"P e insere neste endere,o o no o elemento

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

Opera,!o Pop:

5emo e o elemento do topo da pilha e o /"P passa a apontar para o no o topo /m outras pala ras: incrementa 3 b4tes ao endere,o do /"P assim tornando o elemento anterior o no o topo

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

Opera,!o Pop:

O valor logicamente removido isto ele contin!a no endereo de mem"ria #orm ser so$rescrito na #r"%ima insero
CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

Aplica,1es:

Podem guardar temporariamente dados dos registradores 6a chamada de procedimentos o endere,o de retorno ap#s a e+ecu,!o da rotina $ arma0enado na pilha Os argumentos de um procedimento podem tamb$m ser arma0enados na pilha .sadas tamb$m para arma0enar ari7 eis locais de uma sub8rotina
CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

'nstru,!o push

2ecrementa o /"P e copia o alor do operando para o endere,o de mem#ria inde+ado pelo /"P "in+ate: push <fonte>

P."9 reg:mem;< P."9 reg:mem=>

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

Pilhas

'nstru,!o pop

-opia o alor apontado pelo /"P para o operando e depois incrementa o /"P "in+ate: pop <destino>

POP reg:mem;< POP reg:mem=>

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

10

Pilhas

/+emplo

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

11

Pilhas

/+erccio:

2esen ol a um programa que in erte as posi,1es de um etor utili0ando uma pilha /+emplo: etor; ? @;% >% =% 3% AB C @A% 3% =% >% ;B

CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

12

Pilhas

P."9(+ e POP(+

/mpilham:desempilham o alor do registrador /(LAD" P."9(2 e POP(2: empilham:desempilham os => bits do /(LAD" P."9(E e POP(E: empilham:desempilham os ;< &ltimos bits do /(LAD" P."9( e POP(: mnemFnico para )P."9:POP*(2
CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

13

Pilhas

P."9A+ e POPA+

/mpilham:desempilham os alores dos registradores /AG% /-G% /2G% /HG% /"P% /HP% /"' e /2'% P."9A2 e POPA2: empilham:desempilham os => bits dos registradores P."9AE e POPAE: empilham:desempilham os ;< &ltimos bits dos registradores P."9A e POPA: mnemFnico para )P."9:POP*A2
CINCIA DA COMPUTAO - UFBA PROF. LEANDRO ANDRADE

14

You might also like