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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? start.asm

?? cs8900 c51應用
?? ASM
?? 第 1 頁 / 共 3 頁
字號:

;====================================================================
;   ___  _____   __    ___  _____
;  /       |    /  \  |   \   |                  
;  \___    |   |    | |___/   |   
;      \   |   |----| |  \    |   
;   ___/   |   |    | |   \   |      Begin of actual code section
;====================================================================
          .SECTION  CODE_START, CODE, ALIGN=1

;====================================================================
; 6.2  "NOT RESET YET" WARNING
;====================================================================
notresetyet:
          NOP  ; read hint below!!!!!!!
; If the debugger stays at the NOP above, the controller has not been
; reset yet. In order to reset all hardware register it is highly re-
; commended to reset the controller.
; However, if no reset vector has been defined on purpose, this dummy
; start address can also be used.
; This mechanism is using the .END instruction at the end of this mo-
; dule. It is not necessary for controller operation but improves 
; security during debugging (mainly emulator debugger).

;====================================================================
; 6.3  Program start (the reset vector should point here)
;====================================================================
_start:
          AND  CCR, #0             ; disable interrups
          MOV  ILM,#7              ; set interrupt level mask to ALL
          MOV  RP,#REGBANK         ; set register bank pointer 

;====================================================================
; 6.4  Set clock ratio (ignore subclock)
;====================================================================
#if CLOCKSPEED != NOCLOCK
          SETB I:CKSCR:2           ; set main clock
#  if CLOCKSPEED > MAINCLOCK
          MOV  A, I:CKSCR          ; copy clock register
          AND  A, #0xFC            ; set x1 for PLL
#    if CLOCKSPEED == PLLx2
          OR   A, #0x01            ; set x2 for PLL
#    elif CLOCKSPEED == PLLx3
          OR   A, #0x02            ; set x3 for PLL
#    elif CLOCKSPEED == PLLx4
          OR   A, #0x03            ; set x4 for PLL
#    endif
          MOV  I:CKSCR, A          ; write back 
          CLRB I:CKSCR:2           ; enable PLL, PLL is not switched
                                   ; to the MCU yet but after stabi-
                                   ; lizing it switchs on its own to
                                   ; higher speed (see below)
#  endif ; CLOCKSPEED > MAINCLOCK 
#endif ; CLOCKSPEED != NOCLOCK 

;====================================================================
; 6.5  Set external bus configuaration
;====================================================================

#if BUSMODE != SINGLE_CHIP         ; ext bus used
          MOV  I:HACR, #ADDR_PINS  ; set used upper address lines
          MOV  I:EPCR, #BUS_SIGNAL ; set used bus signals
          MOV  I:ARSR, #iARSR      ; set auto-wait cycles
#endif 

#if FAMILY == MB90500 || FAMILY == MB90400 ; only these have ROMM

#  if BUSMODE == INTROM_EXTBUS     ; EXTBUS and INTROM/EXTROM
#    if ROMMIRROR == OFF && CONSTDATA == ROMCONST
#      error Mirror function must be ON to mirror internal ROM
#    endif
#  endif

          MOV  I:ROMM, #ROMMIRROR
#endif

;====================================================================
; 6.6  Copy initial values to data areas.
;====================================================================
;
; Each C-module has its own __far INIT section. The names are generic.
; DCONST_module contains the initialisers for the far data of the one
; module. INIT_module reserves the RAM area, which has to be loaded
; with the data from DCONST_module. ("module" is the name of the *.c
; file) 
; All separated DCONST_module/INIT_module areas are described in 
; DTRANS section by start addresses and length of each far section.
;   0000 1. source address (ROM)
;   0004 1. destination address (RAM)
;   0008 length of sections 1
;   000A 2. source address  (ROM)
;   000E 2. destination address (RAM)
;   0012 length of sections 2
;   0014 3. source address ...
; In addition the start-up file adds the descriptors of the __near 
; sections to this table. The order of the descriptors in this table 
; depends on the linkage order.
;====================================================================
          MOV  A, #BNKSEC DTRANS   ; get bank of table
          MOV  DTB, A              ; store bank in DTB
          MOVW RW1, #DTRANS        ; get start offset of table
          OR   CCR, #H'20          ; System stack flag set (SSB used)
          BRA  LABEL2              ; branch to loop condition
LABEL1:
          MOVW A, @RW1+6           ; get bank of destination
          MOV  SSB, A              ; save dest bank in SSB
          MOVW A, @RW1+2           ; get source bank
          MOV  ADB, A              ; save source bank in ADB
          MOVW A, @RW1+4           ; move destination addr in AL
          MOVW A, @RW1             ; AL ->AH, src addr -> AL 
          MOVW RW0, @RW1+8         ; number of bytes to copy -> RW0
          MOVSI     SPB, ADB       ; copy data
          MOVN A, #10              ; length of one table entry is 10
          ADDW RW1, A              ; set pointer to next table entry
LABEL2:                             
          MOVW A, RW1              ; get address of next block
          SUBW A, #DTRANS          ; sub address of first block
          CMPW A, #SIZEOF (DTRANS) ; all blocks processed ?
          BNE  LABEL1              ; if not, branch

;====================================================================
; 6.7   Clear uninitialised data areas to zero
;====================================================================
;
; Each C-module has its own __far DATA section. The names are generic.
; DATA_module contains the reserved area (RAM) to be cleared.
; ("module" is the name of the *.c file) 
; All separated DATA_module areas are described in DCLEAR section by
; start addresses and length of all far section.
;   0000 1. section address (RAM)
;   0004 length of section 1
;   0006 2. section address (RAM)
;   000A length of section 2
;   000C 3. section address (RAM)
;   0010 length of section 3 ...
; In addition the start-up file adds the descriptors of the __near 
; section. to this table. The order of the descriptors in this table 
; depends on the linkage order.
;====================================================================
          MOV  A, #BNKSEC DCLEAR   ; get bank of table
          MOV  DTB, A              ; store bank in DTB
          MOVW RW1, #DCLEAR        ; get start offset of table
          BRA  LABEL4              ; branch to loop condition
LABEL3:                            
          MOV  A, @RW1+2           ; get section bank
          MOV  ADB, A              ; save section bank in ADB
          MOVW RW0, @RW1+4         ; number of bytes to copy -> RW0
          MOVW A, @RW1             ; move section addr in AL
          MOVN A, #0               ; AL ->AH, init value -> AL 
          FILSI     ADB            ; write 0 to section
          MOVN A, #6               ; length of one table entry is 6
          ADDW RW1, A              ; set pointer to next table entry
LABEL4:
          MOVW A, RW1              ; get address of next block
          SUBW A, #DCLEAR          ; sub address of first block
          CMPW A, #SIZEOF (DCLEAR) ; all blocks processed ?
          BNE  LABEL3              ; if not, branch

;====================================================================
; 6.8  Prepare stacks and set the default stack type
;====================================================================
#macro SYSSTACKINI
          OR   CCR,#H'20               ; set System stack flag
          MOV  A,#BNKSYM SSTACK_TOP    ; System stack set
          MOV  SSB,A                   
          MOVW A,#SSTACK_TOP
          MOVW SP,A
#endm
#macro USRSTACKINI
          AND  CCR,#H'DF               ; User stack flag set
          MOV  A,#BNKSYM USTACK_TOP    ; User stack set
          MOV  USB,A
          MOVW A,#USTACK_TOP
          MOVW SP,A
#endm
#if STACKUSE == USRSTACK
          SYSSTACKINI
          USRSTACKINI                  ; finally user stack selected
#else
          USRSTACKINI
          SYSSTACKINI                  ; finally system stack selected
#endif

;====================================================================
; 6.9  Set Data Bank Register (DTB) and Direct Page Register (DPR)
;====================================================================
          MOV  A,#BNKSEC DATA          ; User data bank offset
          MOV  DTB,A

          MOV  A,#PAGE DIRDATA_S       ; User direct page
          MOV  DPR,A

;====================================================================
; 6.10  Wait for PLL to stabilise
;====================================================================

#if CLOCKSPEED > MAINCLOCK && CLOCKWAIT == ON
no_PLL_yet:
          BBS  I:CKSCR:6,no_PLL_yet    ; check MCM and wait for
                                       ; PLL to stabilize
#endif

;====================================================================
; 6.11  Initialise Low-Level Library Interface
;====================================================================
;
; Call lib init functionand reload stack afterwards, if AUTOMODEL
;====================================================================
#if CLIBINIT == ON
#  if MEMMODEL == SMALL || MEMMODEL == COMPACT
          CALL __stream_init       ; initialise library IO
#  else                            ; MEDIUM, LARGE, AUTOMODEL
          CALLP __stream_init      ; initialise library IO
#    if MEMMODEL == AUTOMODEL          
          RELOAD_SP                ; repair stack since stream_init was
                                   ; possibly left by RET (not RETP)
#    endif  ; AUTOMODEL
#  endif  ; MEDIUM, LARGE, AUTOMODEL
#endif  ; LIBINI

;====================================================================
; 6.12  Call C-language main function
;====================================================================
#if MEMMODEL == SMALL || MEMMODEL == COMPACT
          CALL _main               ; Start main function
#else                              ; MEDIUM, LARGE, AUTOMODEL
          CALLP _main              ; Start main function
                                   ; ignore remaining word on stack, 
                                   ; if main was completed by RET
;====================================================================
; 6.13  Shut down library
;====================================================================
#endif
#if CLIBINIT == ON
#  if MEMMODEL == SMALL || MEMMODEL == COMPACT
          CALL _exit               
#  else                            ; MEDIUM, LARGE, AUTOMODEL
          CALLP _exit              ; ignore remaining word on stack, 
                                   ; if main was completed by RET
#  endif
__exit:
#endif          

;====================================================================
; 6.14  Program end loop
;====================================================================

end:      BRA  end                 ; Loop

;====================================================================
; 6.15 Debug address specification
;====================================================================
          .END notresetyet         ; define debugger start address

