Сейчас на форуме: asfa, _MBK_ (+6 невидимых)

 eXeL@B —› Вопросы новичков —› fatal error A1016: Internal Assembler Error
Посл.ответ Сообщение

Ранг: -1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 февраля 2010 10:20
· Личное сообщение · #1

Эта ошибка вылетает при множественном создании .if .else .endif
т.е. есть порог, вот делаю 50 условных переходов (деректив) - ошибки нет.
Если 51 - вылетает данная ошибка. Что делать?
Код проверял не однократно - ошибок нет.
Переходы имеют следующий вид:
Code:
  1. .if
  2.          .if                         ; начиная отсюда идет множество подобных if else endif
  3.         .else
  4.          .if
  5.          .else
  6.           .if
  7.         .else
  8.            .endif
  9.            .endif
  10.             .endif
  11. .else
  12.          .if                 ; и здесь тоже.
  13.         .else
  14.          .if
  15.          .else
  16.           .if
  17.         .else
  18.            .endif
  19.            .endif
  20.             .endif
  21. .endif




Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 14 февраля 2010 11:01 · Поправил: Kiev78
· Личное сообщение · #2

---



Ранг: -1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 февраля 2010 11:06
· Личное сообщение · #3

Kiev78
Спасибо! А не подскажеш где можно посмотреть список всех деректив???(и примеры к ним)
Асм знаю - а дерективы, плохо



Ранг: -1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 февраля 2010 11:46
· Личное сообщение · #4

Блиннн... Этот способ не подходит..... С if-фами код более гибкий...... Как устранить ошибку при компиляции??




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 14 февраля 2010 13:11
· Личное сообщение · #5

Valera

запомни: кнопка Правка специально для тебя!
предупреждение первое и последнее.



по сути вопроса:
1. попробой скомпилить в JWasm
2. судя по такому количеству If/Else в сорсе на asm'e, ты не продумал архитектуру своей программы и очень плохо понимаешь собственно asm

продумай код, и не придётся городить столько if'ов!

-----
EnJoy!




Ранг: -1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 февраля 2010 13:32 · Поправил: Valera
· Личное сообщение · #6

Jupiter
Приношу свои извинения!!!!!!!!

А по поводу продумки кода - благодарю!!!!!!!!!
А если серьезно, то я впервые пишу СЕРЬЕЗНУЮ программу на ассемблере.....
================================================================

Смею признать, что вы, Jupiter, научили меня анализировать программу и создавать, то, что нужно в компактном виде.
Ваш совет заставил меня переписать большую часть программы, из-за чего ее код уменьшился в двое. Было ~200 строк кода, а стало 98. Код стал гибче
Еще раз спасибо за такой удачно-профессиональный совет!!!!!!!!!!!




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 14 февраля 2010 23:34
· Личное сообщение · #7

Если не ошибаюсь, то ограничение на использование действует лишь для большого количества вложенных .if/.endif макрокоманд, если строить свой код, без большого количество повторяющихся вложенных условий, то ошибки не выдается.

Code:
  1.          .if
  2.          .if                         ; начиная отсюда идет множество подобных if else endif
  3.         .else
  4.          .if
  5.          .else
  6.           .if
  7.         .else
  8.            .endif
  9.            .endif
  10.             .endif
  11. .else
  12.          .if                 ; и здесь тоже.
  13.         .else
  14.          .if
  15.          .else
  16.           .if
  17.         .else
  18.            .endif
  19.            .endif
  20.             .endif
  21. .endif
  22.          .if
  23.          .if                         ; начиная отсюда идет множество подобных if else endif
  24.         .else
  25.          .if
  26.          .else
  27.           .if
  28.         .else
  29.            .endif
  30.            .endif
  31.             .endif
  32. .else
  33.          .if                 ; и здесь тоже.
  34.         .else
  35.          .if
  36.          .else
  37.           .if
  38.         .else
  39.            .endif
  40.            .endif
  41.             .endif
  42. .endif
  43.          .if
  44.          .if                         ; начиная отсюда идет множество подобных if else endif
  45.         .else
  46.          .if
  47.          .else
  48.           .if
  49.         .else
  50.            .endif
  51.            .endif
  52.             .endif
  53. .else
  54.          .if                 ; и здесь тоже.
  55.         .else
  56.          .if
  57.          .else
  58.           .if
  59.         .else
  60.            .endif
  61.            .endif
  62.             .endif
  63. .endif
  64.          .if
  65.          .if                         ; начиная отсюда идет множество подобных if else endif
  66.         .else
  67.          .if
  68.          .else
  69.           .if
  70.         .else
  71.            .endif
  72.            .endif
  73.             .endif
  74. .else
  75.          .if                 ; и здесь тоже.
  76.         .else
  77.          .if
  78.          .else
  79.           .if
  80.         .else
  81.            .endif
  82.            .endif
  83.             .endif
  84. .endif
  85.          .if
  86.          .if                         ; начиная отсюда идет множество подобных if else endif
  87.         .else
  88.          .if
  89.          .else
  90.           .if
  91.         .else
  92.            .endif
  93.            .endif
  94.             .endif
  95. .else
  96.          .if                 ; и здесь тоже.
  97.         .else
  98.          .if
  99.          .else
  100.           .if
  101.         .else
  102.            .endif
  103.            .endif
  104.             .endif
  105. .endif
  106.  
  107.          .if
  108.          .if                         ; начиная отсюда идет множество подобных if else endif
  109.         .else
  110.          .if
  111.          .else
  112.           .if
  113.         .else
  114.            .endif
  115.            .endif
  116.             .endif
  117. .else
  118.          .if                 ; и здесь тоже.
  119.         .else
  120.          .if
  121.          .else
  122.           .if
  123.         .else
  124.            .endif
  125.            .endif
  126.             .endif
  127. .endif
  128.  
  129.          .if
  130.          .if                         ; начиная отсюда идет множество подобных if else endif
  131.         .else
  132.          .if
  133.          .else
  134.           .if
  135.         .else
  136.            .endif
  137.            .endif
  138.             .endif
  139. .else
  140.          .if                 ; и здесь тоже.
  141.         .else
  142.          .if
  143.          .else
  144.           .if
  145.         .else
  146.            .endif
  147.            .endif
  148.             .endif
  149. .endif
  150.  
  151.          .if
  152.          .if                         ; начиная отсюда идет множество подобных if else endif
  153.         .else
  154.          .if
  155.          .else
  156.           .if
  157.         .else
  158.            .endif
  159.            .endif
  160.             .endif
  161. .else
  162.          .if                 ; и здесь тоже.
  163.         .else
  164.          .if
  165.          .else
  166.           .if
  167.         .else
  168.            .endif
  169.            .endif
  170.             .endif
  171. .endif
  172.  
  173.          .if
  174.          .if                         ; начиная отсюда идет множество подобных if else endif
  175.         .else
  176.          .if
  177.          .else
  178.           .if
  179.         .else
  180.            .endif
  181.            .endif
  182.             .endif
  183. .else
  184.          .if                 ; и здесь тоже.
  185.         .else
  186.          .if
  187.          .else
  188.           .if
  189.         .else
  190.            .endif
  191.            .endif
  192.             .endif
  193. .endif
  194.  
  195.          .if
  196.          .if                         ; начиная отсюда идет множество подобных if else endif
  197.         .else
  198.          .if
  199.          .else
  200.           .if
  201.         .else
  202.            .endif
  203.            .endif
  204.             .endif
  205. .else
  206.          .if                 ; и здесь тоже.
  207.         .else
  208.          .if
  209.          .else
  210.           .if
  211.         .else
  212.            .endif
  213.            .endif
  214.             .endif
  215. .endif
  216.  
  217.          .if
  218.          .if                         ; начиная отсюда идет множество подобных if else endif
  219.         .else
  220.          .if
  221.          .else
  222.           .if
  223.         .else
  224.            .endif
  225.            .endif
  226.             .endif
  227. .else
  228.          .if                 ; и здесь тоже.
  229.         .else
  230.          .if
  231.          .else
  232.           .if
  233.         .else
  234.            .endif
  235.            .endif
  236.             .endif
  237. .endif
  238.  
  239.          .if
  240.          .if                         ; начиная отсюда идет множество подобных if else endif
  241.         .else
  242.          .if
  243.          .else
  244.           .if
  245.         .else
  246.            .endif
  247.            .endif
  248.             .endif
  249. .else
  250.          .if                 ; и здесь тоже.
  251.         .else
  252.          .if
  253.          .else
  254.           .if
  255.         .else
  256.            .endif
  257.            .endif
  258.             .endif
  259. .endif
  260.  
  261.          .if
  262.          .if                         ; начиная отсюда идет множество подобных if else endif
  263.         .else
  264.          .if
  265.          .else
  266.           .if
  267.         .else
  268.            .endif
  269.            .endif
  270.             .endif
  271. .else
  272.          .if                 ; и здесь тоже.
  273.         .else
  274.          .if
  275.          .else
  276.           .if
  277.         .else
  278.            .endif
  279.            .endif
  280.             .endif
  281. .endif


-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes



 eXeL@B —› Вопросы новичков —› fatal error A1016: Internal Assembler Error
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати