home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 48 / Flop_Magazin_48_2005_05_Raster_cs_Side_A.atr / show10.tch < prev    next >
Text File  |  2023-02-26  |  5KB  |  23 lines

  1. Kurs Assembleru - Zobrazov⇧n     ⇨    sla v des    tkov⑦ soustav❎¢Raster/c.p.u., 2005¢---------------------------------------¢¢V dne③n    m d    le nepravideln⑦ho kursu programov⇧n     v Assembleru se pod    v⇧me na problematiku zobrazov⇧n     hexadecim⇧ln    ho ⇨    sla v des    tkov⑦m tvaru. ekn❎me tedy, əe ve sv⑦m programu pouə    v⇧te dvoubytov⑦ ⇨    slo (tj. $0000-$FFFF), kter⑦ chcete zobrazit na obrazovce v des    tkov⑦ soustav❎ (tj. 00000-65535).¢P②edvedeme si dva odli③n⑦ principy, kter⑨mi lze toto ②e③it.¢¢1.) Zp
  2. sob pomoc     d❎len     10¢---------------------------¢¢⑥    slo opakovan❎ d❎l    me hodnotou 10. Zbytek po d❎len     vədy pouəijeme jako jednu v⑨slednou cifru pro zobrazen    , p②i⇨emə v⑨stup je sestavov⇧n pozp⇧tku od posledn     cifry po prvn     (tj. od jednotek po desetitis    ce).¢¢P②    klad: M❎jme ⇨    slo $4321¢1. $4321 / 10 = $06B6 zbytek 5¢2. $06B6 / 10 = $00AB zbytek 8¢3. $00AB / 10 = $0011 zbytek 1¢4. $0011 / 10 = $0001 zbytek 7¢5. $0001 / 10 = $0000 zbytek 1¢V⑨sledn⇧ zobrazen⇧ hodnota je tedy 17185.¢¢Jak je z p②    kladu vid❎t, posledn     (p⇧t⑦) d❎len     je jiə zbyte⇨n⑦, nebo④ v⑨sledek d❎len     ve ⇨tvrt⑦m kroku jiə m
  3. əeme rovnou pouə    t jako cifru desetitis    c
  4. .¢¢Tento princip v⇨etn❎ zm    n❎n⑦ jednoduch⑦ optimalizace vynech⇧n    m p⇧t⑦ho d❎len     je demonstrov⇧n v uk⇧zce SHOW10A. Vol⇧ se podprogram "zobraz", jenə vədy zobraz     hodnotu obsaəenou na pam❎④ov⑨ch buk⇧ch "zobraz_db" a "zobraz_hb". Toto se prov⇧d     v cyklu od $0000 aə po $FFFF, tj. zobrazov⇧ny jsou hodnoty od 00000 po 65535. Na z⇧v❎r se pak vyp    ③e celkov⇧ doba b❎hu programu v pades⇧tin⇧ch sekundy.¢¢2.) Zp
  5. sob pomoc     ode⇨    t⇧n     mocnin 10¢-------------------------------------¢¢Od ⇨    sla ode⇨    t⇧me mocniny deseti a zapo⇨    t⇧v⇧me vədy po⇨et t❎chto ode⇨ten     dokud bude v⑨sledek nez⇧porn⑨. V p②    pad❎ z⇧porn⑦ho v⑨sledku se vr⇧t    me k posledn     nez⇧porn⑦ hodnot❎ a posuneme se na v⑨po⇨et dal③     cifry. Za⇨neme hodnotou 10000, pak 1000, 100, 10 a 1. V⑨sledek tedy bude sestavov⇧n z po⇨t
  6.  ode⇨ten    , a v po②ad     od prvn     cifry po posledn     (tj. od desetitis    c
  7.  po jednotky).¢¢P②    klad: M❎jme ⇨    slo $4321¢1. $4321 - 10000 = $1C11 (1.ode⇨ten    )¢   $1C11 - 10000 = z⇧porn⑨ v⑨sledek¢2. $1C11 - 1000 = $1829 (1.ode⇨etn    )¢   $1829 - 1000 = $1441 (2.ode⇨ten    )¢   $1441 - 1000 = $1059 (3.ode⇨ten    )¢   $1059 - 1000 = $0C71 (4.ode⇨ten    )¢   $0C71 - 1000 = $0889 (5.ode⇨ten    )¢   $0889 - 1000 = $04A1 (6.ode⇨ten    )¢   $04A1 - 1000 = $00B9 (7.ode⇨ten    )¢   $00B9 - 1000 = z⇧porn⑨ v⑨sledek¢3. $00B9 - 100 = $0055 (1.ode⇨ten    )¢   $0055 - 100 = z⇧porn⑨ v⑨sledek¢4. $0055 - 10 = $004B (1.ode⇨ten    )¢   $004B - 10 = $0041 (2.ode⇨ten    )¢   $0041 - 10 = $0037 (3.ode⇨ten    )¢   $0037 - 10 = $002D (4.ode⇨ten    )¢   $002D - 10 = $0023 (5.ode⇨ten    )¢   $0023 - 10 = $0019 (6.ode⇨ten    )¢   $0019 - 10 = $000F (7.ode⇨ten    )¢   $000F - 10 = $0005 (8.ode⇨ten    )¢   $0005 - 10 = z⇧porn⑨ v⑨sledek¢5. $0005 - 1 = $0004 (1.ode⇨ten    )¢   $0004 - 1 = $0003 (2.ode⇨ten    )¢   $0003 - 1 = $0002 (3.ode⇨ten    )¢   $0002 - 1 = $0001 (4.ode⇨ten    )¢   $0001 - 1 = $0000 (5.ode⇨ten    )¢   $0000 - 1 = z⇧porn⑨ v⑨sledek¢V⑨sledn⇧ zobrazen⇧ hodnota je tedy 17185.¢¢M
  8. əeme prov⑦st jednoduchou optimalizaci pro ⇨tvrt⑨ a p⇧t⑨ pr
  9. b❎h, vych⇧zej    c     z ⑤vahy, əe po  t②et    m pr
  10. b❎hu je uə v⑨sledn⇧ hodnota vədy men③     neə 100, a ode⇨    t⇧n     tedy jiə sta⇨     prov⇧d❎t pouze pro jednobyteovou hodnotu. Z⇧v❎re⇨n⑨ p⇧t⑨ pr
  11. b❎h pak lze vynechat zcela a pouə    t pro cifru jednotek p②    mo posledn     nez⇧pornou hodnotu ze ⇨tvrt⑦ho pr
  12. b❎hu.¢¢Tento princip v⇨etn❎ zm    n❎n⑦ jednoduch⑦ optimalizace ⇨tvrt⑦ho pr
  13. b❎hu a s vynech⇧n    m p⇧t⑦ho pr
  14. b❎hu je demonstrov⇧n v uk⇧zce SHOW10B. Vol⇧ se podprogram "zobraz", jenə vədy zobraz     hodnotu obsaəenou na pam❎④ov⑨ch buk⇧ch "zobraz_db" a "zobraz_hb". Toto se prov⇧d     v cyklu od $0000 aə po $FFFF, tj. zobrazov⇧ny jsou hodnoty od 00000 po 65535. Na z⇧v❎r se pak vyp    ③e celkov⇧ doba b❎hu programu v pades⇧tin⇧ch sekundy.¢¢Porovn⇧n     rychlosti obou zp
  15. sob
  16. :¢---------------------------------¢(hodnota za dvojte⇨kou znamen⇧ dobu - ⇨    m v❎t③     t    m hor③    )¢¢SHOW10A:¢⇨    sla 00000-65535:  4476¢65536x ⇨    slo 00000: 4222¢65536x ⇨    slo 59999: 4607¢¢SHOW10B:¢⇨    sla 00000-65535:  1710¢65536x ⇨    slo 00000:  550¢65536x ⇨    slo 59999: 2842¢¢Operace d❎len     je n⇧ro⇨n❎j③     na v⑨po⇨etn     v⑨kon, takəe prvn     zp
  17. sob je pomalej③    . Zobrazen     r
  18. zn⑨ch hodnot v③ak trv⇧ vədy zhruba stejnou dobu - rozd    l cca do 10%.¢¢Druh⑨ zp
  19. sob je vədy rychlej③    , a to je③t❎ velmi z⇧vis     na zobrazovan⑦ hodnot❎. Mezi nejhor③     zobrazovanou hodnotou 59999, kdy mus     ode⇨    tac     metoda prov⑦st nejv❎t③     po⇨et cykl
  20. , a nejlep③     zobrazovanou hodnotou 00000 s minim⇧ln    m celkov⑨m po⇨tem ode⇨    tac    ch cykl
  21. , je rozd    l pot②ebn⑦ doby v    ce neə p❎tin⇧sobn⑨.¢¢Pozn⇧mka: U v⑨konnostn❎ n⇧ro⇨n⑨ch her a program
  22. , kde by neust⇧l⑦ p②ev⇧d❎n     hexa ⇨    sel do des    tkov⑦ho tvaru kv
  23. li zobrazov⇧n     st⇧lo p②    li③ mnoho ⇨asu, se v❎t③inou pouə    v⇧ BCD reprezentace a decimal modus, ale o tom kdyətak n❎kdy p②    ③t❎.