Как мы все знаем™ в юниксных ассемблерах существует возможность вводить локальные метки, обозначаемые цифрами, и ссылаться на ближайшую метку с данной цифрой, дополнительно указывая после цифры b или f, что значит "назад" и "вперёд".
Например (цитата из какого-то юниксного бутлоадера),
0:movzwl (r9)+,r0 # empty entry?beql 2f # yes, skip itclrl r11: cmpb (r9)[r1],bootname[r1] # MicroVAX II doesn't have cmpcbneq 2faoblss $DIRSIZ,r1,1bbrb diryes # the name we want2: acbw $FSBSIZE-1,$DIRSIZ,r9,0b
Цифры для меток можно было переиспользовать сколько угодно раз.
Таким образом можно было заботиться о придумывании гораздо меньшего количества имён для меток. Похожая по духу фича была и в DEC-овском ассемблере,
а вот в IBM-овском ничего подобного не было, потому что считалось, что с помощью макросов можно сделать что угодно.
Предлагается задача: реализовать на макроассемблере IBM/360 (он же БЕМШ) локальные метки в стиле юниксных, так, чтобы можно было писать, например,
0 МЕТ...МПО 0,b запятая для удобства разбора аргументов макро...МПЕ 1,f...1 МЕТ...Есть ещё кто помнит, как это делается?
--Leo
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/dc2f2d2a-cfd6-48c8-ae27-1b5538f4b129n%40googlegroups.com.
Таким образом можно было заботиться о придумывании гораздо меньшего количества имён для меток. Похожая по духу фича была и в DEC-овском ассемблере,ЕМНИП, это я впервые у Кнута в MIXAL ведел.
а вот в IBM-овском ничего подобного не было, потому что считалось, что с помощью макросов можно сделать что угодно.
Предлагается задача: реализовать на макроассемблере IBM/360 (он же БЕМШ) локальные метки в стиле юниксных, так, чтобы можно было писать, например,
0 МЕТ...МПО 0,b запятая для удобства разбора аргументов макро...МПЕ 1,f...1 МЕТ...Есть ещё кто помнит, как это делается?Ох, сомнительно мне что-то, что ссылки вперёд получится сделать. А что такое МПО и МПЕ? Ясно, что надо &SNDX использовать.