/p>
TrueTrue
. Циклу
dlina_1 = число введених знаків
dlina_2 = число введених знаків
; (dlina_1> dlina_2)
... = dlina_2 bl, dlina_1
metka: di es, BLOCK_SEG1
... di, bx metkadi, 2cl, adg: al, buf3 [di] di
... LViv
P = di> 0 bx> 0 = (di! = bx) = (di = bx)
S = (es = BLOCK_SEG1 di = di +1) = (bx-di) = (bx> 0)
В В
di = bx
Покажемо, що цикл завжди завершується, і продемонструємо істинність наступних тверджень:
1) P-> Inv
di> 0 bx> 0 bx> 0True
2) Inv {B} Inv
bx> 0 {di! = bx} bx> 0 True
3) Inv B {S} Inv
bx> 0 di! = bx {es = BLOCK_SEG1 di = di +1} bx> 0> 0 {es = BLOCK_SEG1} bx> 0
bx> 0 -> bx> 0True
) Inv! B = Q> 0 di = bx -> di = bxTrue
) D = B Inv {S} D <
(bx-di =) (di! = bx) (bx> 0) {es = BLOCK_SEG1 di = di +1} (bx-di <)
(bx-di =) (di! = bx) (bx> 0) -> bx - (di +1)
) D = {B} D <= - di = {di! = bx} bx-di <= - di = -> bx - di <= True
) D = 0 Inv ->! Bdi = 0 bx> 0 ->!! (di = bx) di = 0 bx> 0 -> di = bxTrue
Мережі Петрі
Для побудови мережі Петрі була обрана основна програма
В
Операційна семантика
Для написання операційної семантики була обрана команда dec.
Будемо використовувати одну стрічку L1 і алфавіт {0,1, #}.
L1:
1. q0101R1q01
2. q0111R1q01
3. q01 # 1L1q11
4. q1101q2111
5. q2111L1q11
6. q1111q3101
7. q11Top1R1q31
q3 - стан, при якому виконується зупинка роботи даної машини Тьюринга
Висновок
В результаті виконаної роботи були вивчені основи програмування мовою Асемблер, операційна семантика, проведена верифікація лінійної ділянки підпрограми, ділянок з розгалуженням і циклом, вивчені мережі Петрі, складена схема підпрограми. Також була вивчена робота з упакованими десятковими числами. p align="justify"> Додаток. Лістинг програми
програма обчислення лінійний графічний