Escolar Documentos
Profissional Documentos
Cultura Documentos
Prof. Fbio M. Costa Instituto de Informtica UFG 1S/ !!" ISA Parte II: Arquiteturas-Exemplo Simuladores e Mquinas Reais
#b$eti%os Gerais
&emonstrar os conceitos 'en(ricos de arquiteturas de computadores )n*%e+ ISA, atra%(s do uso de a+'umas arquiteturase.emp+o representati%as
Introdu3ir o t4pico de pro'rama56o em bai.o n*%e+7 como ferramenta para o entendimento de arquiteturas de computadores
Arquiteturas estudadas
;eber7 9au+ F. <Fundamentos de Arquitetura de Computadores=. S(rie de >i%ros &idticos do Instituto de Informtica da UF9GS7 8?mero 17 a. @di56o. Sa'ra->u33atto7 !!1
Computadores reais0
# Computador 8eander
arquitetura de acumu+ador
1 apontador de pro'rama de 1 bits )PC, 1 re'istrador de estado )f+a's, com c4di'os de condi56o0
Mem4ria
opcode operando
x: Endereo x+1:
H opcode
endere5o direto Obs : o se'undo bCte )operando, ocorre apenas em instru5Bes de manipu+a56o de dados7 i.e.7 que fa3em referDncia E mem4ria
...
10 resu+tado ( ne'ati%o !0 resu+tado ( positi%o 10 resu+tado ( i'ua+ a 3ero !0 resu+tado ( diferente de 3ero
8eander0 Simu+ador
Object 1
# Computadore A/mes
>ar'ura de dados e endere5os0 1 bits &ados representados em comp+emento de 1 acumu+ador de 1 bits )AC, 1 apontador de pro'rama de 1 bits )PC, 1 re'istrador de estado )f+a's, com " c4di'os de condi56o0
ne'ati%o )8, e 3ero )A, carrC out )C,7 borroO out ):,7 o%erf+oO )P,
M8P end
A/mes0 Simu+ador
Object 2
# Computadore 9amses
#utros modos de endere5amento )o 8@A8&@9 s4 tem o direto, 8o%os re'istradores 8o%os bits no re'istrador de estado )c4di'os de condi56o, 8o%as instru5Bes )mais poderosas,
R compat*%e+ com o c4di'o escrito para o 8@A8&@9 )( capa3 de rodar os pro'ramas do 8@A8&@9,
9amses0 Caracter*sticas
Jaman/o da mem4ria K "2 bCtes Isso tem efeito nos c+cu+os que en%o+%em a U>A
&e uso 'era+0 A e * )1 bits, 9e'istrador de *ndice0 + )1 bits, Apontador de pro'rama )PC, 9e'istrador de estado
C4di'os de condi56o 87 A e C
Seme+/ante ao 8eander
,, #ireto0 endere5o do operando no se'undo bCte )como no 8eander, ,- Indireto0 endere5o do endere5o do operando no se'undo bCte -, Imediato0 o pr4prio operando no se'undo bCte -- Indexado0 o se'undo bCte cont(m um endere5o )base,7 que ( somado ao conte?do do re'istrador 9S )*ndice, para compor o endere5o do operando
)rea de dados,
!!0 9e'istrador A )9A, !10 9e'istrador : )9:, 1!0 9e'istrador de *ndice )9S, 110 indefinido
&ireto0 end K n
@.10 8#M@ @. 0 TFI @.10 8#M@7I @. 0 TFI7I @.10 U8#M@ @. 0 U "I @.10 8#M@7S @. 0 TFI7S
Imediato0 end K Un
#s se'uintes modos de endere5amento podem ser usados para especificar o endere5o a+%o de des%ios
@ndere5o de des%io0
# que ( equi%a+ente a0
@ndere5o de des%io
M@M)M@M)PC,, M@M)M@M)M@M)PC,,,
Pr4.ima instru56o
@ndere5o de des%io
Pr4.ima Instru56o
Acesso E mem4ria
SJ9 r end >&9 r end A&& r end SU: r end #9 r end A8& r end 8#J r 8@G r
Aritim(ticas e +4'icas
MMP M8 MA MC MS9
Q PC L end Q IF 8K1 JI@8 PC L end Q IF AK1 JI@8 PC L end Q IF CK1 JI@8 PC L end Q M@M)end, L PCQ PC L endN1
SI9 r
Q r L r/
@.erc*cio
@.. F );eber,0
# Montador &aeda+us
Jump to SubRoutine
@.emp+o0
@.emp+os de c/amadas
... 1! MS9 2! Q'uarda end. 1 na pos. 2! da mem. 1 ... Qinstru56o a e.ecutar ap4s o retorno ... 12 MS9 2! Q'uarda end. 11 na pos. 2! da mem. 11 ... Q instru56o a e.ecutar ap4s o retorno ... 2! 8#P Qposi56o onde ser 'uardado o end. retorno 21 ... Qposi56o onde fica a primeira instr. da rotina
Por queWWW
&uas moda+idades0
Por %a+or passa-se o %a+or da %ari%e+ Por nome passa-se o endere5o da %ari%e+ %ia re'istrador %ia mem4ria7 em endere5os pre-estabe+ecidos %ia mem4ria7 nas posi5Bes se'uintes E c/amada %ia mem4ria7 em endere5o apontado por 9S )modo inde.ado,
Mecanismos0
Pro$rama prin&ipal:
LDR A primeiro_operando LDR B segundo_operando JSR multiplica STR A resultado
Subrotina:
multiplica: NOP STR A op1 STR B op2 multiplicao! LDR A result J"P multiplica# $
Pro$rama prin&ipal:
LDR STR LDR STR JSR LDR STR A A A A primeiro_operando param1 segundo_operando param2 multiplica A param% A resultado
Subrotina
NOP LDR A param1 STR A op1 LDR A param2 STR A op2 <multiplicao> LDR A result STR A param% J"P multiplica#$
Subrotina:
A A A A A A A A A A multiplica# $ param1 multiplica '1 multiplica multiplica# $ param2 multiplica '1 multiplica
Pro$rama prin&ipal:
JSR multiplica valor do 1o. operando! valor do 2o. operando! endereo do resultado! instruo seguinte!! &&&
multiplica: NOP LDR STR LDR ADD STR LDR STR LDR ADD STR
multiplica()o! LDR STR LDR STR LDR ADD STR A A B B A A A multiplica# $ param% result param%# $ multiplica '1 multiplica
J"P multiplica# $
Subrotina
LDR * multiplica +endere(o do primeiro operando LDR A ,#* +-alor do primeiro operando STR A param1 LDR A 1#* STR A param2 multiplica()o! STR LDR LDR STR * * A A end_ret 2#* result ,#* +endere(o do terceiro op& .retorno/ +resultado da rotina +sal-a result& no endere(o do %o& par0metro +-alor do segundo operando
multiplica: NOP
LDR * end_ret ADD * '% +atuali1a o endere(o de retorno STR * multiplica J"P multiplica# $ +retorna da su2rotina
Caracter*sticas 'erais #r'ani3a56o de mem4ria Modos de endere5amento Manipu+a56o da Pi+/a Con$unto de instru5Bes @ntrada e Sa*da Subrotinas
87 A7 C7 P
Processamento de pi+/a Incompat*%e+ com o 8@A8&@9 e 9AMS@S &ados e endere5os com 12 bits 9epresenta56o dos dados em comp+emento de Instru5Bes com !7 1 ou endere5os )operandos, 9e'istradores de uso 'era+
9! at( 9"0 sem fun56o espec*fica 920 apontador de pi+/a )SP StacY Pointer, 9H0 apontador de pro'rama )PC Pro'ram Counter,
Acomodar instru5Bes com 1 bCte Usada em processadores comerciais @m 'era+7 dados mais +ar'os possuem taman/os m?+tip+os de 1 bits :i' endian ou /i'//+oO0 Motoro+a7 C@SA9 >itt+e endian ou +oO//i'/0 Inte+
Formas de arma3enamento
Obs : todos os modos )e.ceto !!!, podem ser usados tanto para acesso a dados quanto para indicar endere5os de des%io Z para endere5o de des%io7 o modo !!! )re'istrador, n6o ( %+ido
# processador permite +i%re acesso ao PC )contador de pro'rama,. A+'uns modos de endere5amento comuns podem ser obtidos desta forma0
Uso do re'istrador 9H )PC, no modo re'istrador com p4s-incremento A pa+a%ra ) bCtes, se'uinte E instru56o atua+ cont(m o operando imediato
operando0 M@M)PC, PC L PC N
Uso do re'istrador 9H )PC, no modo p4s-incremento indireto A pa+a%ra se'uinte E instru56o atua+ cont(m o endere5o do operando
operando0 M@M)M@M)PC,, PC L PC N
re'istrador 92
&esempi+/amento
Dado := MEM(SP) SP := SP + 2
Obs : n6o / instru5Bes espec*ficas para manipu+a56o da pi+/a usar os modos de re'istrador p4s- e pr(-incremento com o re'istrador 92
!OP
CCC0 ! ! ! 1 n 3 % c
des+i'a )3era, os c4di'os de condi56o correspondentes aos bits se+ecionados )n7 37 %7 c, +i'a os c4di'os de condi56o se+ecionados
SCC0 ! ! 1 ! n 3 % c
! ! d 1 d 1 d c d c d c d c d
em comp+emento de 0 fai.a PC-1 1 at( PCN1 H %a+or do PC uti+i3ado0 endere5o da pr4.ima instru56o )isto (7 ap4s o bCte de des+ocamento,
! ! m ! m . m . r . r . r
1 .
Subtract One and Branch if not zero uti+i3a um re'istrador como contador
H ! d ! 1 d ! d 1 d . d r d r d r d
Formato0 SO*
bits r r r0 re'istrador usado como contador bits d0 endere5o para o des%io )in*cio do +a5o,7 e.presso como um des+ocamento re+ati%o ao PC
#cupa
4SR
bits r r r do -o b2te0 re'istrador de retorno pode ser o pr4prio PC[ )i.e.7 9H, bits mmm e rrr /5o b2te30 modo de endere5amento e re'istrador usados para ca+cu+ar o endere5o da subrotina
temporrio endereo da subrotina pilha registrador de retorno registrador de retorno R7 (i.e., PC) R7 temporrio
@.ecu56o0
H ! ! 1 1 1 . r r r
@.ecu56o0
Formato 'era+0
H 1 .
! ! . ! m ! m c m c r c r c r
&o &&&&0 c4di'o espec*fico da instru56o &os mmm e rrr0 modo de endere5amento e re'istrador usados para ca+cu+ar o operando da instru56o
Formato 'era+0
H 1 r
! c r c m c m m m m r m r r r
&o &&&0 c4di'o espec*fico da instru56o primeiro par mmm e rrr0 operando fonte se$undo par mmm e rrr0 operando destino
Modos de endere5amento
S6mbolo 9. )9.,N -)9., ddd)9., )9., ))9.,N, )-)9.,, )ddd)9.,, Unnn )onde0 nnn K %a+or da constante, nnn )onde0 nnn K endere5o de mem.,
Modo 9e'istrador 9e'. )indireto, com p4s-decremento 9e'. )indireto, com pr(-decremento Inde.ado 9e'istrador indireto 9e'. p4s-incr. )dup+amente, indireto 9e'. pr(-decr. )dup+amente, indireto Inde.ado Indireto Imediato Abso+uto ou direto
Instru5Bes )mnemVnicos,
Codifica56o simb4+ica
CCC 8!9 8:9 8;9 8C9 SCC 8!9 8:9 8;9 8C9 *&&& ddd )onde0 ddd K des+ocamento em re+a56o ao 9H. @..0 :8@ -12, 4MP end )onde0 end indica o endere5o a+%o do des%io7 com uso de um modo de endere5amento apropriado, SO* Rx7 ddd )onde0 ddd K des+ocamento, 4SR Rx7 end )onde0 end K endere5o da subrotina, R"S Rx )e 9. K re'. de retorno, +++ op_end )onde0 op\end K end. do operando, )@..0 &@C op\end op L op 1, +++ end_fonte7 end_dest )@..0 M#P end\fonte7 end\dest dest L fonte,
Cate'oria de Instru5Bes
Instru5Bes sobre c4di'os de condi56o Instru5Bes de des%io condiciona+ Instru56o de des%io incondiciona+
Instru56o de contro+e de +a5o Instru5Bes para des%io e retorno de subrotina Instru5Bes de um operando Instru5Bes de dois operandos
+etras e d*'itos +eitura de um caractere teste se uma tec+a foi di'itada Usa o tec+ado do computador /ospedeiro endere5os 2""!! a 2""F"0 %isor 2"GTT0 ?+timo caractere di'itado 2"GT10 estado do tec+ado )1!/ se um caractere foi di'itado,
Jec+ado
@ste bCte de%e ser 3erado toda %e3 que um caractere ( +ido )em prepara56o para a +eitura do pr4.imo caractere,
Cesar0 Subrotinas
9. ( sa+%o na pi+/a 9. L endere5o de retorno )bCte se'uinte ao MS9, 9H L end )i.e.7 des%io para end, 9H L 9. 9. L topo da pi+/a
Obser1a'(o: Pode-se usar 9H como o pr4prio re'istrador de retorno )mais comum em arquiteturas atuais7 mas menos f+e.*%e+,
9JS 9.
@.emp+o
13 14 2, 22 && && 43 && && 89 &&& "O5 R,# '43 JSR R6# .R,/ +c7amada &&& &&& &&& "O5 R%# R3 &&& +corpo da su2rotina &&& RTS R6 +retorno
1 2 !
+in;cio da su2rotina +o2t<m o primeiro par0metro +o2t<m o segundo par0metro +o2t<m o terceiro par0metro +retorno da su2rotina
A :ib+ioteca :ibCesar
>impar o %isor rotina iterati%a Mu+tip+icar dois inteiros positi%os de 12 bits >impar o %isor rotina mais rpida &i%idir um n?mero inteiro positi%o de F bits por outro de 12 bits @scre%er no %isor Identifica56o da %ers6o da bib+ioteca
:ib+io'rafia
Cap*tu+os G7 " e 11