亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? datapage.c

?? 原創(chuàng)的無線模塊nRF401發(fā)送/接收代碼,用飛思卡爾的mc9s12dp256和mc9s12dt128實(shí)現(xiàn)收發(fā),調(diào)試成功,內(nèi)有模塊連線圖和詳細(xì)代碼注釋
?? C
?? 第 1 頁 / 共 5 頁
字號:

/*--------------------------- _LOAD_FAR_16 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address in the B register

  Result :
  - value to be read in the Y register
  - all other registers remains unchanged
  - all page register still contain the same value
  --------------------------- _LOAD_FAR_16 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _LOAD_FAR_16(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE
        PSHA                      ;// save A register
        LDAA    0,X               ;// save page register
        STAB    0,X               ;// set page register
        LDY     0,Y               ;// actual load, overwrites address
        STAA    0,X               ;// restore page register
        PULA                      ;// restore A register
        PULX                      ;// restore X register
        RTS
L_NOPAGE:
        LDY     0,Y               ;// actual load, overwrites address
        PULX                      ;// restore X register
        RTS
  }
#else /* USE_SEVERAL_PAGES */
  __asm {
        PSHA                      ;// save A register
        LDAA    PAGE_ADDR         ;// save page register
        STAB    PAGE_ADDR         ;// set page register
        LDY     0,Y               ;// actual load, overwrites address
        STAA    PAGE_ADDR         ;// restore page register
        PULA                      ;// restore A register
        RTS
  }
#endif /* USE_SEVERAL_PAGES */
}
/*--------------------------- _LOAD_FAR_24 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address in the B register

  Result :
  - value to be read in the Y:B registers
  - all other registers remains unchanged
  - all page register still contain the same value
  --------------------------- _LOAD_FAR_24 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _LOAD_FAR_24(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE
        PSHA                      ;// save A register
        LDAA    0,X               ;// save page register
        STAB    0,X               ;// set page register
        LDAB    0,Y               ;// actual load, overwrites page of address
        LDY     1,Y               ;// actual load, overwrites offset of address
        STAA    0,X               ;// restore page register
        PULA                      ;// restore A register
        PULX                      ;// restore X register
        RTS
L_NOPAGE:
        LDAB    0,Y               ;// actual load, overwrites page of address
        LDY     1,Y               ;// actual load, overwrites offset of address
        PULX                      ;// restore X register
        RTS
  }
#else /* USE_SEVERAL_PAGES */
  __asm {
        PSHA                      ;// save A register
        LDAA    PAGE_ADDR         ;// save page register
        STAB    PAGE_ADDR         ;// set page register
        LDAB    0,Y               ;// actual load, overwrites page of address
        LDY     1,Y               ;// actual load, overwrites offset of address
        STAA    PAGE_ADDR         ;// restore page register
        PULA                      ;// restore A register
        RTS
  }
#endif /* USE_SEVERAL_PAGES */

}

/*--------------------------- _LOAD_FAR_32 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address in the B register

  Result :
  - low 16 bit of value to be read in the D registers
  - high 16 bit of value to be read in the Y registers
  - all other registers remains unchanged
  - all page register still contain the same value
  --------------------------- _LOAD_FAR_32 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _LOAD_FAR_32(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE
        LDAA    0,X               ;// save page register
        PSHA                      ;// put it onto the stack
        STAB    0,X               ;// set page register
        LDD     2,Y               ;// actual load, low word
        LDY     0,Y               ;// actual load, high word
        MOVB    1,SP+,0,X         ;// restore page register
        PULX                      ;// restore X register
        RTS
L_NOPAGE:
        LDD     2,Y               ;// actual load, low word
        LDY     0,Y               ;// actual load, high word
        PULX                      ;// restore X register
        RTS
  }
#else /* USE_SEVERAL_PAGES */
  __asm {
        LDAA    PAGE_ADDR         ;// save page register
        PSHA                      ;// put it onto the stack
        STAB    PAGE_ADDR         ;// set page register
        LDD     2,Y               ;// actual load, low word
        LDY     0,Y               ;// actual load, high word
        MOVB    1,SP+,PAGE_ADDR   ;// restore page register
        RTS
  }
#endif /* USE_SEVERAL_PAGES */
}

/*--------------------------- _STORE_FAR_8 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address in the B register
  - value to be stored in the B register

  Result :
  - value stored at the address
  - all registers remains unchanged
  - all page register still contain the same value
  --------------------------- _STORE_FAR_8 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _STORE_FAR_8(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE
        PSHB                      ;// save B register
        LDAB    0,X               ;// save page register
        MOVB    0,SP, 0,X         ;// set page register
        STAA    0,Y               ;// store the value passed in A
        STAB    0,X               ;// restore page register
        PULB                      ;// restore B register
        PULX                      ;// restore X register
        RTS
L_NOPAGE:
        STAA    0,Y               ;// store the value passed in A
        PULX                      ;// restore X register
        RTS
  }
#else /* USE_SEVERAL_PAGES */
  __asm {
        PSHB                      ;// save A register
        LDAB    PAGE_ADDR         ;// save page register
        MOVB    0,SP,PAGE_ADDR    ;// set page register
        STAA    0,Y               ;// store the value passed in A
        STAB    PAGE_ADDR         ;// restore page register
        PULB                      ;// restore B register
        RTS
  }
#endif /* USE_SEVERAL_PAGES */
}

/*--------------------------- _STORE_FAR_16 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address in the B register
  - value to be stored in the X register

  Result :
  - value stored at the address
  - all registers remains unchanged
  - all page register still contain the same value
  --------------------------- _STORE_FAR_16 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _STORE_FAR_16(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE

        PSHA
        LDAA    0,X               ;// save page register
        STAB    0,X               ;// set page register
        MOVW    1,SP,0,Y          ;// store the value passed in X
        STAA    0,X               ;// restore page register
        PULA                      ;// restore A register
        PULX                      ;// restore X register
        RTS

L_NOPAGE:
        STX 0,Y                   ;// store the value passed in X
        PULX                      ;// restore X register
        RTS
  }
#else /* USE_SEVERAL_PAGES */
  __asm {
        PSHA                      ;// save A register
        LDAA    PAGE_ADDR         ;// save page register
        STAB    PAGE_ADDR         ;// set page register
        STX     0,Y               ;// store the value passed in X
        STAA    PAGE_ADDR         ;// restore page register
        PULA                      ;// restore A register
        RTS
  }
#endif /* USE_SEVERAL_PAGES */
}
/*--------------------------- _STORE_FAR_24 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address in the B register
  - value to be stored in the X:A registers (X : low 16 bit, A : high 8 bit)

  Result :
  - value stored at the address
  - all registers remains unchanged
  - all page register still contain the same value
  --------------------------- _STORE_FAR_24 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _STORE_FAR_24(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE

        PSHA
        LDAA    0,X               ;// save page register
        STAB    0,X               ;// set page register
        MOVW    1,SP, 1,Y         ;// store the value passed in X
        MOVB    0,SP, 0,Y         ;// store the value passed in A
        STAA    0,X               ;// restore page register
        PULA                      ;// restore A register
        PULX                      ;// restore X register
        RTS

L_NOPAGE:
        STX     1,Y               ;// store the value passed in X
        STAA    0,Y               ;// store the value passed in X
        PULX                      ;// restore X register
        RTS
  }
#else /* USE_SEVERAL_PAGES */
  __asm {
        PSHA                      ;// save A register
        LDAA    PAGE_ADDR         ;// save page register
        STAB    PAGE_ADDR         ;// set page register
        MOVB    0,SP, 0,Y         ;// store the value passed in A
        STX     1,Y               ;// store the value passed in X
        STAA    PAGE_ADDR         ;// restore page register
        PULA                      ;// restore A register
        RTS
  }
#endif /* USE_SEVERAL_PAGES */
}
/*--------------------------- _STORE_FAR_32 --------------------------------
  This runtime routine is used to access paged memory via a runtime function.
  It may also be used if the compiler  option -Cp is not used with the runtime argument.

  Arguments :
  - offset part of an address in the Y register
  - page part of an address is on the stack at 3,SP (just below the return address)
  - value to be stored in the X:D registers (D : low 16 bit, X : high 16 bit)

  Result :
  - value stored at the address
  - all registers remains unchanged
  - the page part is removed from the stack
  - all page register still contain the same value
  --------------------------- _STORE_FAR_32 ----------------------------------*/

#ifdef __cplusplus
extern "C"
#endif
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_FRAME

void NEAR _STORE_FAR_32(void) {
#if USE_SEVERAL_PAGES
  __asm {
        PSHX                      ;// save X register
        __PIC_JSR(_GET_PAGE_REG)
        BEQ     L_NOPAGE

        PSHD
        LDAA    0,X               ;// save page register
        MOVB    6,SP, 0,X         ;// set page register
        MOVW    2,SP, 0,Y         ;// store the value passed in X (high word)
        MOVW    0,SP, 2,Y         ;// store the value passed in D (low word)
        STAA    0,X               ;// restore page register
        PULD                      ;// restore A register

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉的| 欧美高清www午色夜在线视频| 亚洲欧美激情一区二区| 欧美在线免费观看亚洲| 毛片av一区二区三区| 欧美激情一区三区| 国产福利电影一区二区三区| 亚洲三级电影网站| 欧美一区二区视频在线观看2022 | 亚洲影视在线观看| 欧美高清视频www夜色资源网| 国产精品一区二区91| 亚洲一区二区不卡免费| 亚洲精品一区二区三区精华液| 成人视屏免费看| 免费视频最近日韩| 亚洲欧美日韩中文字幕一区二区三区| 欧美区在线观看| av亚洲精华国产精华精华| 午夜视频一区二区| 亚洲国产精品精华液2区45| 欧美日本韩国一区二区三区视频 | 在线看日本不卡| 不卡av电影在线播放| 国产成人啪免费观看软件| 蜜臂av日日欢夜夜爽一区| 日日夜夜精品视频天天综合网| 亚洲另类在线制服丝袜| 自拍av一区二区三区| 亚洲欧洲精品一区二区三区不卡| 久久看人人爽人人| 久久久久久久久蜜桃| 欧美精品一区二区三| 精品剧情在线观看| 欧美白人最猛性xxxxx69交| 777亚洲妇女| 67194成人在线观看| 4438成人网| 欧美老人xxxx18| 91精品午夜视频| 日韩美女视频在线| 精品国产乱码久久久久久影片| 日韩三区在线观看| 日韩欧美黄色影院| 久久综合一区二区| 国产亚洲一本大道中文在线| 久久九九99视频| 中文字幕不卡在线播放| 亚洲色图一区二区| 亚洲自拍偷拍麻豆| 日本特黄久久久高潮| 老司机精品视频导航| 国产一区二区三区不卡在线观看 | 欧美日韩国产小视频| 91精品国产综合久久久蜜臀图片| 日韩西西人体444www| 国产人久久人人人人爽| 国产精品另类一区| 亚洲精品亚洲人成人网| 亚洲成人av在线电影| 老司机精品视频一区二区三区| 韩国精品主播一区二区在线观看| 国产精品18久久久久| 91亚洲国产成人精品一区二三 | 91看片淫黄大片一级在线观看| 在线精品国精品国产尤物884a| 欧美日本一道本| 久久精品人人做人人爽97| 中文字幕一区免费在线观看| 一区二区免费视频| 国精产品一区一区三区mba视频 | 色综合色狠狠综合色| 欧美日韩一区小说| 欧美精品一区二区三区高清aⅴ| 中文字幕不卡在线观看| 亚洲国产人成综合网站| 久久精品国产**网站演员| 99久久精品国产精品久久| 制服.丝袜.亚洲.中文.综合| 久久久久久久精| 一区二区三区四区激情| 久久国产精品露脸对白| 91蜜桃在线免费视频| 欧美zozozo| 樱花草国产18久久久久| 精品写真视频在线观看| eeuss鲁片一区二区三区在线观看| 欧美艳星brazzers| 国产日韩欧美亚洲| 丝袜亚洲另类丝袜在线| 成人综合在线观看| 制服丝袜亚洲播放| 综合久久久久综合| 国产精品一品二品| 欧美精品777| 亚洲精品欧美在线| 国产一区二区三区综合| 欧美高清激情brazzers| 亚洲丝袜制服诱惑| 国产在线视视频有精品| 欧美视频日韩视频| 亚洲天堂免费在线观看视频| 精品一区二区在线视频| 91黄色免费版| 1区2区3区国产精品| 国产原创一区二区| 欧美精品久久99| 亚洲综合色区另类av| av午夜精品一区二区三区| 欧美va日韩va| 日韩av高清在线观看| 色呦呦一区二区三区| 国产精品伦一区| 国产一区激情在线| 欧美一区2区视频在线观看| 亚洲黄色录像片| 91免费版pro下载短视频| 国产精品免费av| 国产精品一区二区三区99| 91精品国产综合久久精品| 亚洲一区二区三区四区在线免费观看 | www国产成人免费观看视频 深夜成人网| 亚洲成人精品一区| 欧美亚洲免费在线一区| 亚洲免费伊人电影| 91在线国产福利| 中文字幕欧美一| av在线播放成人| 亚洲欧美日韩国产一区二区三区| 成人国产精品免费观看| 中文天堂在线一区| 国产成a人无v码亚洲福利| 国产肉丝袜一区二区| 国产乱码精品一品二品| 久久免费精品国产久精品久久久久 | 精品免费视频.| 精品一区二区免费视频| 精品免费国产二区三区| 九九热在线视频观看这里只有精品| 欧美一区二区三区免费在线看| 免费亚洲电影在线| 欧美草草影院在线视频| 国产精品一区二区视频| 国产精品―色哟哟| 91在线视频官网| 亚洲一区二区中文在线| 欧美天天综合网| 日本强好片久久久久久aaa| 日韩一区二区在线观看视频| 九九在线精品视频| 国产女人aaa级久久久级| hitomi一区二区三区精品| 一区二区三区在线免费播放| 欧美视频日韩视频在线观看| 免费在线成人网| 国产欧美精品一区| 日本国产一区二区| 日韩影院免费视频| 久久精品免视看| 91亚洲精品久久久蜜桃网站| 午夜视频一区二区| 久久免费电影网| 色噜噜狠狠色综合欧洲selulu | 成人深夜视频在线观看| 亚洲女人的天堂| 91精品一区二区三区在线观看| 国产在线播放一区三区四| 亚洲日本va午夜在线电影| 欧美日韩中文字幕一区二区| 久久精品999| 综合分类小说区另类春色亚洲小说欧美 | 日韩激情av在线| 精品国产一二三| 色中色一区二区| 精品午夜久久福利影院| 国产精品免费视频网站| 欧美日韩国产高清一区二区| 国内精品国产成人国产三级粉色 | 亚洲动漫第一页| 久久综合久久99| 色成年激情久久综合| 免费日本视频一区| 综合久久一区二区三区| 精品国产乱码久久久久久1区2区 | 日韩免费在线观看| 91亚洲男人天堂| 久色婷婷小香蕉久久| 亚洲精品免费在线| 精品久久国产字幕高潮| 91蜜桃视频在线| 国产一区亚洲一区| 午夜精品福利久久久| 亚洲国产高清在线观看视频| 制服丝袜在线91| 日本韩国精品在线| 成人精品一区二区三区中文字幕| 日日骚欧美日韩| 亚洲自拍偷拍欧美| 国产精品国产三级国产aⅴ入口| 日韩欧美另类在线|