;====================================================================
; ----------------------- End of Start-up file ---------------------
;====================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩和的一区二区| 亚洲黄色免费电影| 色综合一个色综合| 婷婷六月综合网| 国产欧美日韩精品一区| 欧洲精品中文字幕| 国产成人啪免费观看软件| 亚洲自拍都市欧美小说| 久久精品综合网| 欧美精品在欧美一区二区少妇| 成人三级伦理片| 秋霞午夜av一区二区三区| 日韩理论片一区二区| 精品国产免费久久| 欧美久久一区二区| 91欧美一区二区| av一区二区久久| 经典三级一区二区| 亚洲成人中文在线| 亚洲天堂久久久久久久| 国产三区在线成人av| 日韩欧美www| 欧美日韩国产小视频| 99久久综合99久久综合网站| 国产一区二区在线看| 日本不卡高清视频| 五月婷婷另类国产| 亚洲一区二区三区国产| 最新国产精品久久精品| 亚洲国产精品av| 久久综合国产精品| 欧美成人一区二区三区| 777午夜精品视频在线播放| 欧洲av在线精品| 色呦呦国产精品| 色综合一个色综合亚洲| 97se亚洲国产综合在线| 岛国av在线一区| 国产成人超碰人人澡人人澡| 久久99精品国产麻豆婷婷| 蜜桃av一区二区在线观看| 视频在线观看一区| 三级亚洲高清视频| 视频在线观看91| 亚洲小少妇裸体bbw| 国产精品国产三级国产aⅴ原创| 日韩欧美不卡一区| 久久丝袜美腿综合| 国产色产综合色产在线视频| 国产欧美日韩三区| 亚洲婷婷在线视频| 亚洲一区影音先锋| 婷婷中文字幕一区三区| 麻豆精品视频在线观看视频| 精品一区二区三区欧美| 精品亚洲成a人| 韩国一区二区三区| 国产成人精品免费| av亚洲精华国产精华| 91麻豆国产在线观看| 欧日韩精品视频| 欧美一区二区美女| 2019国产精品| 国产精品天天看| 尤物av一区二区| 日韩黄色小视频| 国产综合成人久久大片91| 精品制服美女久久| 成人av在线影院| 欧美视频精品在线观看| 日韩一区二区在线免费观看| 久久久久久一二三区| 中文字幕一区二区三区av| 亚洲国产日韩a在线播放性色| 奇米色一区二区三区四区| 国产成人精品亚洲777人妖| 91国产成人在线| 欧美成人精品二区三区99精品| 国产欧美日韩激情| 午夜视频一区二区| 国产在线视频精品一区| 91美女福利视频| 日韩欧美中文字幕一区| 亚洲国产精品成人综合| 天堂影院一区二区| 国产电影一区二区三区| 欧美视频一区二区三区四区| 精品国产乱码91久久久久久网站| 中文字幕一区二区三区精华液 | 日韩女优毛片在线| 中文字幕精品一区二区三区精品| 亚洲一区二区三区四区在线免费观看| 蜜芽一区二区三区| 色偷偷久久一区二区三区| 日韩欧美二区三区| 夜夜亚洲天天久久| 国产精品一区二区三区乱码| 欧美伊人久久久久久久久影院| 337p粉嫩大胆色噜噜噜噜亚洲 | 日韩美女在线视频| 亚洲情趣在线观看| 国产制服丝袜一区| 欧美日韩一区二区在线视频| 国产精品女主播在线观看| 免费观看在线色综合| 色欧美乱欧美15图片| 欧美精品一区二区高清在线观看 | 亚洲欧美偷拍三级| 韩日av一区二区| 欧美日本视频在线| 国产精品短视频| 国产毛片精品国产一区二区三区| 欧美日韩一本到| 亚洲色图色小说| 国产经典欧美精品| 91精品国产91热久久久做人人| 尤物在线观看一区| 成人高清视频在线| 26uuu久久综合| 麻豆成人免费电影| 制服.丝袜.亚洲.另类.中文 | 国产日韩精品一区二区浪潮av| 偷拍与自拍一区| 欧洲精品中文字幕| 亚洲精品国产视频| 99精品1区2区| 欧美激情一区二区三区全黄| 久久99久久99| 日韩精品综合一本久道在线视频| 亚洲成人福利片| 欧美视频在线不卡| 亚洲国产成人av网| 欧美系列亚洲系列| 一区二区三区**美女毛片| 色天天综合色天天久久| 亚洲图片你懂的| 色国产综合视频| 亚洲一区二区中文在线| 欧美在线一二三| 亚洲精品欧美激情| 色94色欧美sute亚洲线路一ni| 亚洲色图.com| 欧美综合色免费| 亚洲国产日韩a在线播放性色| 欧美日韩精品专区| 日本系列欧美系列| 精品va天堂亚洲国产| 国产一区视频网站| 久久精品夜夜夜夜久久| 成人av免费在线| 亚洲日本在线a| 欧美日韩一区三区四区| 日本中文在线一区| 精品久久久久一区| 丰满少妇久久久久久久| 一区在线观看免费| 欧美中文字幕一区二区三区| 偷窥少妇高潮呻吟av久久免费| 91精品国产综合久久精品性色| 精品一区二区三区香蕉蜜桃 | 色8久久精品久久久久久蜜| 亚洲精品日产精品乱码不卡| 欧美日韩情趣电影| 蜜桃av一区二区在线观看| 久久久99精品免费观看| 99视频精品全部免费在线| 亚洲一区二区三区四区在线免费观看| 欧美日韩国产综合久久 | 91福利在线免费观看| 日韩精品福利网| 久久久www成人免费毛片麻豆| 国产.精品.日韩.另类.中文.在线.播放| 一色屋精品亚洲香蕉网站| 欧美日韩中文一区| 久久成人免费电影| 国产精品久久久久影院亚瑟| 欧美日韩一卡二卡| 国产一区二区三区四区五区入口| 中文字幕一区二区在线观看| 欧美一区三区四区| 国产91丝袜在线观看| 亚洲韩国一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲 | 免费成人在线影院| 国产精品剧情在线亚洲| 欧美日韩精品欧美日韩精品一| 韩国毛片一区二区三区| 一区二区三区在线观看动漫| 日韩免费一区二区| 91色.com| 国产一区二区久久| 亚洲动漫第一页| 欧美国产综合一区二区| 88在线观看91蜜桃国自产| www.亚洲人| 精品一区二区三区不卡 | 中文字幕在线不卡视频| 日韩视频一区二区| 色一情一伦一子一伦一区| 国产毛片一区二区|