Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте или
создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Правка может быть отменена.
Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия |
Ваш текст |
Строка 50: |
Строка 50: |
| 2016 FILL1: KM5 FL0 FILL1 | | 2016 FILL1: KM5 FL0 FILL1 |
| 2017 KGOTO9 | | 2017 KGOTO9 |
| </pre>
| |
| Реализация из SP-Forth 4.20:
| |
| <pre>
| |
| CODE FILL ( c-addr u char -- ) \ 94
| |
| \ Если u больше нуля, заслать char в u байтов по адресу c-addr.
| |
| MOV EDX, EDI
| |
| MOV ECX, [EBP]
| |
| MOV EDI, 4 [EBP]
| |
| CLD
| |
| \ можем ли заполнять DWORD?
| |
| MOV EBX, ECX
| |
| AND EBX, # 3
| |
| JNZ @@1 \ низя
| |
| \ сформируем DWORD
| |
| MOV EBX, EAX
| |
| SHL EAX, # 8
| |
| OR EAX, EBX
| |
| SHL EAX, # 8
| |
| OR EAX, EBX
| |
| SHL EAX, # 8
| |
| OR EAX, EBX
| |
| MOV EBX, ECX
| |
|
| |
| SAR ECX, # 2
| |
| REP STOS DWORD
| |
| MOV ECX, EBX
| |
| AND ECX, # 3
| |
| @@1:
| |
| REP STOS BYTE
| |
| MOV EDI, EDX
| |
| LEA EBP, 0C [EBP]
| |
| MOV EAX, -4 [EBP]
| |
| RET
| |
| END-CODE
| |
| </pre> | | </pre> |
|
| |
|