Редактирование:
FOR
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
=== Реализация цикла DO…LOOP в SP-Forth 4.20 === <pre> ( inline'ы для компиляции циклов ) CODE C-DO LEA EBP, 8 [EBP] A; BA C, 0000 W, 8000 W, \ MOV EDX , # 80000000 SUB EDX, -8 [EBP] LEA EBX, [EDX] [EAX] MOV EAX, -4 [EBP] MOV EDX, EDX \ FOR OPT \ PUSH EDX \ PUSH EBX RET END-CODE CODE C-?DO CMP EAX, -8 [EBP] JNZ SHORT @@1 \ SIF 0= MOV EAX, -4 [EBP] JMP EBX \ STHEN @@1: PUSH EBX A; BB C, 0000 W, 8000 W, \ MOV EBX , # 80000000 SUB EBX, -8 [EBP] PUSH EBX \ 80000000h-to ADD EBX, EAX PUSH EBX \ 80000000H-to+from MOV EAX, -4 [EBP] RET END-CODE … : DO \ 94 ?COMP S" C-DO" TC-FINDOUT INLINE, SetOP 0x68 C, DP @ 4 ALLOT \ PUSH # SetOP 0x52 C, \ PUSH EDX SetOP 0x53 C, \ PUSH EBX 4 ALIGN-NOP DP @ DUP TO :-SET ; IMMEDIATE : ?DO \ 94 CORE EXT ?COMP OP0 @ :-SET UMAX TO :-SET S" NIP" TC-FINDOUT DUP INLINE, INLINE, 0xBB C, DP @ 4 ALLOT S" C-?DO" TC-FINDOUT INLINE, DP @ DUP TO :-SET ; IMMEDIATE : LOOP \ 94 ?COMP 24 04FF W, C, \ inc dword [esp] HERE 2+ - DUP SHORT? SetOP SetJP IF 71 C, C, \ jno short ELSE 4 - 0F C, 81 C, , \ jno near THEN SetOP 0C24648D , \ lea esp, 0c [esp] *DP@ SWAP ! ; IMMEDIATE : +LOOP \ 94 ?COMP 0x810FFC45 0x8B240401 \ ADD [ESP] , EAX \ MOV EAX , FC [EBP] \ JNO OP0 @ :-SET UMAX TO :-SET POSTPONE [ S" ' NIP" EVALUATE ] INLINE, SetOP , , -5 ALLOT SetOP 3 ALLOT SetOP 2 ALLOT DP @ CELL+ - , SetOP 0x0C24648D , \ lea esp, 0xC [esp] *DP@ SWAP ! ; IMMEDIATE </pre>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице