⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datapage.lst

📁 motorola dp256 的中断向量映射表
💻 LST
📖 第 1 页 / 共 5 页
字号:
  648:    - page part of an address in the B register
  649:    - value to be stored in the X:A registers (X : low 16 bit, A : high 8 bit)
  650:  
  651:    Result :
  652:    - value stored at the address
  653:    - all registers remains unchanged
  654:    - all page register still contain the same value
  655:    --------------------------- _STORE_FAR_24 ----------------------------------*/
  656:  
  657:  #ifdef __cplusplus
  658:  extern "C"
  659:  #endif
  660:  #pragma NO_ENTRY
  661:  #pragma NO_EXIT
  662:  #pragma NO_FRAME
  663:  
  664:  void NEAR _STORE_FAR_24(void) {

Function: _STORE_FAR_24
Source  : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"

  665:  #if USE_SEVERAL_PAGES
  666:    __asm {
  667:          PSHX                      ;// save X register
  668:          __PIC_JSR(_GET_PAGE_REG)
  669:          BEQ     L_NOPAGE
  670:  
  671:          PSHA
  672:          LDAA    0,X               ;// save page register
  673:          STAB    0,X               ;// set page register
  674:          MOVW    1,SP, 1,Y         ;// store the value passed in X
  675:          MOVB    0,SP, 0,Y         ;// store the value passed in A
  676:          STAA    0,X               ;// restore page register
  677:          PULA                      ;// restore A register
  678:          PULX                      ;// restore X register
  679:          RTS
  680:  
  681:  L_NOPAGE:
  682:          STX     1,Y               ;// store the value passed in X
  683:          STAA    0,Y               ;// store the value passed in X
  684:          PULX                      ;// restore X register
  685:          RTS
  686:    }
  687:  #else /* USE_SEVERAL_PAGES */
  688:    __asm {
  689:          PSHA                      ;// save A register
  0000 36           [2]     PSHA  
  690:          LDAA    PAGE_ADDR         ;// save page register
  0001 9630         [3]     LDAA  48
  691:          STAB    PAGE_ADDR         ;// set page register
  0003 5b30         [2]     STAB  48
  692:          MOVB    0,SP, 0,Y         ;// store the value passed in A
  0005 180a8040     [5]     MOVB  0,SP,0,Y
  693:          STX     1,Y               ;// store the value passed in X
  0009 6e41         [2]     STX   1,Y
  694:          STAA    PAGE_ADDR         ;// restore page register
  000b 5a30         [2]     STAA  48
  695:          PULA                      ;// restore A register
  000d 32           [3]     PULA  
  696:          RTS
  000e 3d           [5]     RTS   
  697:    }
  698:  #endif /* USE_SEVERAL_PAGES */
  699:  }
  700:  /*--------------------------- _STORE_FAR_32 --------------------------------
  701:    This runtime routine is used to access paged memory via a runtime function.
  702:    It may also be used if the compiler  option -Cp is not used with the runtime argument.
  703:  
  704:    Arguments :
  705:    - offset part of an address in the Y register
  706:    - page part of an address is on the stack at 3,SP (just below the return address)
  707:    - value to be stored in the X:D registers (D : low 16 bit, X : high 16 bit)
  708:  
  709:    Result :
  710:    - value stored at the address
  711:    - all registers remains unchanged
  712:    - the page part is removed from the stack
  713:    - all page register still contain the same value
  714:    --------------------------- _STORE_FAR_32 ----------------------------------*/
  715:  
  716:  #ifdef __cplusplus
  717:  extern "C"
  718:  #endif
  719:  #pragma NO_ENTRY
  720:  #pragma NO_EXIT
  721:  #pragma NO_FRAME
  722:  
  723:  void NEAR _STORE_FAR_32(void) {

Function: _STORE_FAR_32
Source  : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"

  724:  #if USE_SEVERAL_PAGES
  725:    __asm {
  726:          PSHX                      ;// save X register
  727:          __PIC_JSR(_GET_PAGE_REG)
  728:          BEQ     L_NOPAGE
  729:  
  730:          PSHD
  731:          LDAA    0,X               ;// save page register
  732:          MOVB    6,SP, 0,X         ;// set page register
  733:          MOVW    2,SP, 0,Y         ;// store the value passed in X (high word)
  734:          MOVW    0,SP, 2,Y         ;// store the value passed in D (low word)
  735:          STAA    0,X               ;// restore page register
  736:          PULD                      ;// restore A register
  737:          BRA     done
  738:  
  739:  L_NOPAGE:
  740:          MOVW    0,SP, 0,Y         ;// store the value passed in X (high word)
  741:          STD           2,Y         ;// store the value passed in D (low word)
  742:  done:
  743:          PULX                      ;// restore X register
  744:          MOVW    0,SP, 1,+SP       ;// move return address
  745:          RTS
  746:    }
  747:  #else /* USE_SEVERAL_PAGES */
  748:    __asm {
  749:          PSHD                      ;// save D register
  0000 3b           [2]     PSHD  
  750:          LDAA    PAGE_ADDR         ;// save page register
  0001 9630         [3]     LDAA  48
  751:          LDAB    4,SP              ;// load page part of address
  0003 e684         [3]     LDAB  4,SP
  752:          STAB    PAGE_ADDR         ;// set page register
  0005 5b30         [2]     STAB  48
  753:          STX     0,Y               ;// store the value passed in X
  0007 6e40         [2]     STX   0,Y
  754:          MOVW    0,SP, 2,Y         ;// store the value passed in D (low word)
  0009 18028042     [5]     MOVW  0,SP,2,Y
  755:          STAA    PAGE_ADDR         ;// restore page register
  000d 5a30         [2]     STAA  48
  756:          PULD                      ;// restore D register
  000f 3a           [3]     PULD  
  757:          MOVW    0,SP, 1,+SP       ;// move return address
  0010 180280a0     [5]     MOVW  0,SP,1,+SP
  758:          RTS
  0014 3d           [5]     RTS   
  759:    }
  760:  #endif /* USE_SEVERAL_PAGES */
  761:  }
  762:  
  763:  /*--------------------------- _FAR_COPY_RC --------------------------------
  764:    This runtime routine is used to access paged memory via a runtime function.
  765:    It may also be used if the compiler  option -Cp is not used with the runtime argument.
  766:  
  767:    Arguments :
  768:    - offset part of the source int the X register
  769:    - page part of the source in the A register
  770:    - offset part of the dest int the Y register
  771:    - page part of the dest in the B register
  772:    - number of bytes to be copied is defined by the next 2 bytes after the return address.
  773:  
  774:    Result :
  775:    - memory area copied
  776:    - no registers are saved, i.e. all registers may be destroyed
  777:    - all page register still contain the same value as before the call
  778:    - the function returns after the constant defining the number of bytes to be copied
  779:  
  780:  
  781:    stack-structure at the loop-label:
  782:       0,SP : destination offset
  783:       2,SP : source page
  784:       3,SP : destination page
  785:       4,SP : source offset
  786:       6,SP : points to length to be copied. This function returns after the size
  787:  
  788:    A usual call to this function looks like:
  789:  
  790:    struct Huge src, dest;
  791:      ; ...
  792:      LDX  #src
  793:      LDAA #PAGE(src)
  794:      LDY  #dest
  795:      LDAB #PAGE(dest)
  796:      JSR  _FAR_COPY_RC
  797:      DC.W sizeof(struct Huge)
  798:      ; ...
  799:  
  800:    --------------------------- _FAR_COPY_RC ----------------------------------*/
  801:  
  802:  #ifdef __cplusplus
  803:  extern "C"
  804:  #endif
  805:  #pragma NO_ENTRY
  806:  #pragma NO_EXIT
  807:  #pragma NO_FRAME
  808:  
  809:  void NEAR _FAR_COPY_RC(void) {

Function: _FAR_COPY_RC
Source  : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"

  810:  #if USE_SEVERAL_PAGES
  811:    __asm {
  812:          DEX                       ;// source addr-=1, because loop counter ends at 1
  813:          PSHX                      ;// save source offset
  814:          PSHD                      ;// save both pages
  815:          DEY                       ;// destination addr-=1, because loop counter ends at 1
  816:          PSHY                      ;// save destination offset
  817:          LDY     6,SP              ;// Load Return address
  818:          LDX     2,Y+              ;// Load Size to copy
  819:          STY     6,SP              ;// Store adjusted return address
  820:  loop:
  821:          LDD     4,SP              ;// load source offset
  822:          LEAY    D,X               ;// calculate actual source address
  823:          LDAB    2,SP              ;// load source page
  824:          __PIC_JSR(_LOAD_FAR_8)    ;// load 1 source byte
  825:          PSHB                      ;// save value
  826:          LDD     0+1,SP            ;// load destination offset
  827:          LEAY    D,X               ;// calculate actual destination address
  828:          PULA                      ;// restore value
  829:          LDAB    3,SP              ;// load destination page
  830:          __PIC_JSR(_STORE_FAR_8)   ;// store one byte
  831:          DEX
  832:          BNE     loop
  833:          LEAS    6,SP              ;// release stack
  834:          _SRET                     ;// debug info only: This is the last instr of a function with a special return
  835:          RTS                       ;// return
  836:    }
  837:  #else
  838:    __asm {
  839:          PSHD                      ;// store page registers
  0000 3b           [2]     PSHD  
  840:          TFR     X,D
  0001 b754         [1]     TFR   X,D
  841:          PSHY                      ;// temporary space
  0003 35           [2]     PSHY  
  842:          LDY     4,SP              ;// load return address
  0004 ed84         [3]     LDY   4,SP
  843:          ADDD    2,Y+              ;// calculate source end address. Increment return address
  0006 e371         [3]     ADDD  2,Y+
  844:          STY     4,SP
  0008 6d84         [2]     STY   4,SP
  845:          PULY
  000a 31           [3]     PULY  
  846:          PSHD                      ;// store src end address
  000b 3b           [2]     PSHD  
  847:          LDAB    2,SP              ;// reload source page
  000c e682         [3]     LDAB  2,SP
  848:          LDAA    PAGE_ADDR         ;// save page register

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -