Subrutina de Cсlculo de Paridad Impar Introducciєn - ELAI-UPM

Anuncio
Subrutina de Cálculo
de
Paridad Impar
Introducción
Se
trata de desarrollar una subrutina para el
c á lc ulo del bit de paridad de un dato de
8 bits utiliz ando paridad im par.
E l v alor de este bit se debe aj ustar para q ue
el nú m ero total de unos, c ontando el bit de
paridad, sea im par.
E l bit de paridad se usa en la transm isió n de
datos para la detec c ió n de errores.
Cálculo paridad
1
Etapas a cubrir
Desarrollo
del algoritmo.
E lab orac ió n del diagrama de f lu j o.
R ealiz ac ió n en len gu aj e má q u in a
Desarrollo del algoritmo (I)
A
lgoritmo: sec u en c ia de p asos q u e resu elv e
el p rob lema.
S e emp iez a p or u n a desc rip c ió n de alto
n iv el, en len gu aj e n atu ral o u n p seu dolen gu aj e de p rogramac ió n .
E sta desc rip c ió n se v a f ormaliz an do h asta
q u e c on temp la todos los detalles del
p roc eso.
Cálculo paridad
2
Desarrollo del algoritmo (II)
En
este caso una primera descripción de alto
niv el podrí a ser:
– Contar el número de bits a 1 en el dato.
0, si es impar
– B it de p aridad = 
 1, si es par
Desarrollo del algoritmo (III)
N o es p osible transc ribir direc tamente esta
desc rip c ió n a ensamblador. S e debe detallar má s:
Cálculo paridad
¿ Cuál e s la in t e rf az de la s ub rut in a ( có m o s e le pas an
los parám e t ros y có m o s e de v ue lv e e l re s ult ado?
¿ Cuále s s on los v alore s le g ale s de l parám e t ro? ¿ E x is t e n
cas os e s pe ciale s ? S i e l v alor e s ile g al, ¿ q ué s e h ace ?
¿ Có m o s e cue n t an los b it s a 1 y có m o s e s ab e q ue
h e m os t e rm in ado de h ace rlo?
¿ Q ué v ariab le s de e s t ado adicion ale s s on n e ce s arias
( con t adore s , m arcas , . . . ) ?
¿ D ó n de s e alm ace n an los dat os ( m e m oria, pila o
re g is t ros ) y con q ué e s t ruct ura ( v alor, pun t e ro,
m at riz . . . ) ?
3
Desarrollo del algoritmo (IV)
¿Cuál
es la interfaz de la subrutina?
– El único parámetro se pasará en D0 con tamaño
b y te.
– El resu ltad o se d ev olv erá en D1 con tamaño W :
"
"
D 1 = 0 , b it de paridad = 0 .
D 1 ≠ 0 , b it de paridad = 1 .
!
Desarrollo del algoritmo (V)
$
¿ C u áles son los v alores leg ales d el
parámetro? ¿ Ex isten casos especiales? S i el v alor
es ileg al, ¿ q u é se h ace?
%
%
%
!
Cálculo paridad
E n e s t e cas o t odos los v alore s de l parám e t ro s on
le g ale s .
S ie m pre con v ie n e com prob ar q ué s uce de con los
v alore s lí m it e de los parám e t ros , s ob re t odo s i
re pre s e n t an un a can t idad ( at e n ció n al v alor ce ro) .
N o s upon e r n un ca q ue la s ub rut in a s e v a a ut iliz ar
s ie m pre de f orm a in t e lig e n t e .
#
4
Desarrollo del algoritmo (VI)
-
¿Cómo se cuentan los bits a uno?
N o e x is t e un a in s t rucció n para con t ar los b it s a un o e n
D 0 .
D e b e m os ir e x am in an do los b it s de un o e n un o, de
f orm a q ue e n f un ció n de s u v alor s e e j e cut e un a acció n
u ot ra.
E s t o im plica un a ope ració n q ue re f le j e e n e l CCR e l
v alor de l b it para pode r us ar un a in s t rucció n B x x .
E s t o pue de log rars e con un a in s t rucció n de
de s plaz am ie n t o, q ue v ue lca e l L S B o e l M S B al b it C.
.
.
.
.
&'( )*( &))+
,
Desarrollo del algoritmo (VII)
¿Cómo
se sabe que hemos terminado?
– L a ex p lor ación d el p ar á metr o h abr á ter minad o
tr as och o d esp laz amientos.
– T ambié n es v á lid o ter minar cuand o y a no
q ued en má s bits a uno en el d ato ( y p or tanto,
tod os los bits sean cer os)
&'( )*( &))+
Cálculo paridad
*/)
5
Desarrollo del algoritmo (VIII)
¿Qué variables de estado adicionales son
necesarias?
6
E n e s t e e j e m plo, f in aliz are m os e l alg orit m o cuan do n o
q ue de n un os e n e l dat o, por lo q ue n o e s n e ce s aria
n in g un a ot ra v ariab le .
7
E n e l cas o de re aliz ar och o de s plaz am ie n t os , s e rí a
n e ce s ario un con t ador de los de s plaz am ie n t os q ue
q ue dan por re aliz ar.
7
A de m ás e s n e ce s ario lle v ar la cue n t a de los un os o por
lo m e n os alm ace n ar s i la ú lt im a cue n t a f ue par o im par.
7
N os ot ros alm ace n are m os e l v alor de l b it de paridad
s e g ú n e l n ú m e ro de un os e n con t rados h as t a e l m om e n t o
012 342 0335 act ual.
44
7
Desarrollo del algoritmo (IX)
6
¿D ó nde se alm acenan los datos y con q ué
estructura?
7
7
7
E n e s t e cas o, e l parám e t ro s e pas a e n D 0 con t am
Com o n o s e dice q ue de b a pre s e rv ars e , re aliz are m
e x ploració n dire ct am e n t e s ob re e s t e re g is t ro.
E n cuan t o a la ú n ica v ariab le de e s t ado q ue t e n e m
v alor act ual de l b it de paridad) , por coin cidir con
re s ult ado, la alm ace n are m os e n D 1 con t am añ o W
E n g e n e ral, dada un a v ariab le :
añ o B .
os la
os ( e l
e l
.
8:9<;>=@?BA CD=@EGF<=@HIA CBJKHKA LMEONQP/EGRSNTCSUBEWV<EX=@CYVQZEW[T; [T; Z\HIA HIA A HWLMHKUBHIHIA H
=FQVBZFQP/; NTHX]^ZEO_B;=P ZC>`
8:9<;>=@EGF<=@HIEONSLMab=c=@; P/; CT=dRDUBEWV<Ee=@CYVBZEW[T; [T; Z\UYFQZHWNQP/EIJK; EWZP/CfP/; EWLSg<C
]hLMEOLMCYZ; HY`
012 342 0335
Cálculo paridad
40
6
Diagrama de flujo
p<qGrcs/tuqGt
t{y
←
y<| }
~u€u~d| ‚ƒtd„
vxw<wzy
r~u€
B€\r\| ‚ƒtd„
…
w<wzy
†ˆ‡Ir\| }Š‰‹y<Œ t{y
ijk lmk illn
m/o
Código ensamblador
p<qGrcs/tuqGt
f‡cŽ†ˆ| }
‰‹y<Œ t{y
‚{‘ … >†
~u€u~d| ‚
td„
’ˆs/“
ijk lmk illn
Cálculo paridad
‚{†ˆ
’ˆs/“
B€\r\| ‚
‰‹y<Œ td„
‚ …{…
‚{‘ … >†
†ˆ‡Ircs| }
‰‹y<Œ t{y
‚{ruq
‚{‘ … >†
r~u€
mn
7
Descargar