home *** CD-ROM | disk | FTP | other *** search
/ Floppy Magazine 1987 #4 / Floppy_Magazine_87-4_1987_Megasystems_Oy_fi_Side_A.d64 / konekieli.2 < prev    next >
Text File  |  2023-02-26  |  4KB  |  72 lines

  1.  
  2.  
  3.  
  4.           Konekielest[ II
  5.  
  6.     Nyt on sitten vuorossa konekielen o-piskelun toinen jakso. Jos et ole luke- nut edellist[ osaa ja olet vasta aloit- telemassa konekielt[, suosittelen sen   lukemista (jos et omista Floppy[, jossa se oli, niin tilaa).
  7.  
  8.     T[ss[ jutussa keskitymme erilaisiin laskutoimituksiin.
  9.  
  10.     INC, INX ja INY k[skyt k[siteltiin  jo viime jaksossa, joten siirtyk[[mme   suoraan v[hent[miseen.
  11.  
  12.    DEC v[hent[[ muistipaikan arvoa yh- dell[. Muotoja l\ytyy seuraavasti:
  13. DEC luku      v[hent[[ muistipaikan ar- voa yhdell[ (muistipaikka=luku)
  14. DEC luku,x    v[hent[[ muistipaikan ar- voa yhdell[, muistipaikka saadaan laske-malla yhteen luku ja x-rekisterin arvo.
  15.  
  16.    DEX v[hent[[ x-rekisterin arvoa yh-  dell[. Muoto on aina pelkk[ DEX.
  17.  
  18.    DEY toimii kuten DEX mutta k[sitteleey-rekisteri[.
  19.  
  20.    AND suorittaa and-operaation (seli-  tetty esim. Reference Guiden sivulla 14)luvun ja akun arvon kesken ja tulos tal-lettuu akkuun.
  21. AND# luku     luku ja akun arvo operaa- tion kohteina
  22. AND  luku     muistipaikan (=luku) arvo ja akun arvo kohteina
  23. AND  luku,x   muistipaikan (joka saadaanlaskemalla yhteen luku ja x-rekisterin  arvo) arvo ja akun arvo kohteina
  24. AND  luku,y   vastaava kuin edellinen,  k[ytt[[ vain y-rekisteri[ ja luvun on   oltava suurempi kuin 255.
  25.  
  26.    ORA suorittaa or-operaation (selitet-ty samassa paikassa kuin and) luvun ja  akun arvon kesken ja tulos menee akkuun.ORA# luku     luku ja akun arvo operaa- tion kohteina
  27. ORA  luku     muistipaikan arvo ja akun arvo kohteina
  28. ORA  luku,x   muistipaikan (joka saadaanlaskemalla yhteen luku ja x-rekisterin  arvo) arvo ja akun arvo kohteina
  29. ORA  luku,y   vastaava kuin edellinen,  k[ytt[[ vain y-rekisteri[ ja luvun on   oltava yli 255.
  30.  
  31.    EOR on samanluonteinen k[sky kuin ANDja ORA mutta se suorittaa ns. xor-ope-  raation (exclusive or (selitetty my\s   Referencen sivulla 14)).
  32. EOR# luku     luku ja akun arvo operaa- tion kohteina
  33. EOR  luku     muistipaikan arvo ja akun arvo kohteina
  34. EOR  luku,x   muistipaikan (luku + x-re-kisterin arvo) arvo ja akun arvo kohtei-na
  35. EOR  luku,y   vastaa edellist[, k[ytt[[ vain y-rekisteri[ ja luku yli 255.
  36.  
  37.    T[h[n v[liin voisi tietysti heitt[[  NOPin, niikuin kevennykseksi. NOP ei teeyht[[n mit[[n (No OPeration). NOP on ai-na muodossa NOP.
  38.  
  39.    LSR siirt[[ kohteena olevan muisti-  paikan tai akun bittej[ "oikealle" yhdenbitin verran. Toimitus vastaa kahdella  jakamista ja alkuper[isen arvon ollessa pariton (bitti 0 p[[ll[) py\ristyy tulosalasp[in. Bitin 0 tila siirtyy carry li-pun tilaksi (lipuista tarkemmin joskus  toiste).
  40. LSR  A        suorittaa operaation akul-le
  41. LSR  luku     suorittaa operaation muis-tipaikalle, joka tietysti on yht[ kuin  luku
  42. LSR  luku,x   suorittaa operaation muis-tipaikalle, joka saadaan laskemalla yh- teen luku ja x-rekisterin arvo.
  43.  
  44.    ASL siirt[[ kohteena olevan muisti-  paikan tai akun bittej[ "vasemmalle" yh-den bitin verran. Mik[li bitti 7 ei ole p[[ll[ vastaa toimitus kahdella kerto-  mista. Mik[li bitti 7 on p[[ll[ on muis-tipaikan uusi arvo=(vanha arvo-128)*2.  Bitin 7 tila siirtyy carry lipun tilak- si.
  45. ASL  A        suorittaa operaation akul-le
  46. ASL  luku     suorittaa operaation muis-tipaikalle
  47. ASL  luku,x   suorittaa operaation muis-tipaikalle, joka saadaan laskemalla yh- teen luku ja x-rekisterin arvo.
  48.  
  49.     Eik\h[n t[ss[ riit[ pohdittava muu- tamaksi hetkeksi. Alla viel[ pari pient[ohjelma esimerkki[, jotka toivottavasti hieman selvent[v[t n[it[ k[skyj[.
  50.  
  51.     Olettakaamme, ett[ haluat muuttaa   akussa olevan luvun parilliseksi, siten ett[ jos se on pariton pienenee se yh-  dell[. Parillinen luku ei tietenk[[n saamuutua mitenk[[n.
  52.  
  53.     Jos tied[t luvun olevan pariton k[y muutos esim. seuraavasti:
  54.  
  55. STA 033C     akun arvo mpaikkaan 828
  56. DEC 033C     mp 828:n arvosta 1 pois
  57. LDA 033C     mp 828:n arvo akkuun
  58.  
  59.     Jos ei ole tietoa, siit[ onko luku  parillinen vai pariton ei yll[ olevaa   voi k[ytt[[, mutta seuraavia kyll[kin:  
  60. Tapa 1
  61.  
  62. LSR A        jakaa akun arvon kahdella               py\rist[en puolikkaan pois ASL A        kertoo edellisen laskutoi-              mituksen tuloksen kahdella 
  63. Tapa 2
  64.  
  65. AND# FE      suorittaa and-operaation a-             kun arvon ja 254:n kesken
  66.  
  67.     Ensi kerralla taas lis[[ juttua, ai-heesta: vertailu ja ehdolliset hypyt.
  68.  
  69.           - Marko Jerrman -
  70.  
  71.  
  72.