Редактирование:
2SWAP
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 1891 ;#TwoSWAP 1892 ; 2SWAP ( t z y x −− y x t z ) Обменять две пары. 1893 LDSWAP: .DB 5 1894 .TEXT "2SWAP" ; ( dd1 dd2 −− dd2 dd1 ) 1895 .DW LSWAP 1896 DSWAP: .DW JDSWAP ; Поменять местами верхние две пары чисел в стеке. 1897 JDSWAP: RM3 M8 2 + MA 1898 KRMA KRM8 KMA <−> KM8 1899 RM3 1 + M8 2 + MA 1900 KRMA KRM8 KMA <−> KM8 1901 KGOTO9 </pre> Реализация из SP-Forth 4.20: <pre> CODE 2SWAP ( x1 x2 x3 x4 -- x3 x4 x1 x2 ) \ 94 \ Поменять местами две верхние пары ячеек. MOV ECX, [EBP] MOV EDX, 4 [EBP] MOV EBX, 8 [EBP] MOV 8 [EBP], ECX MOV 4 [EBP], EAX MOV [EBP], EBX MOV EAX, EDX RET END-CODE </pre> === Советская реализация === В ядре ФОРТ-ЕС слово 2SWAP было определено через [[примитив]] ROLL <PRE> 2SWAP WD1,WD2->WD2,WD1 ОБМЕНЯТЬ МЕСТАМИ ДВА 12 ВЕРХНИХ ДВОЙНЫХ ЗНАЧЕНИЯ Экран номер 12 ( 31.03.86 ROLL PICK 2DUP 2DROP 2SWAP 2OVER 2ROT ) : 2SWAP ( WD1,WD2->WD2,WD1) 3 ROLL 3 ROLL ; </PRE> В FORTH ИТЭФ слово 2SWAP было [[примитив]]ом, вот его определение: <PRE> HEAD 205Q,'2SWA',320Q,DSWAP ; 2SWAP POP AX POP CX MOV BX, SP MOV DX,WORD PTR SS:[BX+2] PUSH DX MOV DX,WORD PTR SS:[BX] PUSH DX MOV WORD PTR SS:[BX],AX MOV WORD PTR SS:[BX+2],CX NEXT </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице