ماشین برنامه ذخیره‌شده با دسترسی تصادفی
مرحلهٔ اجرا، JZ_routine

اکنون ماشینِ حالت می‌داند که کدام دستورالعمل برنامه‌ای را اجرا نماید؛ در واقع به ردیف فرمان‌های "JZ_routine" جهش یافته‌است. فرمان JZ دارای دو عملوند است، (i) رقم رجیستر جهت آزمون، و (ii) آدرسی که در صورت موفقیت‌آمیز بودن آزمون (خالی بودن حفره) باید به آن مراجعه نمود.
واکشی عملوند - کدام رجیستر را جهت خالی بودن آزمایش کنیم؟ : مشابه مرحلهٔ واکشی، ماشینِ حالت محدود، مقادیر رجیستری را که توسط PC به آن اشاره شده، مثلاً حفرهٔ #۶، را به درون رجیستر فرمان برنامه‌ایِ #۲ منتقل می‌کند. سپس از مقادیر رجیستر #۲ برای اشاره به رجیستر جهت آزمایش شدن برای صفر، مثلاً رجیستر #۱۸، استفاده می‌کند. حفرهٔ #۱۸ محتوی عدد "n" است. اکنون برای انجام آزمایش، ماشینِ حالت از مقادیر PIR جهت کپی غیرمستقیم رجیستر #۱۸ درون یک رجیستر یدکی، #۳، استفاده می‌کند؛ بنابراین دو احتمال وجود دارد، (ia) رجیستر #۱۸ خالی است، (ib) رجیستر #۱۸ خالی نیست.
(ia) در صورتی‌که رجیستر #۳ خالی باشد، ماشینِ حالت به (ii) دومین واکشی عملوند، جهش می‌یابد (واکشی آدرس جهش به).
(ib) در صورتی‌که رجیستر #۳ خالی نباشد، ماشین حالت می‌تواند (ii) دومین واکشی عملوند را نادیده بگیرد. این کار به سادگی PC را دو بار کاهش می‌دهد و سپس بدون قید و شرط به مرحلهٔ واکشیِ فرمان، یعنی جاییکه فرمان برنامه‌ای #۸ را واکشی می‌کند (DEC)، بازمی‌گردد.
(ii) واکشی عملوند – آدرس جهش به. اگر رجیستر #۳ خالی باشد، ماشینِ حالت اقدام به استفاده از PC جهت کپی غیرمستقیم مقادیر رجیستری که به آن اشاره دارد (#۸) به درون خود، می‌کند. اکنون PC آدرس "جهش به" ۱۵ را نگه می‌دارد. سپس ماشینِ حالت بدون قید و شرط به مرحلهٔ واکشی فرمان بازمی‌گردد، یعنی جاییکه فرمان برنامه‌ای #۱۵ را واکشی می‌نماید (HALT).
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|  |  |  | PC | IR |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
|  |  | hole # → | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ | ۸ | ۹ | ۱۰ | ۱۱ | ۱۲ | ۱۳ | ۱۴ | ۱۵ | ۱۶ | ۱۷ | ۱۸ | ۱۹ |
|  |  | program, parameters → | ۵ |  |  |  | JZ | ۱۸ | ۱۵ | DEC | ۱۸ | INC | ۱۹ | JZ | ۱۵ | ۵ | H |  |  | n |  |
|  |  | encoded program → | ۵ |  |  |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| step |  | state machine instructions ↓ |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
: 
| ۹   | JZ_routine   | INC 1 | [۶] | ۳ |  |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۰   |   | CPY <<1>>,<2> | 6 i | [۱۸] |  |  | ۳ | [۱۸] | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۱   | test hole:   | CPY <<2>>,<3> | ۶ | 18 i | [n] |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | [n]   |  |
| ۱۲   | test hole:   | JZ 3, jump | ۶ | 18 i | [n] |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
|   |   |  |  |  | n |  |  |  |  |  |  |  |  |  |  |  |  |  |  | n   |  |
| ۱۳   | no_jump:   | INC 1 | [۷] | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۴   |   | INC 1 | [۸] | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۵   |   | J fetch_instr | ۸ | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱   | fetch_instr:   | CPY <<1>>,<2> | 8 i | [۲] | n |  | ۳ | ۱۸ | ۱۵ | [۲] | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۲   | parse:   | etc. |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |   |  |
|   |   |  |  |  |  |   |  |  |  |  |  |  |  |  |  |  |  |  |  |   |  |
| ۱۳   | jump:   | INC 1 | [۷] | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۴   |   | CPY <<1>>,<1> | [۱۵] | ۱۸ | n |  | ۳ | ۱۸ | [۱۵] | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| 15 |  | J fetch_instr | ۱۵ | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| ۱   | fetch_instr:   | CPY <<1>>,<2> | 15 i | [۰] | n   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | [۰] |  |  | n   |  |
| ۲   | parse:   | etc.   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|  |  |  | PC | IR |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
|  |  | hole # → | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ | ۸ | ۹ | ۱۰ | ۱۱ | ۱۲ | ۱۳ | ۱۴ | ۱۵ | ۱۶ | ۱۷ | ۱۸ | ۱۹ |
|  |  | program, parameters → | ۵ |  |  |  | JZ | ۱۸ | ۱۵ | DEC | ۱۸ | INC | ۱۹ | JZ | ۱۵ | ۵ | H |  |  | n |  |
|  |  | encoded program → | ۵ |  |  |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| step |  | state machine instructions ↓ |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
: 
| ۱۵   |   | J fetch_instr | ۸ | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۶ | fetch_instr:   | CPY <<1>>,<2> | 8 i | [۲] | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۷   | parse:   | JZ 2,halt | ۸ | ۲ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۸   |   | 2-Dec | ۸ | [۱] | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۱۹   |   | JZ 2, inc_routine: | ۸ | ۱ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| ۲۰   |   | 2-Dec | ۸ | [۰] | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| 21 |  | JZ 2, dec_routine: | ۸ | ۰! | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| ۲۲   | dec_routine:   | INC 1 | ۹ | ۰ | n   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n   |  |
| 23 |  | CPY <<1>>,<2> | 9 i | ۱۸ | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| 24 |  | CPY <<2>>,<3> | ۹ | 18 i | n |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| ۲۵   |   | JZ 3,*+۲ | ۹ | ۱۸ | n   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n   |  |
| 26 |  | .DEC 3 | ۹ | ۱۸ | n-1 |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n |  |
| 27 |  | CPY <3>,<<2>> | ۹ | 18 i | n-1 |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 |  |
| 28 |  | INC 1 | ۱۰ | ۱۸ | n-1 |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 |  |
| ۲۹   |   | J fetch_instr | ۱۰ | ۱۸ | n-1   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n-1   |  |
|   |   |  |  |  |   |  |  |  |  |  |  |  |  |  |  |  |   |   |  |   |  |
| ۳۰ | fetch_instr:   | CPY <<1>>,<2> | 10 i | ۱ | n-1   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n-1   |  |
| ۳۱   | parse:   | JZ 2,halt | ۱۰ | ۱ | n-1   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n-1   |  |
| ۳۲   |   | 2-Dec | ۱۰ | ۰ | n-1   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n-1   |  |
| ۳۳   |   | JZ 2,inc_routine: | ۱۰ | ۰! | n-1   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n-1   |  |
| 34 | inc_routine: | INC 1 | ۱۱ | ۰ | n-1 |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 |  |
| 35 |  | CPY <<1>>,<2> | 11 i | ۱۹ | n-1 |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 |  |
| 36 |  | CPY <<2>>,<3> | ۱۱ | 19 i | ۰ |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 | ۰ |
| 37 |  | INC 3 | ۱۱ | ۱۹ | ۱ |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 | ۰ |
| 38 |  | CPY <3>,<<2>> | ۱۱ | 19 i | ۱ |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 | ۱ |
| 39 |  | INC 1 | ۱۲ | ۱۹ | ۱ |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 | ۰ |
| 40 |  | J fetch_instr | ۱۲ | ۱۹ | ۱ |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰ |  |  | n-1 | ۰ |
| ۴۱ | fetch_instr:   | etc. | ۱۲ | ۱۹ | ۱   |  | ۳ | ۱۸ | ۱۵ | ۲ | ۱۸ | ۱ | ۱۹ | ۳ | ۱۵ | ۵ | ۰   |   |  | n-1 | ۰ |