DUMP

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

DUMP (дамп) — стандартное слово Каллисто.

DUMP           ( a c −− )                           Дамп. Вывести c байт от адреса a.
Пример работы слова DUMP

Отображает c адресных единиц памяти, начиная с адреса a

Ввод слова DUMP

В режиме ЛАТ последовательно нажмите четыре клавиши  K   3   ÷   6 

DUMP в стандарте ANS Forth

 15.6.1.1280   DUMP                                                        TOOLS
            ( addr u -- )
            Отображает содержание u последовательных адресов, начинающихся с 
            addr. Формат отображения зависящий от реализации.

            DUMP может быть реализовано, с использованием слов вывода 
            отображаемых чисел. Следовательно, его использование может 
            разрушать временную область, идентифицированную #>.

        См.: 3.3.3.6 Другие Временные Области.

История

В 1968 году Чак Мур работал в Mohasco Industries, Inc (Amsterdam NY, англ.). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово DUMP

DUMP был необходим для просмотра памяти.

В Каллисто работают классические фразы Форта HEX DUMP и DECIMAL DUMP

DUMP в предыдущем стандарте Forth-83 (англ.)

     DUMP         addr u --                     M,79
          List the contents of u addresses starting at addr.  Each
          line of values may be preceded by the address of the first
          value.

DUMP в стандарте Forth-79 (англ.)

DUMP           addr n --                     123
    List the contents of n addresses at addr.  Each line of values
    may be preceded by the address of the first value.

DUMP в fig-FORTH Release 1 glossary, май 1979 (англ.)

DUMP          addr  n  ---                     L0
       Print the contents of n memory locations beginning at addr. Both
       addresses and contents are shown in the current numeric base.

Реализация

3914 ;#DUMP
3915 ; DUMP             ( a c −− )                           Дамп. Вывести c байт от адреса a.
3916 LDUMP:          .DB     4
3917                 .TEXT   "DUMP"                  ; ( адрес длина −− )
3918                 .DW     LDEPTH                  ; Отобразить c байт памяти, начиная с адреса a
3919 DUMP:           .DW CALL, DUP2, XFOR,DP1E
3920 DP1:            .DW DUP,CAT,FDOT, ONEP, XNEXT,DP1
3921 DP1E:           .DW DROP, XFOR,DP2E
3922 DP2:            .DW DUP,CAT,CDOT, ONEP, XNEXT,DP2
3923 DP2E:           .DW DROP, BRAN,RSPACE

Реализация из SP-Forth 4.20:

: DUMP ( addr u -- ) \ 94 TOOLS
  DUP 0= IF 2DROP EXIT THEN
  BASE @ >R HEX
  15 + 16 U/ 0 DO
    CR DUP 4 .0 SPACE
    SPACE DUP 16 0
      DO I 4 MOD 0= IF SPACE THEN
        DUP C@ 2 .0 SPACE 1+
      LOOP SWAP 16  PTYPE
  LOOP DROP R> BASE !
;

Советская реализация

Определение слова DUMP приводится у Баранова-Ноздрунова (стр. 38).

Описание и определение слова DUMP в ядре ФОРТ-ЕС:

DUMP   +  A,U-> РАСПЕЧАТАТЬ НА ТЕРМИНАЛЕ U БАЙТОВ               42
                                      ОТ АДРЕСА U

                     Экран номер 42
( 09.09.86  DUMP SNAPSTK  S. R. )
: DUMP ( A,U-> РАСПЕЧАТАТЬ  U БАйТОВ)      DUP  IF
  BASE @ >R  HEX OVER + SWAP DO CR  I <# C" * HOLD
  0 15 DO  DUP I +  C@  HOLD  -1 +LOOP  С" * HOLD
  0 15 DO  BL HOLD DUP I + C@ 0 # # 2DROP -1 +LOOP BL  HOLD
  BL HOLD 0 # # # # # #> TYPE 16 +LOOP R> BASE ! ELSE 2DROP THEN ;

Определение слова DUMP в FORTH ИТЭФ:

             HEAD    204Q,'DUM',32OQ,DUMP,$COL            ; DUMP
             DW  ZERO,XDO
   DMP:      DW  DUBL,LIT,7,UDOTR,SPACE,EIGHT,ZERO,XDO
   DP1:      DW  DUBL,I,PLUS,CAT,LIT,5,DOTR,XLOOP,DP1-$
             DW  LIT,4,SPACS,EIGHT,ZERO,XDO
   DP2:      DW  DUBL,I,PLUS,CAT,LIT,1770,$AND,DUBL,BLAN
             DW  LESS,ZBRAN,DP3-$,DROP,LIT,56Q
   DP3:      DW  EMIT,XLOOP,DP2-$,CR,EIGHT,PLUS,EIGHT
             DW  XPLOO,DMP-$,DROP,SEMI

Ссылки


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.