0!
Перейти к навигации
Перейти к поиску
0! (обнулить, читается «ноль-присвоить») — фортовское слово Каллисто. Обнулить ячейку памяти.
0! ( a −− ) Обнулить. Записывает ноль в ячейку с адресом a.
Записывает число 0 в ячейку с адресом a.
Ввод слова 0![править]
В режиме NUM нажмите две клавиши 0 П
Реализация[править]
Если адрес a указывает на байтовые регистры (от 11000 до 18167), запись нуля происходит в два соседних регистра, по адресу a и по адресу a+1.
2259 ;#ZeroStore 2260 ; 0! ( a −− ) Обнулить. Записывает ноль в ячейку с адресом a. 2261 ; Записывает число 0 в ячейку с адресом a. Может обнулять десятичные регистры, но не регистры функций. 2262 LZSTORE: .DB 2 2263 .TEXT "0!" ; ( адрес −− ) 2264 .DW LSTORE 2265 ZSTORE: .DW JZSTORE 2266 JZSTORE: RM3 M8 1 + M3 2267 KRM8 1 EE 4 − KX>=09 ; Защита от записи в память программ 2268 M8 M5 1000 − FX>=0 ZSTORE1 ; 1000 быстрее, чем 1 ВП 3 2269 Cx KM8 KM5 KGOTO9 ; Обнулить двоичную ячейку 2270 ZSTORE1: Cx KM8 KGOTO9 ; Обнулить десятичный регистр
Реализация из SP-Forth 4.20:
CODE 0! ( A -> ) MOV DWORD [EAX], # 0 MOV EAX, [EBP] LEA EBP, 4 [EBP] RET END-CODE … : OFF 0! ;
Советская реализация[править]
Удобное слово 0! взято из ФОРТ-ЕС. Вот его описание и определение:
0! * А-> ЗАСЛАТЬ НУЛЬ ПО АДРЕСУ А 11 Экран номер 11 ( 31.03.86 ! 0! @ С! С@ , С, EXECUTE ) : 0! ( A-> ) 0 SWAP ! ;
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |