"justify"> 56 xor ax, ax; обнулити акумулятор
57 mov si, ax; вказати на останній введений елемент
58 sti; дозволити переривання по входу INTR
59 hlt; перевести МП в режим В«зупиненняВ»
60 init ENDP
61 test PROC NEAR; підпрограма тестування роботи процесора
62 mov ax, 5; перевірка суматора
63 mov bx, ax
64 mov cx, ax
mov dx, ax
add ax, ax
cmp ax, 10
jne error_cpu
add bx, bx
cmp bx, ax
jne error_cpu
add cx, cx
cmp cx, ax
jne error_cpu
add dx, dx
cmp dx, ax
jne error_cpu
mov ah, 11111111b; перевірка сдвігатель
mov cx, 8
shift:
shr ah, 1
jnc error_cpu
loop shift
ret
error_cpu:
86 mov si, 1; вказати на зміщення в області виведення
87 mov ds: [si], FFFFh; помістити в обл. виводу значення коду помилки
88 int 32; виклик п/програми виведення
89 jmp error_cpu
90 test ENDP
91 test_rom PROC NEAR; підпрограма тестування ПЗУ
92 mov ax, ROM; початковий адресу ПЗУ - F4000h
93 mov es, ax
94 mov si, 0; тест з клітинки 2
95 xor ax, ax; обнулити акумулятор
96 mov cx, BFFFh; лічильник циклу тесту (48Кбайт -1)
count:
add ax, es: [si]; додати до суми вміст поточної комірки
inc si; пересунути покажчик на наступну
loop count; повторювати в циклі
cmp al, controlsum; порівняти отриману суму з еталонною
102