Ассемблер тілінде TASM көмегімен жүзеге асырылған Жыланша ойынының курстық жобасы


Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 15 бет
Таңдаулыға:   

ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

Қаныш Сатбаев атындағы Қазақ ұлттық техникалық университеті

Есептеу техника кафедрасы

Курстық жобаға

Т Ү С І Н І К Т Е М Е Қ А Ғ А З

Тақырыбы: “Жыланша” ойыны

жетекші:

аға оқытушы

Мустафина Б. М.

тапсырған күні:

“___” 2003 г.

қолы:

студент: Нұрбаев А. Б.

тобы: ЗБИ-00-1

мамандығы: 3704

Àëìàòû 2003

ÒÀÏÑÛÐÌÀ

“Æûëàíøà” îéûíûí ìåíãåðåòií ïðîãðàììà æàçûíûç

Òàïñûðìàíû áåðãåí ″___″2003æ. À¹à îºûòóøы: Ìóñòàôèíà Á. Ì.

Òàïñûðìà àë¹àí ″___″2003г. студент: ͽðáàåâ À. Б.

ÌÀÇ̵ÍÛ

Êiðiñïå. 4

1. Әäiñòi ñèïàòòàó. . . . 5

2. Ïðîãðàììàíû ñèïàòòàó . . . 6

2. 1 Æàëïû ìà¹ë½ìàòòàð. . . 6

2. 2 Ôóíêöèîíàëäûº áåëãiëåíói . . . 6

3. Ëîãèêàëûº ñòðóêòóðà ñèïàòòàìàñû. …. 6

3. 1 Блок-схема . . 7

3. 2 Ïðîãðàììàíûң æîëäûº ñèïàòòàìàñû. 7

3. 3 Øàºûðó æ¸íå æ¾êòåó . . . 7

3. 4 Ïàéäàëàíûëàòûí òåõíèêàëû æàáäûºòàð. 8

²îðûòûíäû. . . . 9

°äåáèåòòåð òiçiìi. 10

²îñûìøà А . 11

²îñûìøà В . 21

ÊIÐIÑÏÅ

Á½ë êóðñòûº æîáà “æûëàíøà” îéûíûí ìåíãåðåòií ïðîãðàììàíû өңäåóãå àðíàëãàí. Программа ассемблер òiëiíäå жазылғандықтан, îë оның æ½ìûñ iñòåó æûëäàìäû¹ûí åä¸óið æî¹àðûëàòûï¸ ê¼ëåìií àéòàðëûºòàé àçàéòàäû¸áàñòàïºû ñèÿºòû îðûíäàëàòûí ôàéë ê¼ëåìií äå.

Àссемблер òiëi - á½ë ìàøèíàëûº òiëäiң ñèìâîëäûº ê¼ðiíiñi. ̸øèíåäåãi áàðëûº ¾ðäiñòåð ең төмен¸ àïïàðàòòûº äåíãåéäåí ¸ðåêåòêå òåê машиналық тілдің èíñòðóêöèÿëàðû àðºûëû êåëåäi. Á½äàí æàëïû áåëãiëåíóãå ºàðàìàñòàí àññåìáëåð òiëi ¸ðáið êîìïüþòåð òèïi ¾øií æåêåøå. Á½ë àññåìáëåð òiëiíäå æàçûë¹àí ïðîãðàììàíûң iøêi ò¾ðiíå äå ºàòûñòû. Àññåìáëåð òiëií áiëìåé àïïàðàòóðàìåí áàéëàíûñòû åñåïòåðäi øåøó ì¾ìêií åìåñ. Программист æ¸íå ïàéäàëàíóøû êåç êåëãåí æî¹àðû äåíãåéëi æàáäûқòàðäû âèðòóàëäû ¸ëåì ê½ðóãà áîëàòûí æà¹äàéëàð¹à äåéií ïàéäàëàíà àëàäû.

Аë åíäi ïðîãðàììèñòòå қèûí жағдай òóûíäàäû äåëiê¸ ïðîãðàììèñò ºàíøàëûºòû àêûëäû áîëñà äภîë ïðîãðàììàíû æàç¹àí òië қàíøàëûқòû æàºñû áîëñà äภàññåìáëåðäi áiëìåéiíøå á½ë æà¹äàéäûң øåøiìií òàáó ºèûí. Ñîíäûºòàí áàðëûº æî¹àðû äåíãåéëi òiëäåð êîìïèëÿòîðëàðû қ½ðàìûíûң ìîäóëäåðiíiң àññåìáëåð òiëiíiң ìîäóëüäåðiìåí áàéëàíûñòû æàáäûºòàðû áàð íåìåñå àññåìáëåð ïðîãðàììàëàó äåңãåéiíå øû¹óäû ºîëäàéäû.

Ñîíäûºòàí êîìïüþòåðìåí áàéëàíûñòû ¸ðáið àäàì ¾øií àññåìáëåð òiëií áiëó ìàңûçäû.

  1. Әдісті сипаттауМассивтерді сұрыптау

Әдетте сұрыптау есептерін шешу кезінде қосымша жадыны минималды пайдалану шарты алға тартылады, бұдан қосымша массивтерді пайдалану мүмкіндігі азаяды.

Әр түрлі сұрыптау әдістерінің алгоритмдерінің тез әрекеттілігін бағалау үшін екі көрсеткіш пайдаланылады:

  • меншіктеу саны;
  • салыстыру саны;
  • барлық сұрыптау әдістерін 2 үлкен топқа бөлуге болады: сұрыптаудың тура және жақсартылған әдістері;

Сұрыптаудың тура әдістерін 3 топшаға бөлуге болады:

  1. қою арқылы сұрыптау (қосу арқылы)
  2. таңдау арқылы сұрыптау (бөлу арқылы)
  3. ауыстыру арқылы сұрыптау (“түйіршіктеу” арқылы)

Сұрыптаудың жақсартылған әдістері сұрыптаудың тура әдісіне негізделген, бірақ сұрыптау үрдісін жеделдету үшін кейбір оригиналды идеялар қолданылады. Тура әдістер тәжірибеде сирек қолданылыды, өйткені олардың тез әрекеттілігі өте төмен.

  1. 1. 1 Қою арқылы сұрыптау

Берілген курстық жобада жоғарыда көрсетілген массивтерді сұрыптау әдісі баяндалады.

Әдіс принципі:

Массив 2 бөлікке бөлінеді: сұрыпталған және сұрыпталмаған. Сұрыпталған бөліктің элементтері кезекпен таңдалып алынып, сұрыпталынған бөлікке ондағы элементтер ретін бұзбайтындай етіп қойылады. Алгоритм жұмысының басында массивтің сұрыпталған бөлігі ретінде тек бір элемент алынады. Ал сұрыпталмаған бөлігі ретінде - қалғандары.

Осылайша алгоритм құрамында n-1 кірістен тұрады, бұлардың әрбіреуі 4 әрекеттен тұрады:

  • кезектегі і-ші сұрыпталмаған элементті алып, оны қосымша айнымалыға сақтау;
  • аланған элементтің болуы элемент ретін бұзбайтын массивтің сұрыпталған бөлігінен j позициясын іздеу;
  • i-1 -ден j-1-ге дейін массив элементтерін оңға жылжыту, қоюдың табылған позицияларын босату үшін;
  • алынған элементті табылған j - позицияға қою;

Берілген методты меңгеру үшін бір-бірінен қою позициясын іздеу тәсілімен ерекшеленетін бірнеше әдісті ұсынуға болады.

  1. 1. 2 Таңдау арқылы сұрыптау

Әдіс принципі:

Массивтен мәні минималды элементті тауып, 1-элементтен n-ші элементке дейінгі интервалдан, кейін оны 1-ші элементтің орнымен ауыстырамыз. Екінші қадамда 2-ден n-ге дейінгі интервалдан минималды мәнді элементті тауып оны 2-ші элементтің орнымен ауыстырамыз.

Осылайша барлық элементтер үшін n-1-ге дейін.

  1. 1. 3 Ауыстыру арқылы сұрыптау(“түйіршіктеу” арқылы сұрыптау)

Әдіс принципі:

Солдан оңға қарай екі көрші элемент салыстырылады, егер олардың орналасу қатынасы бір-бірімен реттік шартқа сай болмаса, онда олар орындарымен ауысады. Кейін келесі көрші екі элемент алынып, массивтің соңына дейін осылайша жалғасады.

  1. Программаны баяндау
  2. 1 Жалпы мағлұматтар

Программа ZMEYA деп аталады. Программаның жұмыс атқаруына қажетті программалық қамтама: ОЖ Windows 95/98/2000 және Tasm программалар пакеті.

  1. 2 Функционалдық белгіленуі

Программа демалу және көңіл көтеруге арналған.

  1. Логикалық құрылымның баяндалуы

Программаның негізгі әдісі - массивтерді сұрыптау. Символдар массиві(жыланша) - бұл жыланша бөліктері. Жыланша бағытша пернелерін басу арқылы жылжиды.

Жыланша белгіленген терезеде белгіленген жылдамдық арқылы жылжидыб ал жыланша терезеден шыққан кезде ойынның соңы болады. Жылдамдықты программадан белгілеуге болады. Жыланның ұзындығына терезе ұзындығы сай келеді, яғни терезе 100x100 болса, онда жыланша ұзындығы сәйкесінше 1 символ.

Ойынды бастар алдында ойыншының атын енг!зу туралы белг! Шығады, осы жерге атын енг!зед!. Ойыншы атын енг!згеннен кей!н нег!зг! программа ж!бер!лед!. Жыланшаны басқару жоғарыда айтылғандай жүзеге асырылады.

Символдардың пайда болуы кездейсоқтықпен !ске асады, координаттары да кездейсоқтықпен !ске асады. Бұл кезде координата орындарында басқа символдардың бар жоғы тексер!лед!. Бар болса басқа координата алынады.

  1. 1 Блок-схема

(B қосымшасын қараңыз)

0 басы

1 Айнымалыларды баяндау және деректерд! орнату

2 Пернен!ң басылуына тексеру, басылып тұрса, онда 3-блокқа, басылмаса 24-блокқа

3 Жоғарғы бағытшаға басылып тұрса, 8-блокқа, жоқ болса 4-блокқа

4 Төменг! Бағытшаға басылып тұрса, 12-блокқа, жоқ болса 5-блокқа

5 Оң бағытшасына басылып тұрса, 16-блокқа, жоқ болса 6-блокқа

6 Сол бағытшасына басылып тұрса, 20-блокқа, жоқ болса 7-блокқа

7 ESC басылып тұрса, 24-блокқа, жоқ болса 2-блокқа

8 Жыланшаны еск! Орнынан өш!р!п, 9-блокқа

9 y координатасын 1-ге азайтып, 10-блокқа

10 К!д!р!с процедурасын шақырып, 11-блокқа

11 Жыланшаны жаңа жерде кеск!ндеп, 2-блокқа

12 Жыланшаны еск! Орнынан өш!р!п, 13-блокқа

13 y координатасын 1-ге арттырып, 14-блокқа

14 К!д!р!с процедурасын шақырып, 15-блокқа

15 Жыланшаны жаңа жерде кеск!ндеп, 2-блокқа

16 Жыланшаны еск! Орнынан өш!р!п, 17-блокқа

17 x координатасын 1-ге арттырып, 18-блокқа

18 К!д!р!с процедурасын шақырып, 19-блокқа

19 Жыланшаны жаңа жерде кеск!ндеп, 2-блокқа

20 Жыланшаны еск! Орнынан өш!р!п, 21-блокқа

21 x координатасын 1-ге арттырып, 22-блокқа

22 К!д!р!с процедурасын шақырып, 23-блокқа

23 Жыланшаны жаңа жерде кеск!ндеп, 2-блокқа

24 Соңы

  1. 2 Мәт!нн!ң жолдарына байланысты программа логикасын баяндау

1 Программа моделін баяндау

2 Стек үшін жадыдан орын бөлу

3 Деректер сегменті

4-17 Айнымалыларды баяндау

18 Кода сегменті

20 delay макросын құру

21-34 Берілген макрос кідіріс функциясын орындайды

36 ust_sym макросын құру

37-62 Берілген макроста символды еркін экран координаталарын орнату алгоритмі келесі ретте осы макросты шақыру қаралады

64 game процедурасын құру

655-658 Бұл процедурада ойынның өзі қарастырылады. Ойын алгоритмі төмендегідей: алдымен перненің басылуын күтеміз, кейін перненің басылуын тексеру жүреді

658 Программамызды көрсететін start тамғасын баяндаймыз

670-671 ds сегменті мен днрнктер сегментін біріктіреміз

663 clean макросын шақырамыз

667 game процедурасын шақырамыз

669-677 программа соңы

  1. 3 Шақыру және жүктеу

Алдымен tasm. exe файлының көмегімен программаны компилируйтетуіміз керек. Кейіннен қате болмаған жағдайда obj файлын tlink. exe файлының көмегімен линктеуіміз керек.

Осыдан алынған exe файлын жүктеуге болады.

  1. 4 Қолданылатын техникалық жабдықтар

Курстық жобамен жұмыс кезінде Celeron 900 ПК және DeskJet 3325 принтері қолданылды.

  1. Қорытынды

Бұл курстық жобаны орындау кезінде “Жүйелік программалау”, ”Жоғарғы математика” пәндерінен алған барлық теориялық және практикалық білім қолданылды.

Ассемблер тілі машиналық тілдің аналогы болып табылатындықтан, ол микропроцессор архитектурасымен үздіксіз байланысты. Сондықтан оның архитектурасына өзгеріс енгізерліктей жағдай болса, ассемблер кеңінен қолданылады.

Компьютерде ассемблерді білмей-ақ жұмыс істеуге болар, бірақ кәсіпқой программистті дайындау элементі болып ассемлерді оқу болып табылады. Ассемблерді оқу арқылы сіз міндетті түрде компьютер архитектурасымен танысасыз. Ал бұл сізге болашақта басқа да тілдерде эффективті программалар жасап, біріктіруге жол ашады.

Ассемблер тілінің компьютер құрылымын оқып, үйренуде маңызы зор.

Пайдаланылған әдебиеттер тізімі

1. Юров В. Assembler -учебник : Санкт-Петербург, Питер, 2001.

2. Юров В. Assembler -справочник : Санкт-Петербург, Питер, 2001.

3. Черник А., Аваков С.

«Справочная книга программиста», Москва, 1991.

4. П. Абель "Язык ассемблера для IBM PC и про-

граммирования ", М. :Высшая школа,

1991

ҚОСЫМША A

1. model small

2. stack 100h

3. data

4 x1 db 25 dup(0)

5 y1 db 80 dup(0)

6 c1 db 25 dup(0)

7 d1 db 80 dup(0)

8 num1 db 100 dup(0)

9 kol dw 0

10 x db 25 dup(0)

11 y db 80 dup(0)

12 i1 db 0

13 j1 db 0

14 kol2 dw 0

15 sym db "=Molodec=Good_boy" ;

16 lose db 'Game over$'

17 time1 dw 70

18. code

19;

20delay macro time

21 local qq, ww

22;

23 mov cx, time

24;

25qq:

26 push cx

27 mov cx, 5

28;

29ww:

30 loop ww

31 pop cx

32 loop qq

33;

34endm

35;

36ust_sym macro

37;

38 push ax

39 push si

40;

41 inc kol2

42 mov si, kol2

43;

44 mov ah, i1

45 add ah, 1

46 mov i1, ah

47;

48 mov al, j1

49 add al, 2

50 mov j1, al

51;

52 mov ah, i1

53 mov x[si], ah

54 mov al, j1

55 mov y[si], al

56;

57 symbol x[si], y[si], sym[si], 111b

58;

59 pop si

60 pop ax

61;

62endm

63;

64game macro

65;

66 mov si, 0

67;

68 inc si

69 mov kol, si

70;

71 mov si, 0

72;

73 mov dl, 10

74 mov al, 40

75 mov ah, 01h

76 int 16h

77 jz aaa11

78 jne ttt11

79;

80ttt11:

81 jmp

82;

83aaa11:

84 jmp aaa1

85;

86:

87 cmp ah, 77

88 je vpravo1

89 jne q

90;

91vpravo1:

92 jmp vpravo

93;

94q:

95 cmp ah, 75

96 je vlevo1

97 jne w

98;

99vlevo1:

100 jmp vlevo

101;

102w:

103 cmp ah, 80

104 je vniz1

105 jne e

106;

107vniz1:

108 jmp vniz

109;

110e:

111 cmp ah, 72

112 je verh1

113 jne r

114;

115verh1:

116 jmp verh

117;

118r:

119 cmp al, 27

120 je exit11

121;

122exit11:

123 jmp exit1

124;

125vpravo:

126 mov si, 0

127 mov cl, 80

128 push si

129 mov si, kol2

130 mov ah, x[si]

131 mov al, y[si]

132 pop si

133;

134vp2:

135 cmp ah, x1[si]

136 je vp21

137 jne vp22

138;

139vp21:

140 cmp al, y1[si]

141 je vp23

142 jne vp22

143;

144vp23:

145 inc kol

146 mov di, kol2

147 push si

148 mov ch, x1[si]

149 mov cl, y1[si]

150 mov si, kol

151 dec si

152 mov al, sym[di]

153 mov num1[si], al

154 add cl, 2

155 mov x1[si], ch

156 mov y1[si], cl

157 pop si

158 ust_sym

159;

160vp22:

161 cmp si, kol

162 je vp3

163 jne vp4

164;

165vp3:

166 jmp vp5

167;

168vp4:

169 push si

170 symbol x1[si], y1[si], num1[si], 101b

171 pop si

172 inc si

173 jmp vp2

174;

175vp5:

176 mov si, 0

177;

178vp6:

179 cmp si, kol

180 je vp7

181 jne vp9

182;

183vp7:

184 jmp vp8

185;

186vp9:

187 mov al, x1[si]

188 mov c1[si], al

189 mov al, y1[si]

190 mov d1[si], al

191 inc si

192 jmp vp6

193;

194vp8:

195 mov si, 0

196 mov di, 1

197 mov al, y1[si]

198 add al, 2

199 mov y1[si], al

200;

201vp10:

202 cmp si, kol

203 je vp11

204 jne vp12

205;

206vp11:

207 jmp vp13

208;

209vp12:

210 mov al, c1[si]

211 mov x1[di], al

212 mov al, d1[si]

213 mov y1[di], al

214 inc si

215 inc di

216 jmp vp10

217;

218vp13:

219 mov si, kol

220 delay time1

221 symbol x1[si], y1[si], num1[si], 0

222 mov ah, 01h

223 int 16h

224 jz vp14

225 jnz vp15

226;

227vp14:

228 jmp vpravo

229;

230vp15:

231 mov ah, 10h

232 int 16h

233 cmp ah, 75

234 je vp20

235 jne vp17

236;

237vp20:

238 jmp vpravo

239;

240vp17:

241 cmp ah, 77

242 je vp19

243 jne vp18

244;

245vp19:

246 jmp vpravo

247;

248vp18:

249 jmp

250;

251vlevo:

252 mov si, 0

253 mov cl, 0

254 push si

255 mov si, kol2

256 mov ah, x[si]

257 mov al, y[si]

258 pop si

259;

260 cmp y1[si], cl

261 je vl1

262 jne vl2

263;

264vl1:

265 jmp exit1

266;

267vl2:

268 cmp ah, x1[si]

269 je vl21

270 jne vl22

271;

272vl21:

273 cmp al, y1[si]

274 je vl23

275 jne vl22

276;

277vl23:

278 inc kol

279 mov di, kol2

280 push si

281 mov ch, x1[si]

282 mov cl, y1[si]

283 mov si, kol

284 dec si

285 mov al, sym[di]

286 mov num1[si], al

287 sub cl, 2

288 mov x1[si], ch

289 mov y1[si], cl

290 pop si

291 ust_sym

292;

293vl22:

294 cmp si, kol

295 je vl3

296 jne vl4

297;

298vl3:

299 jmp vl5

300;

301vl4:

302 push si

303 symbol x1[si], y1[si], num1[si], 101b

304 pop si

305 inc si

306 jmp vl2

307;

308vl5:

309 mov si, 0

310;

311vl6:

312 cmp si, kol

313 je vl7

314 jne vl9

315;

316vl7:

317 jmp vl8

318;

319vl9:

320 mov al, x1[si]

321 mov c1[si], al

322 mov al, y1[si]

323 mov d1[si], al

324 inc si

325 jmp vl6

326;

327vl8:

328 mov si, 0

329 mov di, 1

330 mov al, y1[si]

331 sub al, 2

332 mov y1[si], al

333;

334vl10:

335 cmp si, kol

336 je vl11

337 jne vl12

338;

339vl11:

340 jmp vl13

341;

342vl12:

343 mov al, c1[si]

344 mov x1[di], al

345 mov al, d1[si]

346 mov y1[di], al

347 inc si

348 inc di

349 jmp vl10

350;

351vl13:

352 mov si, kol

353 delay time1

354 symbol x1[si], y1[si], num1[si], 0

355 mov ah, 01h

356 int 16h

357 jz vl14

358 jnz vl15

359;

360vl14:

361 jmp vlevo

362;

363vl15:

364 mov ah, 10h

365 int 16h

366 cmp ah, 75

367 je vl20

368 jne vl17

369;

370vl20:

371 jmp vlevo

372;

373vl17:

374 cmp ah, 77

375 je vl19

376 jne vl18

377;

378vl19:

379 jmp vlevo

380;

381vl18:

382 jmp

383;

384vniz:

385 mov si, 0

386 mov cl, 24

387 push si

388 mov si, kol2

389 mov ah, x[si]

390 mov al, y[si]

391 pop si

392;

393 cmp x1[si], cl

394 je vn1

395 jne vn2

396;

397vn1:

398 jmp exit1

399;

400vn2:

401 cmp ah, x1[si]

402 je vn21

403 jne vn22

404;

405vn21:

406 cmp al, y1[si]

407 je vn23

408 jne vn22

409;

410vn23:

411 inc kol

412 mov di, kol2

413 push si

414 mov ch, x1[si]

415 mov cl, y1[si]

416 mov si, kol

417 dec si

418 mov al, sym[di]

419 mov num1[si], al

420 add ch, 1

421 mov x1[si], ch

422 mov y1[si], cl

423 pop si

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Ассемблер тілінде экран және пернетақтамен өзара әрекеттесу: теория мен практикалық курстық жоба
Windows операциялық жүйесінде Win32 API арқылы Assembler тілінде бағдарламалау
Ассемблер тілінде бағдарламалау: MS-DOS пен Windows орталарында қосымшалар әзірлеу
Ассемблер тілінде бағдарламалау: синтаксис, құрылым және отладтау әдістері
Ассемблер тілінде программалау: синтаксисі, құрылымы және отладтау әдістері
Ассемблер тілінде программалау: директивалар, өрнектер және деректерді сипаттау
Turbo C тілінде жазылған Санды табу ойынының алгоритмі мен программалық жүзеге асырылуы
Ассемблер тілінде бағдарламалау: құрылымы, синтаксисі және қолданылуы
Ассемблер тілінде программалау: регистрлер, командалар мен аудару процесі
Ассемблер тілінде программалау: машиналық тіл, артықшылықтар және арифметикалық командалар
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz