CARLOS ERNESTO ZEVALLOS RUIZ
Instrucciones Aritméticas
Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Asignatu ra: Microprocesadores Microprocesadores
Objetivo General
Analizar la forma en que se ejecutan algunas instrucciones aritmticas ! "e manejo "e la #ILA$
Objetivos Específcos
•
O%ser&ar el uso "e algunas instrucciones aritmticas ! las %an"eras que son afecta"as$ I"entificar las %an"eras que afecta ca"a instrucci'n o%ser&a"a$ Utilizar correctamente los registros "el micro(rocesa"or al realizar o(eraciones aritmticas) tanto "e * %its como "e +, %its$ Analizar "eteni"amente el (roceso "e ca"a o(eraci'n$ •
•
•
Materiales y equipos
-u.a "e la%oratorio Com(uta"ora #C con el (rograma E/U*0*, •
•
Procedimiento
+1 Ejecute Ejecute el (rograma (rograma emula"or emula"or "e micro(roces micro(rocesa"or a"ores es E/U*0*,) E/U*0*,) 2acien"o 2acien"o "o%le clic en el icono "el escritorio$ 31 Cree Cree un nue&o nue&o "ocu "ocumen mento to ti(o ti(o CO/ 41 Analice Analice el #RI/ER #RI/ER #RO-RA/A) #RO-RA/A) note note que al inicio se "eclara "eclaran n los "atos$ "atos$ 5Con qu "atos se realizar6n las o(eraciones ! cuales ser6n los resulta"os7 58'n"e se almacena el resulta"o al final "e las o(eraciones7
PRIMER PROGRAMA #make_COM# org 100h %!te+ equ +39 INICIO %!te3 equ +90
:or"+ :or"3 AL = !te" !te"
mo& al) %!te+ 0++E2?) al
AL = AL # !te$ M%&""E'( = AL
mo& a@) :or"+ 0++2?) a@
A) = *ord" A) = A) A) #*ord$ M%&""F'( = A)
FIN
equ 30A42 equ 9;4*2
ret EN8
B1 8igite 8igite ! emu emule le el (rogra (rograma ma 91 Antes "e ejecutar ejecutar el (rogram (rograma a tome nota "el conteni"o conteni"o almacen almacena"o a"o en las "irecciones 0++E2) 0++2 ! 0+302 en la TALA +) tam%in "el esta"o "e las %an"eras$ ,1 Ejecute Ejecute (aso a (aso el (rogram (rograma) a) anotan"o anotan"o la informaci informaci'n 'n solicita"a solicita"a en la TALA +) o%ser&an"o el resulta"o "e las o(eraciones ! el esta"o "e las %an"eras 5Concuer"a el resulta"o lo que uste" es(era%a7 /O/ENTO Inicio 8es(us "el +D suma Antes "e la 3D suma 8es(us "e la 3D 8es(us "el =ltimo
8IRECCIONES 0++E2 0++2 0 + 3 02
;0++B ;0+BB +40+; +40+; +40+;
;0++B ;0+BB ;0+BB ;0+BB 83+;
;0+BB ;0+BB ;0+BB ;0+BB ;+3+
O
0 0 0 0 0
AN8ERAS S Z A #
0 0 0 0 0
0 0 0 0 0
0 + + 0 +
0 0 0 + +
C
0 0 + 0 0
TABLA 1
1 Cargue Cargue nue&amente nue&amente el (rogram (rograma a e in&ierta in&ierta manualm manualmente ente el esta"o "el acarreo$ *1 Ejecute Ejecute (aso (aso a (aso (aso 2asta 2asta la (rimera (rimera suma$ suma$ 5Cam%i' el resulta"o "e la o(eraci'n7 NO ENCONTRAMOS PRESENCIA DE NINGUN CAMBIO
;1 Contin=e Contin=e ejecutan" ejecutan"o o el (rograma (rograma 2asta 2asta la segun"a segun"a suma suma 5Se "io alg=n cam%io7 NO ENCONTRAMOS NINGUN CAMBIO
+01/o"ifique el c'"igo fuente sustitu!en"o las instrucciones A88 (or A8C ! emule nue&amente el (rograma$ ++1Re(ita ++1 Re(ita "es"e el (aso ! com(are con los resulta"os (re&ios$ 5Fu resulta"os se mo"ificaron7) 5qu (arte no7) 5(or qu cree que se "ieron esos cam%ios es(ec.ficos en los resulta"os7
SOLO PRESENCIAMOS EL CAMBIO DE ALGUNAS BANDERAS DE ESTADOS, EN LAS DIRECCIONES TAMBIEN, INCREMENTADAS POR EL VALOR 1 YA QUE ESTA EL ESTADO DE ACARREO
MOMENTO Inicio Despu-s de la &. suma $ntes de la ). suma Despu-s de la ). suma Despu-s del /ltimo MO0
DIE!!IONE" %&&E' %&&(' %&)%' +% &,, +% &,, +% &,, +% &,, +% &,, +% &,,
O % %
#$NDE$" " * $ P % % % % % % & &
! % &
&, %)%
+% &,,
+% &,,
%
%
%
&
&
&
&, %)%
+% &,,
+% &,,
%
%
%
%
%
%
&, %)%
D! ))%
1+ &)&
%
%
%
%
%
%
! % &
+31/o"ifique +31 /o"ifique el (rograma (ara que funcione como al inicio) (ero cam%ie los "atos con los siguientes &aloresG %!te+ equ ;82 %!te3 equ *42 :or"+ equ 9;4* :or"3 equ H9;4* +41Corra a (asos el (rograma o%ser&an"o la ejecuci'n "e ca"a instrucci'n ! el esta"o "e las %an"eras$ 5Cu6l fue el resulta"o "e las o(eraciones7) 5C'mo reaccionaron las %an"eras7 ! 5(or qu as. ! no "e otra manera7
MOMENTO Inicio Despu-s de la &. suma $ntes de la ). suma Despu-s de la ). suma Despu-s del /ltimo MO0
DIE!!IONE" %&&E' %&&(' %&)%' +% &,, +% &,, +% &,, +% &,, +% &,, +% &,,
O % &
#$NDE$" " * $ P % % % % % % & %
)% %2)
+% &,,
+% &,,
&
%
%
&
%
&
)% %2)
+% &,,
+% &,,
%
%
&
&
&
&
)% %2)
%% %%%
%% %%%
%
%
&
&
&
&
+B1Analice el SE-UN8O #RO-RA/A) 5"'n"e se almacena el resulta"o "e las o(eraciones7 5cu6l es el resulta"o "e las mismas7
SEGUNDO PROGRAMA ImaJeKCO/I
org +002 equ *0 %!t equ ,; e+ equ 3,B4 %!t equ 439 e3 mo& cl) %!te+
+918igite ! emule el (rograma toman"o nota "el &alor "e los minuen"os ! sustraen"os en formato 2e@a"ecimal1 con que se realizar6n las o(eraciones en la TALA 3$ +,1Ejecute (aso a (aso el (rograma) o%ser&an"o los resulta"os "e las o(eraciones ! el esta"o "e las %an"eras$ Anote estos &alores en la TALA 3$ +1/o"ifique el (rograma (ara que se in&ierta el or"en "e la o(eraci'n) "e forma que el minuen"o (asa a ser sustraen"o ! &ice&ersa$ Re(ita el (aso anterior toman"o nota en la segun"a fila "e la TALA 3$
instrucci 3n
prueb minuendo a &6 7%89%': 2)98&,9':
"5# )6 26
;+8,9': );,218;1, 9': 7%89%':
sustraendo
di4erencia
O " * $ P !
;+8,9': );,218;1, 9': 7%89%': 2)98&,9':
&&8%#': );&&)8;; %%: (9' +$%%'
% % % & % % % % % % & % % %
& % % & % %
& & & &
;+8,9':
&&8%#':
%
% % &
% %
2)98&,9':
);,218;1, 9': 7%89%': 2)98&,9':
"## ,6
;+8,9': );,218;1, 9':
);&&)8;; %%: ,9' ++<'
% % % % & % % %
& % % & % &
& & & &
+*1Re(ita los (asos +, ! +) (ero esta &ez acti&e manualmente el acarreo antes "e ca"a resta 5o%ser&a cam%ios en las o(eraciones7 EN LA SEGUNDA 0145h
+;1Cam%ie el (rograma (ara que funcione como al (rinci(io$ 301Sustitu!a 301 Sustitu!a las instrucciones SU (or S ! re(ita los (asos anteriores$ Com(lete la TALA 3$ 5Fu "iferencias nota entre la ejecuci'n eje cuci'n "e la instrucci'n SU ! S7 SE RESTAN TAMBIEN LOS ACARREOS
3+1 Analic Analice e el TERC TERCER ER #RO-R #RO-RA/A A/A 5qu 5qu regi regist stros ros est6 est6n n in&olu in&olucr cra"o a"os s en el (roceso7 5qu "atos se &an a o(erar7 5"'n"e se almacenar6 el resulta"o7 • •
LOS RE REGISTROS IN INVOLU OLUCRADOS SON AH, AL AL, CL CL SE OPER OPERAR ARA A LOS LOS DATO DATOS S DE DE LOS LOS REG REGIST ISTROS ROS AL( AL(0F 0FFh Fh) ) Y CL( CL(0 0) ) TERCER PROGRAMA ImaJeKCO/I INICIO
org +002 INICIO
A+ = AA'
mo& a2) 0AA2
AL = &FF'
mo& al) 02
CL = &,'
mo& cl) 0, mul cl
A) = -AL ) -CL
FIN
ret EN8
331 8igite ! emule el TERCER #RO-RA/A 341Ejecute (aso a (aso) analizan"o el (roceso$ Anote los resulta"os en la (rimera fila "e la TALA 4 5Coinci"en los resulta"os con lo que es(era%a7 SI
Instrucci'n /UL
8ato 0,
/ulti(lican"o 02
/ulti(lica"or 0,
#ro"ucto 09A
H 0,
02
H 0,
;0,
0,
02
0,
A
H 0,
02
H 0,
000,
I/UL
3B1/o"ifique el "ato "e CL colocan"o H0, ! ejecute nue&amente el (rograma$ Anote los resulta"os en la TALA 4$ 391Cam%ien la instrucci'n /UL (or I/UL ! el "ato H0, (or 0,$ 3,1Ejecute el (rograma ! anote los resulta"os$ 31Cam%ie el "ato (or H0,) ejecute nue&amente ! anote los resulta"os
3*1Analice 3*1 Analice el CUARTO #RO-RA/A #RO-RA/A 5qu registros est6n e st6n in&olucra"os en el (roceso7 5qu "atos se &an a o(erar7 5"'n"e se almacenar6 el resulta"o7 •
LOS RESULTADOS SE ALMACENARAN EN LOS REGISTROS AH Y AL
•
EN EL PROGRAMA A! (AH Y AL)
Inst Instru rucc cci' i'n n
8ato 8ato 09
8i&i 8i&i"e "en" n"o o
8i&i 8i&iso sorr 09
Coci Cocien ente te +*
Resi" esi"uo uo 04
H 09
00
09
09
+*
04
H 09
E*
04
8IV
I8IV
3;11 3; Real Realic ice e el mismo mismo (roc (roce" e"im imie ient nto o "el TREC TRECER ER #RO#RO-RA RA/A /A)) (ero (ero a2ora a2ora el "ato que ser6 cam%ia"o es 09 ! la o(eraci'n 8IV (or I8IV$ Anote sus resulta"os en la TALA B$ CUARTO PROGRAMA INICIO
ImaJeKCO/I
org +002
INICIO G
mo& a@) +34
A) = "$/
CL = &0
A+-res1AL-cos A+-res1AL-cos = -AL ÷ -CL
%!te mo& cl) 09 <8ato
"i& cl ret
4011 40
Cam% Cam%ie ie el el "ato "ato (or (or 002 002 ! ejec ejecut ute e el (ro (rogr gram ama a 5qu 5qu ocu ocurr rri' i'7 7
ENCONTRAMOS UN ERROR EN LA DIVISION
$n=lisis de resultados
a1
#rimer (rograma Toman"o Toman"o en cuenta los "atos (articulares "e ca"a o(eraci'n e@(lique el (orque "e la acti&aci'n o "esacti&aci'n "e las %an"eras O) S) Z) C ! A$ E@(lique (orque los resulta"os "e las o(eraciones cam%iaron al usar A8C en lugar "e A88$ Utilice c6lculos (ara fun"amentar su e@(licaci'n$
%1
Segun"o (rograma Al ejecutar una resta las %an"eras C ! A reaccionan "iferente si el minuen"o es e s ma!or o menor al sustraen"o) e@(lique el (orque %as6n"ose en el conce(to "e (rstamo$ E@(lique (orque los resulta"os "e las o(eraciones cam%iaron al usar S en lugar "e SU$ Utilice c6lculos (ara fun"amentar su e@(licaci'n$ LOS BITS DE ACARREO Y LOS AU!ILIARES, CAMBIAN DE NIVEL BA"O A ALTO DADO QUE LOS RESULTADOS E!CEDEN EN BITS EN LOS REGISTROS YA ALAMCENADOS
c1
Tercer (rograma 5C'mo se es(ecifica en una instrucci'n "e multi(licaci'n que se "esea tra%ajar con n=meros "e un %!te7 CUANDO INGRESAMOS EL DATO AL REGISTRO DE # BITS
5En qu registros se almacenan los "atos ! el resulta"o "e una multi(licaci'n "e un %!te7
SE ALMACENAN EN LOS REGISTROS DE # BITS AH Y AL Y EL RESULTADO EN A!
E@(lique (orque los resulta"os "e las o(eraciones cam%iaron al usar I/UL en lugar "e /UL$ Utilice c6lculos (ara fun"amentar su e@(licaci'n$ PORQUE MUL MULTIPLICA SIN SIGNO Y LA INSTRUCCION IMUL MULTIPLICA CONSIDERANDO EL SIGNO
"1
Cuarto (rograma 5C'mo se es(ecifica en una instrucci'n "e "i&isi'n que se "esea tra%ajar con n=meros "e un %!te7 EL DATO DEBERIA DE SER ALMACENADO EN EL REGISTRO A!
5En qu registros se almacenan los "atos ! el resulta"o "e una "i&isi'n "e un %!te7 EL COCIENTE EN EL REGISTRO AL Y EL RESIDUO EN EL AH
E@(lique (orque los resulta"os "e las o(eraciones cam%iaron al usar I8IV en lugar "e 8IV$ 8IV$ Utilice Utilice c6lculos (ara fun"amentar su e@(licaci'n$ 5#or qu la =ltima mo"ificaci'n "el (rograma gener' un error en la ejecuci'n7 e jecuci'n7
Investi>aci3n complementaria
Com(are el funcionamiento "e la "irecti&a EFU con 8$ In&estigue como se (ue"e realizar una multi(licaci'n "e "os n=meros "e "os %!tes ca"a uno$ In&estigue como se (ue"e realizar una "i&isi'n "e "os n=meros "e "os %!tes ca"a uno$ 8iseMe "os flujoHgramas que re(resenten el (roceso (ara sumar "os n=meros "e B %!tes ca"a uno) en el (rimero se tra%ajar6 con registros "e +, %its ! en el segun"o "e * %its$
#iblio>ra4ía
80186 , 80286, 80386 y 80486. B$%&, B' B' Los Microprocesadores Intel. 8086 / 8088, 80186, Arquitectura, prograaci!n e inter"aces, #rentice all) /@ico 8) +;;9 B*+%-. UDB
001.6404 B847 1997
4