3.2. Разработать тестовую программу для диагностирования заданной принципиальной электрической схемы устройства ЧПУ.
Тест программа – это программа позволяющая обнаружить элемент устройства, в котором имеется неисправность или группу элементов, в которую входит неисправный элемент.
Тестовая программа в Ассемблере:
M7: MOV # 1, R2
MOV # 161000, R1
M1: TSTB @ # 160776
BPL M1
M4: MOV (R5)+, R3
MOV (R5)+, R4
JSR R7, @ # M2
JSR R7, @ # M3
INC R2
CMP # 11, R2
BNE M4
MOV # 100, R0
M5: MOV B # 40, (R1)+
DEC R0
BNE M5
MOV # 20, @ # 160776
CLR @ # 160776
MOV # 16000, R2
M6: SUB # 1, R2
BNE M6
BR M7
M2: MOV # 10, R0
MOV B # 104, (R1)+
B 15 # 60, R2
MOV B R2, (R1)+
MOV B # 40, (R1)+
BIC # 60, R2
MOV R2, -(R6)
MOV R5, -(R6)
M8: CLR R2
MOV # 4, R5
M7: ASL R3
ROL R4
ROL R2
DEC R5
BNE M7
BTS # 60, R2
MOV B R2, (R1)+
DEC R0
BNE M8
MOV (R6)+, R5
MOV (R6)+, R2
RTS R7
M3: MOV # 5, R0
M9: MOV B # 40, (R1)+
DEC R0
BNE M9
RTS R7
HALT
MOV # 161000, R1 – содержимое ячейки 161000 пересылается в регистр R1;
TSTB @ # 160776 – проверяется содержимое ячейки 160776;
BPL M1 – ветвление, переход на метку М1, если плюс;
JSR R7, @ # M2 – перейти к подпрограмме по метке М2;
CMP # 11, R2 – сравнивается содержимое регистра R2 с числом 11;
BNE M4 – ветвление, переход на метку М4, если не равно нулю;
DEC R0 – из содержимого регистра R0 вычитается единица;
BR M7 – ветвление, безусловный переход на метку М7;
SUB # 1, R2 – из содержимого регистра R2 вычитается единица.
Перевод данной тест – программы из языка Ассемблер в машинные коды осуществляется с помощью специальных таблиц, содержащих наименование команд и их кодов. Например, команда BNE имеет код 001000, команда JMP имеет код 000100. MOV имеет код 15500, где 55 – поле адресации операнда источника, 00 – поле адресации операнда приёмника.
Тестовая программа в машинных кодах:
400/012702
402/000001
404/012701
406/161000
410/105737
412/160776
414/100375
416/012705
420/167700
422/012503
424/012504
426/004737
430/000510
432/004737
436/000602
440/005202
442/022702
444/000011
446/001366
450/012700
452/000100
454/112721
456/000040
460/005300
462/001374
464/012737
466/000020
470/160776
472/005037
474/160776
476/012702
500/016000
502/162702
504/000001
506/001375
510/000734
512/012700
514/000010
516/112721
520/000104
522/052702
524/000060
526/110221
530/112721
532/000040
534/042702
536/000060
540/010246
542/010546
546/012705
550/000004
552/006303
554/006104
556/006102
560/005305
562/001373
564/052702
566/000060
570/110221
572/005300
574/001363
576/012605
600/012602
602/000207
604/012700
606/000005
610/112721
612/000040
614/005300
616/001374
620/000207
622/000000
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.