Gyakorlati Assembly haladóknak 9789635771417 [PDF]

Ez a könyv megpróbál egy kicsit másképpen közelíteni a gépi kódú programozáshoz, mint ahogy az eddig megjelent kiadványo

156 96 6MB

Hungarian Pages [206] Year 2000

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
PCAss2_001
PCAss2_002
PCAss2_003
PCAss2_004
PCAss2_005
PCAss2_006
PCAss2_007
PCAss2_008
PCAss2_009
PCAss2_010
PCAss2_011
PCAss2_012
PCAss2_013
PCAss2_014
PCAss2_015
PCAss2_016
PCAss2_017
PCAss2_018
PCAss2_019
PCAss2_020
PCAss2_021
PCAss2_022
PCAss2_023
PCAss2_024
PCAss2_025
PCAss2_026
PCAss2_027
PCAss2_028
PCAss2_029
PCAss2_030
PCAss2_031
PCAss2_032
PCAss2_033
PCAss2_034
PCAss2_035
PCAss2_036
PCAss2_037
PCAss2_038
PCAss2_039
PCAss2_040
PCAss2_041
PCAss2_042
PCAss2_043
PCAss2_044
PCAss2_045
PCAss2_046
PCAss2_047
PCAss2_048
PCAss2_049
PCAss2_050
PCAss2_051
PCAss2_052
PCAss2_053a
PCAss2_054
PCAss2_055
PCAss2_056
PCAss2_057
PCAss2_058
PCAss2_059
PCAss2_060
PCAss2_061
PCAss2_062
PCAss2_063
PCAss2_064
PCAss2_065
PCAss2_066
PCAss2_067
PCAss2_068
PCAss2_069
PCAss2_070
PCAss2_071
PCAss2_072
PCAss2_073
PCAss2_074
PCAss2_075
PCAss2_076
PCAss2_077
PCAss2_078
PCAss2_079
PCAss2_080
PCAss2_081
PCAss2_082
PCAss2_083
PCAss2_084
PCAss2_085
PCAss2_086
PCAss2_087
PCAss2_088
PCAss2_089
PCAss2_090
PCAss2_091
PCAss2_092
PCAss2_093
PCAss2_094
PCAss2_095
PCAss2_096
PCAss2_097
PCAss2_098
PCAss2_099
PCAss2_100
PCAss2_101
PCAss2_102
PCAss2_103
PCAss2_104
PCAss2_105
PCAss2_106
PCAss2_107
PCAss2_108
PCAss2_109
PCAss2_110
PCAss2_111
PCAss2_112
PCAss2_113
PCAss2_114
PCAss2_115
PCAss2_116
PCAss2_117
PCAss2_118
PCAss2_119
PCAss2_120
PCAss2_121
PCAss2_122
PCAss2_123
PCAss2_124
PCAss2_125
PCAss2_126
PCAss2_127
PCAss2_128
PCAss2_129
PCAss2_130
PCAss2_131
PCAss2_132
PCAss2_133
PCAss2_134
PCAss2_135
PCAss2_136
PCAss2_137
PCAss2_138
PCAss2_139
PCAss2_140
PCAss2_141
PCAss2_142
PCAss2_143
PCAss2_144
PCAss2_145
PCAss2_146
PCAss2_147
PCAss2_148
PCAss2_149
PCAss2_150
PCAss2_151
PCAss2_152
PCAss2_153
PCAss2_154
PCAss2_155
PCAss2_156
PCAss2_157
PCAss2_158
PCAss2_159
PCAss2_160
PCAss2_161
PCAss2_162
PCAss2_163
PCAss2_164
PCAss2_165
PCAss2_166
PCAss2_167
PCAss2_168
PCAss2_169
PCAss2_170
PCAss2_171
PCAss2_172
PCAss2_173
PCAss2_174
PCAss2_175
PCAss2_176
PCAss2_177
PCAss2_178
PCAss2_179
PCAss2_180
PCAss2_181
PCAss2_182
PCAss2_183
PCAss2_184
PCAss2_185
PCAss2_186
PCAss2_187
PCAss2_188
PCAss2_189
PCAss2_190
PCAss2_191
PCAss2_192
PCAss2_193
PCAss2_194
PCAss2_195
PCAss2_196
PCAss2_197
PCAss2_198
PCAss2_199
PCAss2_200
PCAss2_201
PCAss2_202
PCAss2_203
PCAss2_204
PCAss2_205
PCAss2_221
Papiere empfehlen

Gyakorlati Assembly haladóknak
 9789635771417 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

/illette/ [l!:Sill

B

Agárdi Gábor

Lektorálta: Kaszanyiczki László

Nyitott rendszerií képzés - távoktatás oktatási segédlete * Tankönyv

LSI Oktatóközpont A Mikroelektronika Alkalmazásának

Kúltúrájáért Alapítvány

ISBN

963 577141 x

Kiadó: LSI Oktatóközpont Felelös vezetö: Dr. Kovács Magda Témafelelös: Flier István

Készítette: FÜTI PRINT Kft. 95-32 Felelős vezető: Hegyesi László

Tartalomjegyzék

Tartalomjegyzék .................................................................... 3 Előszó avagy Murphy és az optimizmus .............................. 7 1. Fejezet ................................................................................ 6 A PC (DOS) filekezelése. .................. ... . . . ............... 8 ............ 8 Egy file létrehozása. ................................ File hozzáférési jogok.... ...................... 9 [Program 01] .............. ................... 10 File pointer mozgatása, buborék módszer ................... 13 [Program 02] .. ............ ..... .. . 13 File attribútumok kezelése.. ........................ 16 Lekérdezésnél . .. .. . .. . .. .. . .. . ... ... .. .. . .. 17 Beállításnál ..... ... .. .. . . .. .. . .. . .. ... ...... 17 Az attribútum byte felépítése .................................... 17 [Program 03] . . .. .. ... . .. . .. ...... 18 [Program 04] . . ..... . ......... .... 20 File átnevezése.. . .. 20 [Program 05] ............. ......................... 21 File törlése ........................ .... 22 [Program 06]. ..22 File keresése.. . . . . . . . . .. .. . ....... 23 ADTA felépítése ....... 23 [Program 07].. ..24 2. Fejezet ................................................................................ 21 A DOS Könyvtárkezelése ... .............. ....... 27 Egy könyvtár létrehozása.. .... ........... . ... 27 [Program 08] ............... .. .. .. .. .. . .. .. .. . . . .... 27 ............... .......... 28 Egy könyvtár törlése [Program 09]. . .. 28 Aktuális pozíció meghatározása........ .... 29 [Program 1O]. . .. .. . .. ... ... . . ... 30 3. Fejezet ................................................................................ 32 Batches rutinok . .. .. .. .. .. . ... ...... 32 Scroll rutin ..... ................. . .. 32 [Program 11] . .. ......... .... . . ... 32

IBM PC Gyakorlati Assembly haladóknak

4.

5.

6.

7.

8.

4

Grafika a szöveges képernyőn ? . ..... ... ................ 34 [Program 12]... . . . . . .......... 34 Fejezet .................. ,............................................................. 42 Mi van, ha többet akarunk? ...................................... .42 A 386 real mód szolgáltatásai..... ....... .... . ... . ... .42 Fontosabb utasítások .. ... .. .. .. .. . ....... . .. ... . ... ....... .42 Fejezet ............. ,.................................................................. 44 Hogyan írjunk szép programot?... .. .. . .. . ... ... ............ .44 Előkészületek. ... .. .. ... ... .. ..... ......... ........ .44 Munkánk megkönnyítése . . .. . .......... .45 Kiegészítések a BBM formátumhoz .......................... .45 Helymegtakarítás ... .45 [Program 13].. ............... .46 A vezérlőprogram működése ............. . . . ....... .... 68 A szubrutinok működése ........................................ 69 ............................ 72 A program adatmezője.. Fejezet ................................................................................ 7 4 Az animáció.. ............................................. 74 Mi is az az animáció?_. . .... 74 [Program 14].. ............. 75 Fejezet ................................................................................ 85 Egy zárt alakzat kifestése egy színnel. ................ 86 Egyszerű alakzatok kifestése.. .......... 86 [Program 15]... ...... 87 Egyszerű alakzatok kitöltése másként .. . ... 94 [Program 16].................... ..... 94 Szilánkos alakzatok kitöltése.. .. 100 [Program 17].. .. .. ... . ... . ....... 100 Fejezet ................................................................................ 11 O Háromdimenziós alakzatok kezelése.... . ... 11 0 Egy kocka térbeli ábrázolása. . .. 11 O Egy kocka vetületi ábrázolása .... 111 Térbeli alakzatok síkbeli leképzése. .... 111 Az ábrák forgatása.. . ... 112 [Program 18].. ... 113 ..... 129 A kocka felrajzolásának módja.... Forgatás mindhárom tengelyen. . 130 [Program 19]. .... 130

Tartalomjegyzék Az alakzat valós képének előállítása ........................ 151 A felrajzolási irány megállapítása ....... . ... .. ........... 152 9. Fejezet ................................................................................ 154 A v íru sok lélektana......... .... .. . ... . .. ...... .. . . .. .... .. . .. . .. . .. 154 .................................... 154 A virusok működése.... Működési feltételek biztosítása.. .............. 154 Védekezés a víruskeresők ellen ........................ 155 Védekezés a Debuggerek ellen ............................. 155 Védekezés a Ctri+Ait+Del ellen.. . .. 157 [Program 20].. . ............................... 158 . 160 A fertözés.... A virusok által használt megszakításvektorok .......... 161 1O. Fejezet .............................................................................. 177 . .. . .. . .. . . .. .. . . .. . . . ...... 177 A megfelelő időzítés........... "Black Screen" Képernyövédö.. . ........................ 177 [Program 21]. . ... 177 "Zene" készítése PC-n . 180 [Program 22]........ ..................................... 181 Frekvencia táblázat.. ................................................ 183 184 Egyedi hang effektusok létrehozása . [Program 23]... .......... 184 11. Fejezet .............................................................................. 188 Ellipszis rajzolása ............................................................. 188 Képtorzítás........ .. ........................................ 188 Az ellipszis matematikai egyenlele ................................. 188 Növekményes algoritmus... .. 189 . 189 A rutin 'C' nyelven [Program 24] . ........ . 191 További lehetőségek. . . .... ............... 194 12. Fejezet .............................................................................. 195 Az installálás.... .. ... .. .. .. . .. . 195 Egy installáló program feladata.. .... 195 Az előkészítés .. 195 .. 195 A telepítés .. [Program 25]. . ... 196 A memória felszabadítása . .200 A szabad hely ellenőrzése.. . .200 Külsö parancs indítása .·. . 200 5

IBM PC Gyakorlati Assembly haladóknak Az int 2eh használata. ............. . ..................... 201 Tárgymutató ........................................................................... 203

6

Előszó ava~:,>y

Előszó

Murphy és az optimizmus

avagy Murphy és az optimizmus

Ezen könyv megirására hasonló dolog késztetett, mint elődjére Célom egy kicsit tovább tagJaini azokat a témákat, melyek már említésre kerültek elözö könyvemben, azonban ott kevesebb helyet kaptak, illetve további új információkat is szeretnék közreadni. Továbbra sem célom, hogy egyfaJta rutingyűjteményt hozzak létre. Annak ellenére, hogy vannak kész, felhasználható rutinok is, inkább csak ötleteket, algoritmusokat szeretnék átadni információ gyanánt A könyv tartalmilag az IBM PC Gyakorlati Assembly cimü, már megjelent könyvre épül, így a rutinok egyes részei nem dokumentáltak, azok valószínűleg megtalálhatóak az emlitett kiadványban. Van azonban egy fontos dolog, amit JÓ ha mmdenki figyelembe vesz egy program megírása során, miszerint Murphy tgen optimista volt, mivel a hibalehetőségek száma négyzetesen arányos a begépelt karakterek számával, továbbá a számítógép a mi utasításainkat és nem gondolatainkat hajtJa végre. Ezért ha a gép nem azt teszi amit mt szeretnénk, ne bántsuk, hanem inkább keressük meg, hol tévedtünk.

Agárdt Gábor

7

IBM PC Gyakorlati Assembly haladóknak

1. Fejezet A PC (DOS) filekezelése A könyv első részében már említésre került a PC lemezkezelése, azonban ott részletesebben nem foglalkoztam vele. Ezért megpróbálom egy kicsit bepótolni ezt Egy file kezelése többnyire a DOS-on keresztül törtémk így meg kell tanulni annak korlátait leküzdve ésszerűen kezelm a file-okat

Egy file létrehozása Azért a lehetőségek nem olyan szűkösek, mint hinnénk. Mit IS lehet tenm egy JÓlnevelt file-la(? Először is induljunk ki abból, hogy üres a lemez. Első lépésben tehát létre kell hozni azt Ehhez szükség van az állomány leendő nevére, tulajdonságaira és egy programra ami ezekből elkészíti a file-t A file nevét egészen egyszerűen letáraijuk a programban mint egy stringet egy nullával a végén (ez nagyon fontos) MaJd ds:dx regisztert ezen string címére állítjuk A file tulajdonságai már különbözőek lehetnek. Ezt a ex regiszter egyes bitJernek beállításával kell maJd megadni a gépnek. Ennek felépítése a következő O.b1t l.bit 2.bit 9.bit

Read only Hidden System Archív

Tehát a megfelelő bit helyére l-et írva érhetjük el a kívánt tulajdonságot Ha cx=O akkor normál attribútumot kap. Ha mindezt beállítottuk, meg kell hívni a 3Ch DOS funkciót, és ha romden rendben, a file létrejön Az ax regiszterben megkapjuk a file azonosító kódot, amire a későbbiekben majd szükségünk lesz. Ha valami nem volt tökéletes, a carry flag l értéke jelzi és ekkor ax regiszterben a hiba kódját kapJuk, amelyek a következők lehetnek

8

l. Fejezet

A DOS filekezelése

ax=3 Hibás elérési útvonal ax=4 A file azonosító létrehozása nem lehetséges (pl túl sok nyitott file) ax=S Tiltott hozzáférés (pl· file már létezik és read-only vagy az aldirectory már tele van stb) A másik kiindulási alap az, hogy már létezik a file Ekkor is hasonlóan kell eljárnunk, mindössze néhány különbség van csak. Tehát a ds: d x regiszter itt is a file nevét tartalmazó memóriarészre mutat, a file megnyitási módját azonban itt az al regiszterhe kell írni, ahol az egyes biteknek szintén meg van a maguk jelentése:

File hozzáférési jogok A O és l. bit a file megnyitási módjára utalnak. 00 Ol lO

csak olvasható file csak írható file írható, olvasható file.

A 2 és 3. bit funkciója ismeretlen, értékük mind1g O A 4-7 bit a file-ok osztott elérésével kapcsolatosak, amikor több program használja az adott állományt A 7. b1t az öröklés beállítására szolgál. Ez szabja meg, hogy az adott állományt használó feladaton belül mdított Újabb feladat örökölheti-e az állomány nyitottságát A 4-6 bit az osztott elérésű megnyitás módjára utal egyidejűleg

OOO

Kompatibilis mód. Az így megnyitott file-t a továbbiakban más alkalmazások IS megny1thatják, de csak OOO módban, annak lezárásáig

00 l

Kizárólagos mód. Az így megnyitott állományt a továbbiakban semmilyen más alkalmazás nem nyithatja meg annak lezárásáig.

9

IBM PC Gyakorlati Assembly haladóknak Ol O Lefoglalás írásra. Az így megnyitott állományt annak lezárásáig nem lehet ÚJra megnyitni se kompatibilis, se írásra lefoglalt módon. Ol l

Lefoglalás olvasásra. Az így megnyitott állományt annak lezárásáig nem lehet ÚJra megnyitni se kompatibilis, se olvasásra lefoglalt módon.

l 00 Nem lefoglalt mód. Az így megnyitott állományt a továbbiakban nem lehet megnyitni (annak lezárásáig) kompatibilis módon. Ha mindezt beállítottuk, a DOS 3Dh funkciójával nyithatjuk meg az állományt. Közös tulajdonsága a két funkciónak, hogy mind létrehozás, mind megnyitás után "nyitva" lesz az állomány a további műveletek elvégzéséhez. A legnagyobb különbség az, hogy ha létrehozunk egy file-t és már létezett azzal a néwel egy régebbi állomány, akkor annak hosszát O-ra állítja, azaz mintha törölné. Ezzel szemben a file megnyitása csupán elérhetövé teszi az állományt. A file megnyitására már láthattunk példát a Gyakorlati Assembly könyvben, így most egy file létrehozására mutatok be egy példát

[Program 01] proglll

segment assume cs:progOl,ds:progOl

;Szegmensdefiníció ;Cs és ds regiszrcrek ;hoZ?.árendelése.

start:

push cs pop ds

; Os regiszterhe a cs ;értéké! tölti

mov mov

ax,Oh800h cs,ax

:A údeomcmória kezdőeimét :cs regiszterhe tölti.

ffiOY

ax,3 lll h

;!10*25 karakteres mód beállitása

int mo,·

ah,Jch

.A filc

10

létreho~