📄 test.asm
字号:
;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.3.5 Wed Jul 30 11:56:04 2003
;--------------------------------------------------------
.module test
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
.globl _main
.globl _SDA
.globl _SCK
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
_P0 = 0x0080
_SP = 0x0081
_DPL = 0x0082
_DP0L = 0x0082
_DPH = 0x0083
_DP0H = 0x0083
_DP1L = 0x0084
_DP1H = 0x0085
_SPDR = 0x0086
_PCON = 0x0087
_TCON = 0x0088
_TMOD = 0x0089
_TL0 = 0x008a
_TL1 = 0x008b
_TH0 = 0x008c
_TH1 = 0x008d
_P1 = 0x0090
_WMCON = 0x0096
_SCON = 0x0098
_SBUF = 0x0099
_P2 = 0x00a0
_IE = 0x00a8
_SPSR = 0x00aa
_P3 = 0x00b0
_IP = 0x00b8
_T2CON = 0x00c8
_T2MOD = 0x00c9
_RCAP2L = 0x00ca
_RCAP2H = 0x00cb
_TL2 = 0x00cc
_TH2 = 0x00cd
_PSW = 0x00d0
_SPCR = 0x00d5
_ACC = 0x00e0
_A = 0x00e0
_B = 0x00f0
_ALE = 0x008e
;--------------------------------------------------------
; special function bits
;--------------------------------------------------------
_P0_0 = 0x0080
_P0_1 = 0x0081
_P0_2 = 0x0082
_P0_3 = 0x0083
_P0_4 = 0x0084
_P0_5 = 0x0085
_P0_6 = 0x0086
_P0_7 = 0x0087
_IT0 = 0x0088
_IE0 = 0x0089
_IT1 = 0x008a
_IE1 = 0x008b
_TR0 = 0x008c
_TF0 = 0x008d
_TR1 = 0x008e
_TF1 = 0x008f
_P1_0 = 0x0090
_P1_1 = 0x0091
_P1_2 = 0x0092
_P1_3 = 0x0093
_P1_4 = 0x0094
_P1_5 = 0x0095
_P1_6 = 0x0096
_P1_7 = 0x0097
_T2 = 0x0090
_T2EX = 0x0091
_SS = 0x0094
_MOSI = 0x0095
_MISO = 0x0096
_RI = 0x0098
_TI = 0x0099
_RB8 = 0x009a
_TB8 = 0x009b
_REN = 0x009c
_SM2 = 0x009d
_SM1 = 0x009e
_SM0 = 0x009f
_P2_0 = 0x00a0
_P2_1 = 0x00a1
_P2_2 = 0x00a2
_P2_3 = 0x00a3
_P2_4 = 0x00a4
_P2_5 = 0x00a5
_P2_6 = 0x00a6
_P2_7 = 0x00a7
_EX0 = 0x00a8
_ET0 = 0x00a9
_EX1 = 0x00aa
_ET1 = 0x00ab
_ES = 0x00ac
_ET2 = 0x00ad
_EA = 0x00af
_P3_0 = 0x00b0
_P3_1 = 0x00b1
_P3_2 = 0x00b2
_P3_3 = 0x00b3
_P3_4 = 0x00b4
_P3_5 = 0x00b5
_P3_6 = 0x00b6
_P3_7 = 0x00b7
_RXD = 0x00b0
_TXD = 0x00b1
_INT0 = 0x00b2
_INT1 = 0x00b3
_T0 = 0x00b4
_T1 = 0x00b5
_WR = 0x00b6
_RD = 0x00b7
_PX0 = 0x00b8
_PT0 = 0x00b9
_PX1 = 0x00ba
_PT1 = 0x00bb
_PS = 0x00bc
_PT2 = 0x00bd
_T2CON_0 = 0x00c8
_T2CON_1 = 0x00c9
_T2CON_2 = 0x00ca
_T2CON_3 = 0x00cb
_T2CON_4 = 0x00cc
_T2CON_5 = 0x00cd
_T2CON_6 = 0x00ce
_T2CON_7 = 0x00cf
_CP_RL2 = 0x00c8
_C_T2 = 0x00c9
_TR2 = 0x00ca
_EXEN2 = 0x00cb
_TCLK = 0x00cc
_RCLK = 0x00cd
_EXF2 = 0x00ce
_TF2 = 0x00cf
_P = 0x00d0
_FL = 0x00d1
_OV = 0x00d2
_RS0 = 0x00d3
_RS1 = 0x00d4
_F0 = 0x00d5
_AC = 0x00d6
_CY = 0x00d7
_BREG_F0 = 0x00f0
_BREG_F1 = 0x00f1
_BREG_F2 = 0x00f2
_BREG_F3 = 0x00f3
_BREG_F4 = 0x00f4
_BREG_F5 = 0x00f5
_BREG_F6 = 0x00f6
_BREG_F7 = 0x00f7
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
.area REG_BANK_0 (REL,OVR,DATA)
.ds 8
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
.area DSEG (DATA)
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
.area OSEG (OVR,DATA)
;--------------------------------------------------------
; Stack segment in internal ram
;--------------------------------------------------------
.area SSEG (DATA)
__start__stack:
.ds 1
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
.area ISEG (DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
.area BSEG (BIT)
_SCK = 0x0090
_SDA = 0x0091
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
.area XSEG (XDATA)
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
.area XISEG (XDATA)
;--------------------------------------------------------
; interrupt vector
;--------------------------------------------------------
.area CSEG (CODE)
__interrupt_vect:
ljmp __sdcc_gsinit_startup
reti
.ds 7
reti
.ds 7
reti
.ds 7
reti
.ds 7
reti
.ds 7
reti
.ds 7
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
.area GSINIT (CODE)
.area GSFINAL (CODE)
.area GSINIT (CODE)
__sdcc_gsinit_startup:
mov sp,#__start__stack - 1
lcall __sdcc_external_startup
mov a,dpl
jz __sdcc_init_data
ljmp __sdcc_program_startup
__sdcc_init_data:
; _mcs51_genXINIT() start
mov a,#l_XINIT
orl a,#l_XINIT>>8
jz 00003$
mov a,#s_XINIT
add a,#l_XINIT
mov r1,a
mov a,#s_XINIT>>8
addc a,#l_XINIT>>8
mov r2,a
mov dptr,#s_XINIT
mov r0,#s_XISEG
mov p2,#(s_XISEG >> 8)
00001$: clr a
movc a,@a+dptr
movx @r0,a
inc dptr
inc r0
cjne r0,#0,00002$
inc p2
00002$: mov a,dpl
cjne a,ar1,00001$
mov a,dph
cjne a,ar2,00001$
mov p2,#0xFF
00003$:
; _mcs51_genXINIT() end
.area GSFINAL (CODE)
ljmp __sdcc_program_startup
;--------------------------------------------------------
; Home
;--------------------------------------------------------
.area HOME (CODE)
.area CSEG (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
.area CSEG (CODE)
__sdcc_program_startup:
lcall _main
; return from main will lock up
sjmp .
;------------------------------------------------------------
;Allocation info for local variables in function 'main'
;------------------------------------------------------------
;------------------------------------------------------------
;C:/Maxx/Proyectos/APublicar/test.c:61: void main (void)
; -----------------------------------------
; function main
; -----------------------------------------
_main:
ar2 = 0x02
ar3 = 0x03
ar4 = 0x04
ar5 = 0x05
ar6 = 0x06
ar7 = 0x07
ar0 = 0x00
ar1 = 0x01
;C:/Maxx/Proyectos/APublicar/test.c:63: weeprom (0x01,0xF0, 0x50);
; genAssign
mov _weeprom_PARM_2,#0xF0
; genAssign
mov _weeprom_PARM_3,#0x50
; genCall
mov dpl,#0x01
lcall _weeprom
;C:/Maxx/Proyectos/APublicar/test.c:65: do
00101$:
;C:/Maxx/Proyectos/APublicar/test.c:66: P3++;
; genPlus
; genPlusIncr
inc _P3
;C:/Maxx/Proyectos/APublicar/test.c:67: while (1);
; Peephole 132 changed ljmp to sjmp
sjmp 00101$
00104$:
ret
.area CSEG (CODE)
.area XINIT (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -