ÊåöÜëáéï 3 Äéá åßñéóç äåäïìýíùí Åðéäéùêüìåíïé óôü ïé: ¼ôáí ïëïêëçñþóåôå ôç ìåëýôç áõôïý ôïõ êåöáëáßïõ, èá åßóôå éêáíïß: é íá ðåñéãñüöåôå ôïí ôñüðï êáôá þñçóçò ôùí äåäïìýíùí óå äéüöïñåò ìïñöýò é íá ñçóéìïðïéåßôå êáôüëëçëåò åíôïëýò ãéá ôç ìåôáöïñü äåäïìýíùí.
êåöüëáéï 3 Óôï ðáñüí êåöüëáéï ðáñïõóéüæåôáé ï ôñüðïò ìå ôïí ïðïßï ï Ðñïãñáììáôéæüìåíïò Ëïãéêüò ÅëåãêôÞò áðïèçêåýåé êáé ôáîéíïìåß øçöéáêü äåäïìýíá. Ôï êåöüëáéï áíáöýñåé ôéò âáóéêýò áñ Ýò ôçò ïñãüíùóçò ôùí äåäïìýíùí óôï åóùôåñéêü ôïõ ÐËÅ áñ Ýò ïé ïðïßåò åßíáé áíåîüñôçôåò áðü ôïí êáôáóêåõáóôþ Þ ôï óõãêåêñéìýíï ôýðï. Ïé äéüöïñåò ëåéôïõñãßåò ôïõ ÅÐË áîéïðïéïýí áõôüí ôïí ôñüðï ïñãüíùóçò, ãéá íá åðéôåëýóïõí ôç äéá åßñéóç ôùí äåäïìýíùí ôïõ ÐËÅ. 3.1 Ç áðïèþêåõóç ôùí äåäïìýíùí óôïí Ðñïãñáììáôéæüìåíï Ëïãéêü ÅëåãêôÞ (ÐËÅ) ¼ðùò åîçãþèçêå óôçí åíüôçôá 1.2, ç Ýîïäïò ôùí áêïëïõèéáêþí óõóôçìüôùí åîáñôüôáé ü é ìüíïí áðü ôéò ôñý ïõóåò, áëëü êáé áðü ôéò ðñïçãïýìåíåò ôéìýò ôùí åéóüäùí. ÅðïìÝíùò, ôá áêïëïõèéáêü óõóôþìáôá ðñýðåé íá ìðïñïýí íá áðïèçêåýïõí óå ìéá äåäïìýíç ñïíéêþ óôéãìþ ôéò ôéìýò ôùí ëïãéêþí ìåôáâëçôþí êáé íá ìðïñïýí íá åðáíáëüâïõí áõôýò ôéò ôéìýò óå ìéá åðüìåíç ñïíéêþ óôéãìþ. Ï ìç áíéóìüò ìå ôïí ïðïßï ãßíåôáé áõôþ ç êáôá þñçóç êáé áíüêôçóç ôùí äåäïìýíùí ïíïìüæåôáé ìíþìç, ëüãù ôçò ðñïöáíïýò áíáëïãßáò ìå ôïí ôñüðï ðïõ ïé Üíèñùðïé èõìïýíôáé (áíáêáëïýí) åìðåéñßåò êáé ðáñáóôüóåéò ðïõ êáôýãñáøáí (êáôá þñçóáí) óôï ðáñåëèüí. Ïé Ðñïãñáììáôéæüìåíïé Ëïãéêïß ÅëåãêôÝò (ÐËÅ) ñçóéìïðïéïýíôáé ãéá ôçí áíüðôõîç êáé åöáñìïãþ áêïëïõèéáêþí óõóôçìüôùí áõôïìáôéóìïý. Ïé ÐËÅ äéáèýôïõí çëåêôñïíéêýò äéáôüîåéò ìíþìçò, êáèþò êáé åéäéêü ëïãéóìéêü (ìýñïò ôïõ ëåéôïõñãéêïý ôïõò óõóôþìáôïò) ãéá ôç äéá åßñéóç ôùí äåäïìýíùí ðïõ áðïèçêåýïíôáé óå áõôýò. Áðü êïéíïý, áõôýò ïé äéáôüîåéò êáé ôï ëïãéóìéêü áðïôåëïýí ôï óýóôçìá ìíþìçò Þ óýóôçìá áðïèþêåõóçò äåäïìýíùí ôïõ ÐËÅ. Ï âáóéêüò ìç áíéóìüò óõãêñüôçóçò ôùí äåäïìýíùí óôç ìíþìç ôïõ ÐËÅ åßíáé ôï äõáäéêü óôïé åßï ìíþìçò (Þ äéóôáèýò). Ôï êýêëùìá åíüò çëåêôñïíüìïõ ìå áõôïóõãêñüôçóç, üðùò óôï ó Þìá 3.1, ëåéôïõñãåß ùò Ýíá ôýôïéï óôïé åßï ìíþìçò. Ç êáôüóôáóç ôïõ ðçíßïõ Ê1 ôïõ çëåêôñïíüìïõ áðïìíçìïíåýåé ôçí åðáöþ ðïõ åíåñãïðïéþèçêå ðñüóöáôá. ÅÜí ôï ðçíßï Ê1 åßíáé åíåñãü, ç ôåëåõôáßá åðáöþ ðïõ åíåñãïðïéþèçêå åßíáé ç 1. ÅÜí ôï ðçíßï Ê1 åßíáé áäñáíýò, ç ôåëåõôáßá åðáöþ ðïõ åíåñãïðïéþèçêå åßíáé ç 0. Ó Þìá 3.1: Çëåêôñïìç áíéêü óôïé åßï ìíþìçò 38
Äéá åßñéóç äåäïìýíùí Ôï êýêëùìá ôïõ çëåêôñïíüìïõ ìå áõôïóõãêñüôçóç ðñïóöýñåé Ýíá åýëçðôï ðáñüäåéãìá ôïõ ôñüðïõ ëåéôïõñãßáò åíüò çëåêôñïìç áíéêïý óôïé åßïõ ìíþìçò. ¼ìùò ïé ÐËÅ, êáèþò êáé üëåò ïé øçöéáêýò óõóêåõýò, ñçóéìïðïéïýí çëåêôñïíéêü êáé ü é çëåêôñïìáãíçôéêü óôïé åßá ìíþìçò. Ôï ó Þìá 3.2 ðáñïõóéüæåé ôçí áñ Þ ôçò ëåéôïõñãßóáò ôïõ áíôßóôïé ïõ óôïé åßïõ ìíþìçò ìå çìéáãùãïýò (ôñáíæßóôïñ). Ó Þìá 3.2: Çëåêôñïíéêü óôïé åßï ìíþìçò ÊÜèå âáóéêü óôïé åßï ìíþìçò áðïèçêåýåé äýï êáôáóôüóåéò (0 êáé 1). ÁõôÞ åßíáé ç ìéêñüôåñç äõíáôþ ùñçôéêüôçôá ìíþìçò êáé ïíïìüæåôáé Ýíá äõáäéêü øçößï Þ Bit (áðü ôïí áããëéêü üñï binary digit). Ç ìíþìç ôïõ ÐËÅ áðïôåëåßôáé áðü åêáôïììýñéá ôýôïéá óôïé åßá ðïõ ôáîéíïìïýíôáé äéáäï éêü, üðùò äåß íåé ôï ó Þìá 3.3â. Ó Þìá 3.3: Bit, Byte, Word 39
êåöüëáéï 3 Ïêôþ óôïé åßá ìíþìçò åíüò Bit áðïôåëïýí ìéá ìíþìç ùñçôéêüôçôáò åíüò Byte (ó Þìá 3.3ã). Ôï Byte Ý åé åðéêñáôþóåé ùò ç óõíçèýóôåñç ìïíüäá ìýôñçóçò ôçò ùñçôéêüôçôáò ôçò ìíþìçò åíüò ÅÐË. ÓõíÞèùò ç ìíþìç åêöñüæåôáé óå éëéüäåò byte ðïõ óõìâïëßæïíôáé ùò Kbyte (kilobyte). Ç ùñçôéêüôçôá ôçò ìíþìçò åíüò ÅÐË ìðïñåß íá åßíáé ð.. 128 KByte. Ìåãáëýôåñåò ùñçôéêüôçôåò åêöñüæïíôáé óå åêáôïììýñéá byte, ðïõ óõìâïëßæïíôáé ùò Mbyte (megabyte) Ç ùñçôéêüôçôá ôçò ìíþìçò ð.. åíüò ÅÐË åðåêôåßíåôáé (ìå êáôüëëçëåò êüñôåò) óå 2 MByte. Ôá Bytes ôçò ìíþìçò ôïõ ÐËÅ ôáîéíïìïýíôáé äéáäï éêü. ÊáèÝíá áñáêôçñßæåôáé áðü ôç äéåýèõíóþ ôïõ, äçëáäþ áðü Ýíáí áñéèìü ðïõ äçëþíåé ôç èýóç ôïõ óôç äéáäï Þ ôùí Bytes. Ç äéåýèõíóç (address) åîõðçñåôåß ùò ôáõôüôçôá ôùí Bytes, äéüôé åðéôñýðåé íá åíôïðßæïõìå ìåôáîý üëùí ôùí Bytes ôçò ìíþìçò åêåßíï ôï óõãêåêñéìýíï Byte ðïõ åíäéáöýñåé, ð.. ãéá íá âïçèþóåé ôçí åêôýëåóç ìéáò åíôïëþò ðñïãñüììáôïò Þ ãéá ôçí êáôá þñçóç åíüò áñéèìçôéêïý äåäïìýíïõ. Ôï ó Þìá 3.4 äåß íåé áõôüí ôïí ôñüðï áñéèìïäüôçóçò ôùí Bytes ôçò ìíþìçò åíüò ÐËÅ óõíïëéêþò ïíïìáóôéêþò ùñçôéêüôçôáò 64 KBytes. Äéåýèõíóç ìíþìçò Ðåñéå üìåíá Byte 00000 0010 1010 00001 0001 0010 00002 1110 1001............ 65533 0001 0010 65534 1011 0010 65535 0011 0101 Ó Þìá 3.4: ÏñãÜíùóç ôçò ìíþìçò ôïõ ÐËÅ íá Byte áðïèçêåýåé üëïõò ôïõò óõíäõáóìïýò ôùí êáôáóôüóåùí ôùí äéáöïñåôéêþí Bit ðïõ ðåñéý åé. ÄåäïìÝíïõ üôé êüèå Bit áðïèçêåýåé 2 êáôáóôüóåéò êáé êüèå Byte ðåñéý åé 8 Bit, ï áñéèìüò ôùí óõíäõáóìþí åßíáé 2 8, äçëáäþ óõíïëéêü 256 äéáöïñåôéêýò êáôáóôüóåéò. 40
Äéá åßñéóç äåäïìýíùí Ç ùñçôéêüôçôá åíüò Byte ñçóéìïðïéåßôáé óõíþèùò, ãéá íá áðïèçêåýóåé áêýñáéïõò áñéèìïýò áðü ôï 0 Ýùò ôï 255 åêöñáóìýíïõò óôï äõáäéêü óýóôçìá áñßèìçóçò. Ôï ðáñüäåéãìá ôïõ ó Þìáôïò 3.5 äåß íåé ôçí áðïèþêåõóç ôïõ äåêáäéêïý áñéèìïý 103 (äõáäéêüò áñéèìüò 01100111) óå Ýíá Byte. 0 1 1 0 0 1 1 1 Bits ôïõ Byte 7 6 5 4 3 2 1 0 åêèýôçò ôïõ 2 128 64 32 16 8 4 2 1 ðïëëáðëáóéáóôþò 0 64 32 0 0 4 2 1 ìýëç ôïõ áèñïßóìáôïò 103 Üèñïéóìá Ó Þìá 3.5: ÁðïèÞêåõóç äõáäéêïý áñéèìïý óå Ýíá Byte Åðßóçò, Ýíá Byte ñçóéìïðïéåßôáé, ãéá íá áðïèçêåýóåé äéøþöéïõò áêýñáéïõò áñéèìïýò áðü ôï 0 Ýùò ôï 99 åêöñáóìýíïõò óå óýóôçìá BCD (Binary Coded Decimal). Óôï óýóôçìá BCD êüèå øçößï ôïõ äåêáäéêïý áñéèìïý áðïèçêåýåôáé ùñéóôü óå Ýíáí äõáäéêü áñéèìü ìþêïõò ôåóóüñùí bits. Ôï ðáñüäåéãìá ôïõ ó Þìáôïò 3.6 äåß íåé ôçí áðïèþêåõóç ôïõ äåêáäéêïý áñéèìïý 67 (áñéèìüò BCD 01100111) óå Ýíá Byte. 0 1 1 0 0 1 1 1 Bits ôïõ Byte 3 2 1 0 3 2 1 0 åêèýôçò ôïõ 2 (áíü ôåôñüäá) 8 4 2 1 8 4 2 1 ðïëëáðëáóéáóôþò (áíü ôåôñüäá) 0 4 2 0 0 4 2 1 ìýëç ôïõ áèñïßóìáôïò (áíü ôåôñüäá) 6 7 äåêáäéêü øçößï 1 0 åêèýôçò ôïõ 10 10 1 ðïëëáðëáóéáóôþò 60 7 ìýëç ôïõ áèñïßóìáôïò 67 áðïôýëåóìá Ó Þìá 3.6: ÁðïèÞêåõóç áñéèìïý BCD óå Ýíá Byte 41
êåöüëáéï 3 Åðßóçò, Ýíá Byte ìðïñåß íá áðïèçêåýóåé Ýíáí áðü 256 áëöáñéèìçôéêïýò áñáêôþñåò (ãñüììá, áñéèìçôéêü øçößï, óýìâïëï), óýìöùíá ìå êüðïéï áðü ôá ôõðïðïéçìýíá óõóôþìáôá áñßèìçóçò óõìâüëùí. Ôï óõíçèýóôåñï óýóôçìá åßíáé ï êþäéêáò ASCII (American Standard Code for Information Interchange), ôïõ ïðïßïõ Ýíá áðüóðáóìá ðáñïõóéüæåôáé óôï ó Þìá 3.7. Char Code Char Code Char Code <space> 32 @ 64 96! 33 A 65 a 97 34 B 66 b 98 # 35 C 67 c 99 $ 36 D 68 d 100 % 37 E 69 e 101 & 38 F70 f 102 39 G 71 g 103 ( 40 H 72 h 104 ) 41 I 73 i 105 * 42 J 74 j 106 + 43 K 75 k 107 44 L 76 l 108-45 M 77 m 109. 46 N 78 n 110 / 47 O 79 o 111 0 48 P 80 p 112 1 49 Q 81 q 113 2 50 R 82 r 114 3 51 S 83 s 115 4 52 T 84 t 116 5 53 U 85 u 117 6 54 V 86 v 118 7 55 W 87 w 119 8 56 X 88 x 120 9 57 Y 89 y 121 : 58 Z 90 z 123 ; 59 [ 91 { 124 < 60 \ 92 125 = 61 ] 93 } 126 > 62 ^ 94 ~ 127? 63-95 <delete> 128 Ó Þìá 3.7: Áðüóðáóìá ôïõ ðßíáêá óõìâüëùí ASCII ÁõôÞ ç ùñçôéêüôçôá ôïõ Byte åßíáé ó åôéêü ðåñéïñéóìýíç êáé ãéá áñêåôýò åöáñìïãýò äåí åðáñêåß. Ãéá ôéò ëåéôïõñãßåò ôïõ ÐËÅ ðïõ áðáéôïýí ìåãáëýôåñç ùñçôéêüôçôá, ôá äåäïìýíá êáôá ùñïýíôáé óå ó çìáôéóìïýò äýï äéáäï éêþí Byte ðïõ ïíïìüæïíôáé ËÝîåéò (Word). ÊÜèå Word ðåñéý åé 2 8=16 äéáöïñåôéêü bits. íáò õðïëïãéóìüò áíüëïãïò ìå åêåßíïí ðïõ Ýãéíå ãéá ôï Byte ðñïçãïõìýíùò äßíåé üôé êüèå Word Ý åé ùñçôéêüôçôá 65536 äéáöïñåôéêýò êáôáóôüóåéò, äçëáäþ ìðïñåß íá áðïèçêåýóåé áêýñáéïõò áñéèìïýò óôï äéüóôçìá 0-65535. Ç ùñçôéêüôçôá åíüò Word åðåêôåßíåôáé óõíäõüæïíôáò äýï ëýîåéò ìáæß óå Ýíá ó çìáôéóìü ìþêïõò 2 16=32 Bits, ðïõ ïíïìüæåôáé ÄéðëÞ ËÝîç (Double Word). ÊÜèå Double Word ìðïñåß íá áðåéêïíßóåé ïðïéïäþðïôå áêýñáéï áñéèìü ìåôáîý ôïõ ìçäýí êáé ôïõ 4.294.967.296=2 32 1, äçëáäþ Ýíá Double Word áðïèçêåýåé ðåñéóóüôåñá áðü 4 äéóåêáôïììýñéá äéáöïñåôéêýò êáôáóôüóåéò. 42
Äéá åßñéóç äåäïìýíùí 3.2 Ç ìåôáöïñü ôùí äåäïìýíùí óôïí Ðñïãñáììáôéæüìåíï Ëïãéêü ÅëåãêôÞ (ÐËÅ) Ç ìåôáöïñü äåäïìýíùí ìåôáîý ôùí äéáöïñåôéêþí èýóåùí ìíþìçò ôïõ ÐËÅ êáôáëáìâüíåé Ýíá óçìáíôéêü ìýñïò êüèå ðñïãñüììáôïò ÐËÅ. Ìéá êáëïó åäéáóìýíç åöáñìïãþ ÐËÅ ñçóéìïðïéåß ôéò åíôïëýò ìåôáöïñüò äåäïìýíùí, ãéá íá ôáêôïðïéåß ôá äåäïìýíá óôç ìíþìç ìå ôñüðï ðïõ íá åîõðçñåôïýí êáëýôåñá ôéò Üëëåò åíôïëýò (ð.. åêåßíåò ðïõ êüíïõí ôçí åðåîåñãáóßá ôùí äåäïìýíùí). Ç ìåôáöïñü äåäïìýíùí ðåñéëáìâüíåé äýï åðéìýñïõò ëåéôïõñãßåò ðïõ óõíäõüæïíôáé, üðùò äåß íåé ôï ó Þìá 3.8: Ó Þìá 3.8: Äéáäéêáóßá ìåôáöïñüò äåäïìýíùí ÁíÜêôçóç äåäïìýíùí áðü ôç ìíþìç Ç áíüêôçóç ëýãåôáé åðßóçò êáé áíüãíùóç, åðáíáöïñü, Þ êáé åîáãùãþ äåäïìýíùí. Ç áðëïýóôåñç ìïñöþ åíôïëþò áíüêôçóçò åßíáé ç ãíùóôþ åíôïëþ L (Load) ðïõ äéáâüæåé ôï ðåñéå üìåíï ìéáò åéóüäïõ, ìéáò åîüäïõ Þ ìéáò âïçèçôéêþò ìíþìçò. Óå áõôþ ôç ìïñöþ ôçò, ç åíôïëþ Load ðåñéïñßæåôáé óå óôïé åßá ìíþìçò ùñçôéêüôçôáò åíüò Bit. Êáôá þñçóç äåäïìýíùí óôç ìíþìç Ç êáôá þñçóç ëýãåôáé åðßóçò êáé åããñáöþ, åßóïäïò Þ åéóáãùãþ äåäïìýíùí. Ç áðëïýóôåñç ìïñöþ åíôïëþò êáôá þñçóçò åßíáé áíüêôçóçò åßíáé ç ãíùóôþ åíôïëþ áíôéêáôüóôáóçò (ìå óýìâïëï = ßóïí ) ðïõ ìåôáöýñåé ôï ðåñéå üìåíï ôïõ Êáôá ùñçôþ Ëïãéêïý ÁðïôåëÝóìáôïò óå ìéá ìíþìç åéóüäïõ, åîüäïõ Þ âïçèçôéêþ. ¼ðùò ç Load, Ýôóé êáé ç åíôïëþ ßóïí åöáñìüæåôáé óå óôïé åßá ìíþìçò ùñçôéêüôçôáò åíüò Bit. ¼ëïé ïé ÐËÅ äéáèýôïõí ðïëëýò åíôïëýò ãéá ôç ìåôáöïñü äåäïìýíùí. ÁõôÝò ïé äéáöïñåôéêýò åíôïëýò êáôáôüóóïíôáé óå äýï ìåãüëåò êáôçãïñßåò, áíüëïãá ìå ôïí ôñüðï ðïõ õëïðïéïýí ôç ìåôáöïñü: ìåôáöïñü ìå Ýíá âþìá Þ ìåôáöïñü ìýóù êáôá ùñçôþ. Ïé äýï áõôïß ôñüðïé åîçãïýíôáé óôç óõíý åéá. 43
êåöüëáéï 3 ÌåôáöïñÜ äåäïìýíùí ìå Ýíá âþìá (Move) ÊáôÜ ôç ìåôáöïñü ìå Ýíá âþìá, ôá ðåñéå üìåíá ìéáò èýóçò ìíþìçò ìåôáãñüöïíôáé áðåõèåßáò áðü ìéá èýóç ìíþìçò óå ìéá Üëëç. Ç ó åôéêþ åíôïëþ ïíïìüæåôáé óõíþèùò Move áðü ôïí áããëéêü üñï ãéá ôç ìåôáêßíçóç êáé óõìâïëßæåôáé óõ íü ìå ôï êùäéêü üíïìá MOV. Ãéá íá ëåéôïõñãþóåé ç åíôïëþ Move ðñýðåé íá ãíùñßæåé áðü ðïéá èýóç (äéåýèõíóç) ôçò ìíþìçò èá áíôéãñüøåé ôá äåäïìýíá êáé óå ðïéá èýóç èá ôá ìåôáöýñåé. ôóé, ç ôõðéêþ ìïñöþ ôçò åíôïëþò Ý åé ôýóóåñá ìýñç: ôï óõìâïëéêü üíïìá MOV, ôéò äýï äéåõèýíóåéò ìíþìçò êáé ôç óõíèþêç åêôýëåóçò ôçò åíôïëþò. Ôï ó Þìá 3.9 ðáñïõóéüæåé Ýíá ðáñüäåéãìá ðñïãñáììáôéóìïý ìå ôçí åíôïëþ Move óå ãëþóóá ladder. Ôï ó Þìá áðåéêïíßæåé ôçí ßäéá ñþóç ôçò åíôïëþò Move ìå äýï ðáñáðëþóéïõò óõìâïëéóìïýò (á) êáé (â). Ó Þìá 3.9: ÅíôïëÞ Move Óôï ðáñüäåéãìá ôïõ ó Þìáôïò, üôáí ç åßóïäïò É3.1 åßíáé åíåñãþ (áëçèþò) ôüôå åêôåëåßôáé ç åíôïëþ MOVW ðïõ óå ìéá êßíçóç áíôéãñüöåé ôçí ôéìþ ôçò ëýîçò (word) ðïõ âñßóêåôáé óôç èýóç ìíþìçò (äéåýèõíóç) ìå áñéèìü 130 êáé ôçí êáôá ùñåß óôç èýóç ìíþìçò ìå áñéèìü 142. Ôï ãñüììá W óôï ôýëïò ôïõ óõìâïëéêïý ïíüìáôïò ôçò åíôïëþò (MOVW áíôß áðëü MOV) õðïäçëþíåé ïôé ðñüêåéôáé ãéá ôçí åéäéêüôåñç ðáñáëëáãþ ôçò åíôïëþò ðïõ ìåôáöýñåé ôéìýò ôýðïõ Word. Ïìïßùò, ï êùäéêüò DW (Data Word) äçëþíåé ïôé ðñüêåéôáé ãéá èýóåéò ìíþìçò ãéá äåäïìýíá Word. Åííïåßôáé üôé ôï åßäïò ôùí äåäïìýíùí ðïõ ñçóéìïðïéåßôáé êüèå öïñü ðñýðåé íá ôáéñéüæåé ìå ôçí åéäéêüôåñç ðáñáëëáãþ ôçò åíôïëþò. Ìéá åíôïëþ ð..ìå óõìâïëéêü üíïìá MOVD åßíáé ðéèáíü êáôüëëçëç ìüíï ãéá ôç ìåôáöïñü äåäïìýíùí ôýðïõ double word êáé ïýôù êáèåîþò. ÌåôáöïñÜ äåäïìýíùí ìýóù êáôá ùñçôþ (Load-Store) Ç ìåôáöïñü ìýóù êáôá ùñçôþ ãßíåôáé óå äýï âþìáôá Þ êéíþóåéò. Ôá ðåñéå üìåíá ìéáò èýóçò ìíþìçò êáôáñ Þí ìåôáöýñïíôáé - Þ üðùò óõíþèùò ëýãåôáé öïñôþíïíôáé - óå Ýíáí êáôá ùñçôþ (register). Ïé êáôá ùñçôýò åßíáé åéäéêýò èýóåéò ìíþìçò, ïé ïðïßåò áðü ôçí êáôáóêåõþ ôïõ ÐËÅ Ý ïõí ôç äõíáôüôçôá êáëýôåñçò óõíåñãáóßáò ìå ôç ìïíüäá åðåîåñãáóßáò. Ç ó åôéêþ åíôïëþ ïíïìüæåôáé óõíþèùò Load, áðü ôïí áããëéêü üñï ãéá ôç öüñôùóç êáé óõìâïëßæåôáé óõ íü ìå ôï êùäéêü üíïìá LD. Óôï äåýôåñï âþìá, ôá ðåñéå üìåíá ôïõ êáôá ùñçôþ áðïèçêåýïíôáé óå ìéá íýá èýóç ìíþìçò. Ç ó åôéêþ åíôïëþ ïíïìüæåôáé óõíþèùò Store áðü ôïí áããëéêü üñï ãéá ôçí áðïèþêåõóç êáé óõìâïëßæåôáé óõ íü ìå ôï êùäéêü üíïìá ST. Ãéá íá ëåéôïõñãþóåé ç óõíäõáóìýíç åíôïëþ Load+Store ðñýðåé íá ãíùñßæåé áðü ðïéá èýóç (äéåýèõíóç) ôçò 44
Äéá åßñéóç äåäïìýíùí ìíþìçò èá áíôéãñüøåé ôá äåäïìýíá êáé óå ðïéá èýóç èá ôá ìåôáöýñåé. ôóé, ç ôõðéêþ ìïñöþ ôçò åíôïëþò Ý åé ðýíôå ìýñç: ôá óõìâïëéêü ïíüìáôá LD êáé ST, ôéò äýï äéåõèýíóåéò ìíþìçò êáé ôç óõíèþêç åêôýëåóçò ôçò åíôïëþò. Ôï ó Þìá 3.10 ðáñïõóéüæåé Ýíá ðáñüäåéãìá ðñïãñáììáôéóìïý ôçò ìåôáöïñüò ìýóù êáôá ùñçôþ óå ãëþóóá ladder. Ôï ó Þìá áðåéêïíßæåé ôçí ßäéá ñþóç ôùí åíôïëþí ìå äýï ðáñáðëþóéïõò óõìâïëéóìïýò (á) êáé (â). Ó Þìá 3.10: ÌåôáöïñÜ ìýóù êáôá ùñçôþ, åíôïëýò Load-Store Óôï ðáñüäåéãìá ôïõ ó Þìáôïò, üôáí ç åßóïäïò É3.1 åßíáé åíåñãþ (áëçèþò), ôüôå åêôåëåßôáé ç åíôïëþ LDA, ç ïðïßá óå ìéá êßíçóç áíôéãñüöåé ôçí ôéìþ ôçò ëýîçò (word) ðïõ âñßóêåôáé óôç èýóç ìíþìçò (äéåýèõíóç) ìå áñéèìü 130 êáé ôçí áðïèçêåýåé óôïí êáôá ùñçôþ ìå óõìâïëéêü üíïìá Á. Ôï ãñüììá A óôï ôýëïò ôïõ óõìâïëéêïý ïíüìáôïò ôçò åíôïëþò (LDA áíôß áðëü LD Þ L) õðïäçëþíåé ïôé ðñüêåéôáé ãéá ôçí åéäéêüôåñç ðáñáëëáãþ ôçò åíôïëþò ðïõ óõíåñãüæåôáé ìå ôïí êáôá ùñçôþ A ôïõ ÐËÅ. Óôç óõíý åéá, åêôåëåßôáé ç åíôïëþ STA, ç ïðïßá áíôéãñüöåé ôçí ôéìþ ôïõ êáôá ùñçôþ Á êáé ôçí êáôá ùñåß óôç èýóç ìíþìçò ìå áñéèìü 142. Åäþ åðßóçò ôï ãñüììá A óôï ôýëïò ôïõ óõìâïëéêïý ïíüìáôïò ôçò åíôïëþò STA áíôß áðëü ST) õðïäçëþíåé üôé ðñüêåéôáé ãéá ôçí åéäéêüôåñç ðáñáëëáãþ ôçò åíôïëþò ðïõ óõíåñãüæåôáé ìå ôïí êáôá- ùñçôþ A ôïõ ÐËÅ. 45
êåöüëáéï 3 Ôï ôåëéêü áðïôýëåóìá ôçò äéáäéêáóßáò åßíáé áðïëýôùò éóïäýíáìï ìå åêåßíï ôïõ ðñïçãïýìåíïõ ðáñáäåßãìáôïò. Ïé äýï äéáäï éêýò åíôïëýò ìåôáöýñïõí ôï ðåñéå üìåíï ôçò èýóçò ìíþìçò DW130 óôç èýóç ìíþìçò DW142. ¼ðùò êáé óôçí ðåñßðôùóç ôçò åíôïëþò Move, ôï åßäïò ôùí äåäïìýíùí ðïõ ñçóéìïðïéåßôáé êüèå öïñü ðñýðåé íá ôáéñéüæåé ìå ôç ùñçôéêüôçôá ôïõ êáôá ùñçôþ ðïõ ìåóïëáâåß óôç ìåôáöïñü. Ïé ðåñéóóüôåñïé ÐËÅ äéáèýôïõí áñêåôïýò êáôá ùñçôýò ìå ìþêïò Byte, Word Þ êáé Double Word êáé áíôßóôïé åò åíôïëýò ãéá ôç äéáêßíçóç äåäïìýíùí áðü êáé ðñïò áõôïýò. Óôï ó Þìá 3.10ã ç åíôïëþ LDA öïñôþíåé ôïí êáôá ùñçôþ ìå ôï äåêáäéêü áñéèìü 325 áíôß ãéá ôï ðåñéå üìåíï ôçò äéåýèõíóçò ìíþìçò DW130 ðñïçãïõìýíùò. Óôç óõíý åéá, áõôþ ç ôéìþ ìåôáöýñåôáé áðü ôïí êáôá ùñçôþ óôç äéåýèõíóç DW142. Áõôüò ï ôñüðïò ìåôáöïñüò äåäïìýíùí åßíáé êáôüëëçëïò ãéá ôçí êáôá þñçóç, óå óõãêåêñéìýíåò èýóåéò ìíþìçò, äåäïìýíùí ôùí ïðïßùí ç ôéìþ åßíáé åê ôùí ðñïôýñùí ãíùóôþ êáé ìðïñåß íá åíóùìáôùèåß óôï ßäéï ôï ðñüãñáììá ôïõ ÐËÅ. 3.3 Ç ñþóç ôçò ìåôáöïñüò äåäïìýíùí óôïí ðñïãñáììáôéóìü Ïé ðåñéóóüôåñåò åíôïëýò ôùí Ðñïãñáììáôéæüìåíùí Ëïãéêþí Åëåãêôþí óôçñßæïíôáé óôçí áíôáëëáãþ äåäïìýíùí ìå ôç ìíþìç. ÓõãêåêñéìÝíá, ç ìíþìç ôïõ ÐËÅ ðñïóöýñåé óôéò åíôïëýò ôïõ ðñïãñüììáôïò äýï åîõðçñåôþóåéò: äéáèýôåé ôéò ôéìýò ôùí äåäïìýíùí êáé ôùí ðáñáìýôñùí ðïõ áðáéôïýíôáé, ãéá íá åêôåëåóèåß ç åðåîåñãáóßá ðïõ áíôéóôïé åß óôçí åíôïëþ, ð.. ôïõò äýï ðáñüãïíôåò óôçí ðåñßðôùóç ìéáò åíôïëþò ðïëëáðëáóéáóìïý Þ ôïí áñéèìü ôçò åîüäïõ óôçí ðåñßðôùóç ìéá åíôïëþò åíåñãïðïßçóçò åîüäùí, äéáèýôåé èýóåéò óôéò ïðïßåò èá áðïèçêåõôïýí ôá áðïôåëýóìáôá ôçò åðåîåñãáóßáò, þóôå íá åßíáé äéáèýóéìá óå åðüìåíç ñþóç. Ìéá áðü ôéò óõíçèéóìýíåò ñþóåéò ôçò ðñþôçò êáôçãïñßáò åßíáé ç êáôá þñçóç ôùí áðáñáßôçôùí ðáñáìýôñùí ãéá ôç óùóôþ ëåéôïõñãßá ôùí ñïíéêþí, êáôáìåôñçôþí, óõãêñéôþí êëð. åíôïëþí. Ôï ó Þìá 3.11 ðáñïõóéüæåé Ýíá ðáñüäåéãìá êáôá þñçóçò ðáñáìýôñùí ãéá ìéá ñïíéêþ ëåéôïõñãßá. Ç êáôá þñçóç ôùí ðáñáìýôñùí åðéôõã Üíåôáé ìåôáöýñïíôáò äåäïìýíá óå Ýíáí êáôá ùñçôþ ùñçôéêüôçôáò Word (áðïôåëïýìåíç áðü äýï Bytes). Ïé ðáñüìåôñïé êáôá ùñïýíôáé ìå åéäéêþ êùäéêïðïßçóç, ðïõ åîáñôüôáé áðü ôï óõãêåêñéìýíï êáôáóêåõáóôþ êáé ôýðï ÐËÅ. Óôï óõãêåêñéìýíï ðáñüäåéãìá ç êùäéêïðïßçóç áîéïðïéåß ôá 14 áðü ôá 16 äéáèýóéìá Bits. Ôá ðñþôá äýï Bit ôçò ëýîçò äå ñçóéìïðïéïýíôáé. Ôá åðüìåíá äýï Bits õðïäçëþíïõí ôç ìïíüäá ìýôñçóçò ôïõ ñüíïõ åäþ õðïèåôéêü èåùñïýìå ïôé ç ôéìþ 3 áíôéóôïé åß óå äýêáôá ôïõ äåõôåñïëýðôïõ. Ôá õðüëïéðá 12 Bits åêöñüæïõí ôñßá äåêáäéêü øçößá óýìöùíá ìå ôçí êùäéêïðïßçóç BCD. Óôï ðáñüäåéãìá ôïõ ó Þìáôïò ôá øçößá áõôü åßíáé 0, 2 êáé 5. ÅðïìÝíùò, ç ñïíéêþ ëåéôïõñãßá ðáßñíåé ôéìþ ôïõ ñüíïõ 25 äýêáôá ôïõ äåõôåñïëýðôïõ, äçëáäþ 2,5 sec. 46
Äéá åßñéóç äåäïìýíùí Word Byte 2 Byte 1 ùñßòìïíüäá ÔéìÞ ôïõ ñüíïõ êùäéêïðïéçìýíç óå ìïñöþ BCD óçìáóßá ñüíïõ Â15 Â14 Â13 Â12 Â11 Â10 Â9 Â8 Â7 Â6 Â5 Â4 Â3 Â2 Â1 Â0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 3 0 2 5 s/10 25 Ó Þìá 3.11: Êáôá þñçóç ôùí ðáñáìýôñùí ìéáò ñïíéêþò ëåéôïõñãßáò Ôï ó Þìá 3.12 ðáñïõóéüæåé Ýíá ðáñüäåéãìá áíüãíùóçò ôçò ôñý ïõóáò ôéìþò ìýôñçóçò ôïõ ñüíïõ óôï åóùôåñéêü ìéáò ñïíéêþò ëåéôïõñãßáò. Ç ôéìþ ôïõ ñüíïõ âñßóêåôáé óå ìéá èýóç ìíþìçò ðïõ áíôéóôïé åß óôç óõãêåêñéìýíç ñïíéêþ ëåéôïõñãßá (ôçí Ô5 óôï ðáñüäåéãìá) êáé Ý åé åðßóçò ùñçôéêüôçôá Word. Ç åñìçíåßá ôçò ôéìþò ðïõ âñßóêåôáé óôç ìíþìç åîáñôüôáé áðü ôï óõãêåêñéìýíï êáôáóêåõáóôþ êáé ôýðï ÐËÅ. Óôï óõãêåêñéìýíï ðáñüäåéãìá ç êùäéêïðïßçóç ôçò ôéìþò ôïõ ñüíïõ áîéïðïéåß ôá 10 áðü ôá 16 äéáèýóéìá Bits. Ôá Ýîé ðñþôá Bits ôçò ëýîçò äåí ðåñéý ïõí äåäïìýíá ãéá ôç ìýôñçóç ôïõ ñüíïõ, áëëü ñçóéìïðïéïýíôáé åóùôåñéêü áðü ôç ñïíéêþ ëåéôïõñãßá, ãéá íá áðïèçêåýåé äéá åéñéóôéêýò ðëçñïöïñßåò ó åôéêü ìå ôçí åêôýëåóç ôçò ìýôñçóçò ôïõ ñüíïõ ð.. ôïí ôýðï ôçò ñïíéêþò ëåéôïõñãßáò, ôç ñçóéìïðïéïýìåíç ìïíüäá ôïõ ñüíïõ êëð. Ôá õðüëïéðá Bits åêöñüæïõí ôç ìýôñçóç ôïõ ñüíïõ ùò Ýíá äåêáøþöéï äõáäéêü áñéèìü. Óôï ðáñüäåéãìá ôïõ ó Þìáôïò, ç ôéìþ ìýôñçóçò ôïõ ñüíïõ êáôü ôç óõãêåêñéìýíç ñïíéêþ óôéãìþ åßíáé 39. ñïíéêþ ëåéôïõñãßá Ô5 Word Byte 2 Byte 1 ñþóç ãéá ôç äéá åßñéóç ôçòôñý ïõóá ôéìþ ìýôñçóçòôïõ ñüíïõ ñïí. ëåéôïõñãßáò êùäéêïðïéçìýíç ùò äõáäéêüò áñéèìüò Â15 Â14 Â13 Â12 Â11 Â10 Â9 Â8 Â7 Â6 Â5 Â4 Â3 Â2 Â1 Â0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 39 Ó Þìá 3.12: ÁíÜêôçóç ôçò ôñý ïõóáò ìýôñçóçò ôïõ ñüíïõ ìéáò ñïíéêþò ëåéôïõñãßáò 47
êåöüëáéï 3