Академический Документы
Профессиональный Документы
Культура Документы
Generalidades 80!86
"odos de direccionamiento
#et de instrucciones
Assembler
&os procesadores Intel 8086 ' 8088 son la base del I(")*C '
compatibles
+8086 introducido en ,-.8/ primer I(")*C en ,-8,0
Registros de #egmento7
!odos de funciona$iento
!7xi$o
!8ni$o
ClocH generator
Controlador 2"A
Controlador interrupciones
1imer
etcB
Io utili:ado en *Cs
Controladores
8ardJare dedicado
Arquitectura de Computadores II
#eCal R5#51F
1ipos
Io enmascarables4
#ervicios de la (I<#
Uso de la I"I
*arit' 5rror
*oJer ;ail
5tcB
Arquitectura de Computadores II
5$emplo de I"I
"oDer Fai)
!onitor
"arit% Error
Detector
*"U
-!I
I-#R
IO
DeEice
Arquitectura de Computadores II
Generalidades 8086%8080
(C2
2ispone de -A instrucciones4
Frecuencia tpica
8 "8: +80860
AN/ acumulador4
(N/ base4
CN/ contador4
2N/ dato4
(it 6e! .6R=QA,0 F52C(A-8
2& 28
2N
C& C8 CN
(& (8 (N
A& A8 AN
('te In;erior ('te #uperior Registro
Arquitectura de Computadores II
Registros +ii0
#egmento
C#/ cdigo
2#/ dato4
##/ pila4
5#/ e!tra4
*unteros a pila
Registros de ndice
*untero a instruccin
(anderas
Arquitectura de Computadores II
"odos de direccionamiento +i0
R5GI#1R<
T Un par3metro que direcciona a un registro est3 utili:ando el
modo de direccionamiento R5GI#1R<4
T 5$7 "<L A!/(!
T 5n este e$emplo los dos par3metros direccionan un registro4
LA&<R o II"52IA1<
T Utili:ado cuando se 6ace re;erencia a un valor constante que
se codi;ica $unto con la instruccin4 5s decir dic6o par3metro
representa a su valor ' no a una direccin de memoria o un
registro que lo contiene4
T 5$7 "<L A!/R00
Arquitectura de Computadores II
"odos de direccionamiento +ii0
DIRE*#O
F ,e uti)iGa e) $odo directo cuando se referencia a una direcci6n de
$e$oria % )a $is$a est7 codificada Hunto con )a instrucci6nI
F EH9 !O? '(,J0.<K
F En este eHe$p)o e) offset de )a direcci6n de $e$oria se codifica Hunto
con )a instrucci6n % e) se&$ento se asu$e a D,I ,i !E!ORI' es un
arra% de /%tes Lue representa a )a $e$oria9
F '( 9M !E!ORI'J D,90.< K
I-DIRE*#O
F ,e uti)iGa e) $odo directo cuando se referencia a una direcci6n de
$e$oria a traENs de uno o Earios re&istros
F EH9 !O? '(,JBxK
F 'Lu8 e) offset de )a direcci6n de $e$oria esta contenido en e)
re&istro Bx % a) i&ua) Lue e) caso anterior co$o no se especifica e)
se&$ento se asu$e D,I EHe$p)o9
F '( 9M !E!ORI' JD,9BxK
Arquitectura de Computadores II
Formato de instruccin +i0
+---+---+---+---+---+---+---+---+
| Cdigo de Operacin | D | W |
+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+
| MOD | REG | REG/MEM |
+---+---+---+---+---+---+---+---+
+---------------------+ +---------------------+
| byte/palabra despl. | | byte/palabra inmed. |
+---------------------+ +---------------------+
Arquitectura de Computadores II
Formato de instruccin +ii0
00 sin despla:amiento4
0, despla:amiento de 8 bits
,0 despla:amiento de ,6 bits
,, registro
'rit$Nticas
&gicas
2espla:amiento
"ane$o de Flags
(i;urcacin Incondicional
(i;urcacin Condicional
Interrupciones
"ane$o de #tacH
1erminan con b o (4
5$7 ,000,, b4
Lalores octales4
5$7 66= o4
Lalores 6e!adecimales
1erminan con 6 o 84
5$emplo7 0FFF6
Lalores decimales4
U8ola mundoV4
Arquitectura de Computadores II
<peradores
5$emplos
T .RWAR
T 80XAR
T ,00A%,AQ
T ,,0000, #8R A
<perador not
5$emplos de despla:amientos7
T (N
T (NW2I
T (NW#IWA
5$emplos7
inc MbpO
mov Mb!O/a!
!or Mb!O/al
Io permitido
mul =
mov 5#/=
mov AN/M(NX=O
mov AN/(NX=
mov AN/(NW,
pu6s (&
pus6 =
mov (&/AN
Arquitectura de Computadores II
2irectivas(0=)
5$emplo7
IU&& 5?U 0
1A"\5&5" 5?U =X8
inter5lem 5?U CN
"A#S 5?U ,000,0 b
"A#S\A 5?U "A#S #8R A
Arquitectura de Computadores II
2irectivas(.=)
5$emplo7
iter5lem 2G 0
vectorC6ico 2( ,/A/Q/=/R/6
vectorGrande 2( ,0A= dup+00
444
mov a!/Miter5lemO
mov bl/MvectorC6icoWAO
Arquitectura de Computadores II
2irectivas(1=)
5$emplo7
sqr "ACR< registro
mov AN/registro
mul registro
mov registro/AN
5I2"
Arquitectura de Computadores II
2irectivas(2=)
5$emplo7
mov b'te ptr M5#7(NO/ 0
mul Jord ptr M2IO
Arquitectura de Computadores II
2irectivas(==)
2e;inicin de un procedimiento7
nombre*roc *R<C atributo
B
nombre*roc 5I2*
Arquitectura de Computadores II
Instrucciones (0.)
Formato
MetiquetaO nombreInstruccion MoperandosO McomentariosO
5tiqueta +i0
T Iombre simblico que re;erencia la primera posicin
de la instruccin4
T *uede estar ;ormada por
T &etra A a ]4
T Imeros 0 a -4
T Caracteres especiales ^ ) 4 _4
Arquitectura de Computadores II
Instrucciones (..)
5tiqueta +ii0
5$emplo7
iteradorinteger!
p"ertobyte!
#
Direcci6n de
$e$oria
n
nO0
nO.
nO1
iterador
(/aHa)
iterador
(a)ta)
puerto
5
Arquitectura de Computadores II
'cceso a estructuras de datos en
$e$oria (.1)
Direcci6n de
$e$oria
n
nO0
nO.
nO1
dato (/aHa)
dato (a)ta)
hiHoDer
hiHoIGL
5$emplo7
t'pe nodoK
record
dato7integerP
6i$o2er7b'teP
6i$oI:q7b'teP
end
Arquitectura de Computadores II
'cceso a estructuras de datos en
$e$oria (11)
5$emplo7
type arbol$array%&..'M()*+ODO,--./ o0 nodo!
direcci6n Pndice
n
0
nO0
nO.
nO1
nO2
0
nO=
nO6
nO<
dato (/aHa)
dato (a)ta)
hiHoDer
hiHoIGL
dato (/aHa)
dato (a)ta)
hiHoDer
hiHoIGL
...
direcci6n Pndice
nOiQ2
i
nOiQ2O0
nOiQ2O.
nOiQ2 1
dato (/aHa)
dato (a)ta)
hiHoDer
hiHoIGL
Arquitectura de Computadores II
*o$pi)ado de estructuras de contro) (0.)
i;)t6en)else
i0 'i12&. t3en
4blo5"e del i06
else
4blo5"e del else6
cmp i7&
8e else
! a5"9 :a el blo5"e 5"e
! corresponde al t3en
8mp 0in;0
else
! a5"9 :a el blo5"e 5"e
! corresponde al else
0in;0
Alto nivel Asembler
Arquitectura de Computadores II
*o$pi)ado de estructuras de contro) (..)
J6ile
<3ile 'i1n. do
4blo5"e del <3ile6
<3ile
cmp i7n
8ae 0inW3ile
! a5"9 :a el blo5"e 5"e
! corresponde al c"erpo
! del <3ile
8mp <3ile
0inW3ile
Alto nivel Asembler
Arquitectura de Computadores II
Compilado una ;uncin+,%Q0
Alto nivel7
,tring$array%&..'=(RGO*M();MO./ o0 byte!
0"nction len'str ,tring.integer!
iter,tr integer!
begin
iter,tr$&!
<3ile 'str%iter,tr/12+>==. do
iter,tr$iter,tr+-!
len$iter,tr!
end
Arquitectura de Computadores II
Compilado una ;uncin+A%Q0
Asembler
+>== E?> &
! el despla@amiento de str :iene en bA
! el res"ltado se de:"el:e en di
len proc
Aor di7di
<3ile
cmp byte prt %bA+di/7+>==
8e 0in
inc di
8mp <3ile
0in
ret
len endp
Arquitectura de Computadores II
Compilado una ;uncin+Q%Q0
Invocando a la ;uncin
mi,tring db B3ola m"ndoC
db +>==
#
mo: bA7 o00set mi,tring
call len
cmp di7 #
!el string esta en la
!direccion segmentada -&&-&&&
mo: bA7-&&&
mo: aA7-&&
mo: ds7aA
call len
!el string esta en
la !direccion absol"ta &ADEFGH
mo: bA7H
mo: aA7DEFG
mo: ds7aA
call len
Arquitectura de Computadores II
Re;erencias
8088)8086%808. *rogramacin
5nsamblador en entorno "# 2<#/ "iguel
Angel Rodrigue:)Rosell/ Ana'a/ ,-884