📄 newled.asm
字号:
.title "newled.asm"
.mmregs
LEDAddr0 .set 3000h
LEDAddr1 .set 3001h
LEDAddr2 .set 3002h
LEDAddr3 .set 3003h
LEDAddr4 .set 3004h
LEDAddr5 .set 3005h
LEDAddr6 .set 3006h
LEDAddr7 .set 3007h
cpldport1 .set 2000h
swcr .set 2bh
CLKMD .set 58h ;Added by zy
.def _c_int00
STACK .usect "stack",100
.text
_c_int00:
;对ST1进行设置
BSET CPL ;为"1",直接寻址借助堆栈指针SP(埋伏笔) 原为:RSBX CPL
BSET SXM ;D符号扩展模式开(参见P173,P66) 原为:RSBX SXM ;为"1",数据进入ALU前进行符号扩展
MOV #00h, SSP ;将SP置"0"(与前两句相呼应)
BCLR CPL ; Set CPL (happens at run time)
.CPL_off ; Tell the assembler CPL = 1
BSET INTM
MOV #2002H,1C00H ;CLKMD (Clock mode register)
RPT #1000
NOP
LOOP:
;mov #11111111B, A ;1
MOV #0014H, 6C00H ;External bus register is memory-mapped at port address 0xC600.
MOV #01H,0CH
MOV #2000H, LEDAddr1
;在地址线上用示波器观察是否有方波
MOV #0020H,0800H
MOV #00FFH,0801H
MOV #2FFFH,0803H
NOP
NOP
;;;MOV #0000H,7FDH
;;;MOV #1,0CH
MOV #0014H,6C00h ;0000,0000,0000,0001设置EMIF为DATA EMIF mode
MOV #0ffffH,4401H ;将A[15:0]设为输出(AGPIODIR) IMPORTANT!!!!
MOV #0000H,4400H ;允许A[15:0]输出地址
MOV #0aaaah,4402H ;输出数据到地址线上
nop
nop
MOV #0ffffH,4401H ;将A[15:0]设为输出(AGPIODIR) IMPORTANT!!!!
MOV #0000H,4400H ;允许A[15:0]输出地址
MOV #5555h,4402H ;输出数据到地址线上
nop
nop
;CALL delay1s
mov #11111111B, AC1 ;2
NOP
NOP
B LOOP
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -