Редактирование:
(LITERAL)
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == Литералы в области данных — целые 16-битные числа со знаком. В [[Каллисто|Каллисто 1.0]] тело словарной статьи для (LITERAL) содержит два «подпольных» [[CFA|токена]] LITP и LITB, позволяющие использовать беззнаковые 16- и 8-битные литералы в [[Память программ|памяти программ]]: <pre> 586 ;#xLITERAL 587 ; (LITERAL) ( −− x ) Код периода выполнения для литерала. 588 ; В шитом коде за (LITERAL) идёт двухбайтовое целое со знаком в шестнадцатеричном формате. 589 LLIT: .DB 9 590 .TEXT "(LITERAL)" 591 .DW LQBREAK 592 LITD: .DW JLITD 593 JLITD: KRM6 RME ∗ KRM6 594 PLUSKM3M: + ; Код повторно используется обработчиком CONSTANT 595 KM3 ; PUSH MEMW[RI++] 596 32768 − KX>=09 ; Если число положительное, NEXT 597 FANS − PKM03 KGOTO9 ; Обработка отрицательных чисел, NEXT 598 LITP: .DW JLITP ; Литералы в области памяти программ 599 JLITP: PPRM9044 RME ∗ PPRM9044 + ; Все литералы в области программ положительные! 600 KM3 KGOTO9 ; PUSH MEMW[RI++] 601 LITB: .DW JLITB 602 JLITB: PPRM9044 KM3 KGOTO9 ; Специальный байтовый литерал для памяти программ. </pre> Реализации из SP-Forth 4.20: <pre> : TC-LIT, S" DUP" TC-FINDOUT INLINE, OPT_INIT SetOP 0B8 C, , OPT \ MOV EAX, # OPT_CLOSE ; </pre> <pre> : LIT, ( W -> ) ['] DUP INLINE, OPT_INIT SetOP 0B8 C, , OPT \ MOV EAX, # OPT_CLOSE ; </pre> === Советская реализация === У Баранова-Ноздрунова приводится следующее определение слова (LITERAL) (стр. 53): : (LITERAL) ( ---> A ) I @ R> 2+ >R ; Слово (LITERAL) в ФОРТ-ЕС и FORTH ИТЭФ было [[примитив]]ом и называлось LIT Вот его описание и определение из ФОРТ-ЕС: <PRE> LIT *K ->W ПОМЕСТИТЬ НА СТЕК СЛЕДУЮЩИЙ КОД 23 Экран номер 23 ( 31.03.84 LIT 2LIT LITERAL 2LITERAL SPACE SPACES ) CODE LIT ( ->W ) RW1 0 (, RI RFORTH LH, RI RTWO AR, PUSHRW1 B, END-CODE </PRE> Вот его определение из FORTH ИТЭФ: <PRE> HEAD 203Q,'LI',324Q,LIT ; LIT LODSW PUSH AX NEXT </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице