- •Введение:
- •Задание на курсовую работу:
- •Постановка задачи:
- •Структура входных и выходных данных:
- •Описание структуры входной и выходной информации:
- •Разработка и описание алгоритма:
- •Разработка и описание принципиальной схемы алгоритма:
- •263 Mvi m, 0; поместить 0 в nproc
- •301 Ani 63; выделить 6 младших битов
- •306 In port a1
- •307 Ani 31; выделить 5 младших битов
- •252 In port с1(4-7); ввод с порта c1(4-7)
- •253 Ani 112; выделить 5-й, 6-й и 7-й биты
- •465 Inx hl; переход к сост-ю персонажа
- •35 Ldax hl; звание I-го персонажа в a
- •281 Dcr m; уменьш. Старш. Байт ct1
- •Пример работы алгоритма:
- •Разработка и описание структурной схемы мпс:
- •Разработка и описание функциональной схемы мпс:
- •Заключение:
252 In port с1(4-7); ввод с порта c1(4-7)
253 Ani 112; выделить 5-й, 6-й и 7-й биты
254
255 LXI HL, ОЗУ + 57; адр. переменной NPROC
256
257
258 CPI 64; А = 01000000?
259
INIT + 260 JNZ INIT + 268; к следующей проверке
261
262
263 Mvi m, 0; поместить 0 в nproc
264
265 JMP INIT + 285; выход из блока проверок
266
267
268 CPI 32; А = 00100000?
269
INIT + 270 JNZ INIT + 287
271
272
273 MVI M, 1
274
275 JMP INIT + 285
276
277
278 CPI 16; А = 00010000?
279
INIT + 280 JNZ INIT + 285
281
282
283 MVI M, 2
284
285 LXI HL, 0
286
287
288 SHLD ОЗУ + 11; CT2 = 0;
289
INIT + 290
291 SHLD ОЗУ + 13; CT3 = 0;
292
293
294 LXI HL, ОЗУ + 75; адр. 1-го персонажа
295
296
297 SHLD ОЗУ + 9; CT1 на 1-го персонажа
298
299
INIT + 300 IN port B1
301 Ani 63; выделить 6 младших битов
302
303 STA ОЗУ + 16; сохр. аккум. в старшем байте RES
304
305
306 In port a1
307 Ani 31; выделить 5 младших битов
308
309 STA ОЗУ + 19; сохр. в старшем байте TMP
INIT + 310
311
312 LHLD ОЗУ + 11; загр. в HL знач-е CT2
313
314
315 INX HL; CT2++
316 SHLD ОЗУ + 11
317
318
319 LDA ОЗУ + 16; загр. в аккум. старш. байт RES
INIT + 320
321
322 RAR; >>RES>>
323 STA ОЗУ + 16
324
325
326 JNC INIT + 312; в начало цикла
327
328
329 LDA ОЗУ + 12; загр. в аккум. младш. байт CT2
INIT + 330
331
332 CPI 1; А = 1?
333
334 JNZ INIT + 348; к следующей проверке
335
336
337 LHLD ОЗУ + 9; содержимое CT1 в HL
338
339
INIT + 340 MVI M, 93; A(старший байт адреса имени1)
341
342 INX HL; HL++
343 MVI M, 164; A(младший байт адреса имени1)
344
345 JMP INIT + 428; выход из блока проверок
346
347
348 CPI 2; А = 2?
349
INIT + 350 JNZ INIT + 364
351
352
353 LHLD ОЗУ + 9
354
355
356 MVI M, 93; A(старший байт адреса имени2)
357
358 INX HL; HL++
359 MVI M, 172; A(младший байт адреса имени2)
INIT + 360
361 JMP INIT + 428
362
363
364 CPI 3 А = 3?
365
366 JNZ INIT + 380
367
368
369 LHLD ОЗУ + 9
INIT + 370
371
372 MVI M, 93; A(старший байт адреса имени3)
373
374 INX HL; HL++
375 MVI M, 182; A(младший байт адреса имени3)
376
377 JMP INIT + 428
378
379
INIT + 380 CPI 4 А = 4?
381
382 JNZ INIT + 396
383
384
385 LHLD ОЗУ + 9
386
387
388 MVI M, 93; A(старший байт адреса имени4)
389
INIT + 390 INX HL; HL++
391 MVI M, 189; A(младший байт адреса имени4)
392
393 JMP INIT + 428
394
395
396 CPI 5; А = 5?
397
398 JNZ INIT + 412
399
INIT + 400
401 LHLD ОЗУ + 9
402
403
404 MVI M, 93; A(старший байт адреса имени5)
405
406 INX HL; HL++
407 MVI M, 194; A(младший байт адреса имени5)
408
409 JMP INIT + 428
INIT + 410
411
412 CPI 6; А = 6?
413
414 JNZ INIT + 428
415
416
417 LHLD ОЗУ + 9
418
419
INIT + 420 MVI M, 93; A(старший байт адреса имени6)
421
422 INX HL; HL++
423 MVI M, 204; A(младший байт адреса имени6)
424
425 JMP INIT + 428
426
427
428 LHLD ОЗУ + 9
429
INIT + 430
431 INX HL
432 SHLD ОЗУ + 9; CT1++
433
434
435 LHLD ОЗУ + 13; загр. в HL содержимое CT3
436
437
438 INX HL
439 SHLD ОЗУ + 13; CT3++
INIT + 440
441
442 LDA ОЗУ + 19; старш. байт TMP в аккум.
443
444
445 RAR; >>TMP>>
446 STA ОЗУ + 19;
447
448
449 JNC INIT + 435; переход в начало цикла
INIT + 450
451
452 LDA ОЗУ + 14; младш. байт CT3 в аккум.
453
454
455 CPI 1; А = 1?
456
457 JNZ INIT + 474; переход к следующей проверке
458
459
INIT + 460 LHLD ОЗУ + 9; загрузить в HL знач-е CT1
461
462
463 MVI M, 1; звание i-го персонажа = 1
464
