📄 main.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.8.32.1 - 30 Mar 2010
3 ; Generator V4.3.4 - 23 Mar 2010
2823 ; 52 void delay_ms(u16 ms)
2823 ; 53 {
2825 switch .text
2826 0000 _delay_ms:
2828 0000 89 pushw x
2829 0001 88 push a
2830 00000001 OFST: set 1
2833 0002 201b jra L1102
2834 0004 L7002:
2835 ; 57 for(i=0;i<250;i++)
2837 0004 0f01 clr (OFST+0,sp)
2838 0006 L5102:
2841 0006 0c01 inc (OFST+0,sp)
2844 0008 7b01 ld a,(OFST+0,sp)
2845 000a a1fa cp a,#250
2846 000c 25f8 jrult L5102
2847 ; 59 for(i=0;i<75;i++)
2849 000e 0f01 clr (OFST+0,sp)
2850 0010 L3202:
2853 0010 0c01 inc (OFST+0,sp)
2856 0012 7b01 ld a,(OFST+0,sp)
2857 0014 a14b cp a,#75
2858 0016 25f8 jrult L3202
2859 ; 61 ms--;
2861 0018 1e02 ldw x,(OFST+1,sp)
2862 001a 1d0001 subw x,#1
2863 001d 1f02 ldw (OFST+1,sp),x
2864 001f L1102:
2865 ; 55 while(ms!=0)
2867 001f 1e02 ldw x,(OFST+1,sp)
2868 0021 26e1 jrne L7002
2869 ; 63 }
2872 0023 5b03 addw sp,#3
2873 0025 81 ret
2916 ; 65 void delay_us(u16 us)
2916 ; 66 {
2917 switch .text
2918 0026 _delay_us:
2920 0026 89 pushw x
2921 0027 88 push a
2922 00000001 OFST: set 1
2925 0028 201b jra L5502
2926 002a L3502:
2927 ; 70 for(i=0;i<25;i++)
2929 002a 0f01 clr (OFST+0,sp)
2930 002c L1602:
2933 002c 0c01 inc (OFST+0,sp)
2936 002e 7b01 ld a,(OFST+0,sp)
2937 0030 a119 cp a,#25
2938 0032 25f8 jrult L1602
2939 ; 72 for(i=0;i<7;i++)
2941 0034 0f01 clr (OFST+0,sp)
2942 0036 L7602:
2945 0036 0c01 inc (OFST+0,sp)
2948 0038 7b01 ld a,(OFST+0,sp)
2949 003a a107 cp a,#7
2950 003c 25f8 jrult L7602
2951 ; 74 us--;
2953 003e 1e02 ldw x,(OFST+1,sp)
2954 0040 1d0001 subw x,#1
2955 0043 1f02 ldw (OFST+1,sp),x
2956 0045 L5502:
2957 ; 68 while(us!=0)
2959 0045 1e02 ldw x,(OFST+1,sp)
2960 0047 26e1 jrne L3502
2961 ; 76 }
2964 0049 5b03 addw sp,#3
2965 004b 81 ret
2978 bsct
2979 0000 _GPIO:
2980 0000 01 dc.b 1
2981 0001 02 dc.b 2
2982 0002 04 dc.b 4
2983 0003 08 dc.b 8
2984 0004 10 dc.b 16
2985 0005 20 dc.b 32
2986 0006 40 dc.b 64
2987 0007 80 dc.b 128
3051 ; 42 void Init_GPIO(u8 port,u8 io)
3051 ; 43 {
3052 switch .text
3053 004c _Init_GPIO:
3055 004c 89 pushw x
3056 00000000 OFST: set 0
3059 ; 44 if(io==1)
3061 004d 9f ld a,xl
3062 004e a101 cp a,#1
3063 0050 2648 jrne L5512
3064 ; 46 switch(port)
3066 0052 9e ld a,xh
3068 ; 56 default: break;
3069 0053 4d tnz a
3070 0054 270e jreq L5702
3071 0056 4a dec a
3072 0057 2715 jreq L7702
3073 0059 4a dec a
3074 005a 271c jreq L1012
3075 005c 4a dec a
3076 005d 2723 jreq L3012
3077 005f 4a dec a
3078 0060 272a jreq L5012
3079 0062 2051 jra L3612
3080 0064 L5702:
3081 ; 48 case 0: PA_DDR=0xff;PA_CR1=0xff;break;
3083 0064 35ff5002 mov _PA_DDR,#255
3086 0068 35ff5003 mov _PA_CR1,#255
3089 006c 2047 jra L3612
3090 006e L7702:
3091 ; 49 case 1: PB_DDR=0xff;PB_CR1=0xff;break;
3093 006e 35ff5007 mov _PB_DDR,#255
3096 0072 35ff5008 mov _PB_CR1,#255
3099 0076 203d jra L3612
3100 0078 L1012:
3101 ; 50 case 2: PC_DDR=0xff;PC_CR1=0xff;break;
3103 0078 35ff500c mov _PC_DDR,#255
3106 007c 35ff500d mov _PC_CR1,#255
3109 0080 2033 jra L3612
3110 0082 L3012:
3111 ; 51 case 3: PD_DDR=0xff;PD_CR1=0xff;break;
3113 0082 35ff5011 mov _PD_DDR,#255
3116 0086 35ff5012 mov _PD_CR1,#255
3119 008a 2029 jra L3612
3120 008c L5012:
3121 ; 52 case 4: PE_DDR=0xff;PE_CR1=0xff;break;
3123 008c 35ff5016 mov _PE_DDR,#255
3126 0090 35ff5017 mov _PE_CR1,#255
3129 0094 201f jra L3612
3130 0096 L7012:
3131 ; 56 default: break;
3133 0096 201d jra L3612
3134 0098 L1612:
3136 0098 201b jra L3612
3137 009a L5512:
3138 ; 61 switch(port)
3140 009a 7b01 ld a,(OFST+1,sp)
3142 ; 71 default: break;
3143 009c 4d tnz a
3144 009d 270e jreq L1112
3145 009f 4a dec a
3146 00a0 2715 jreq L3112
3147 00a2 4a dec a
3148 00a3 271c jreq L5112
3149 00a5 4a dec a
3150 00a6 2723 jreq L7112
3151 00a8 4a dec a
3152 00a9 272a jreq L1212
3153 00ab 2008 jra L3612
3154 00ad L1112:
3155 ; 63 case 0: PA_DDR=0x00;PA_CR2=0xff;break;
3157 00ad 725f5002 clr _PA_DDR
3160 00b1 35ff5004 mov _PA_CR2,#255
3162 00b5 L3612:
3163 ; 74 }
3166 00b5 85 popw x
3167 00b6 81 ret
3168 00b7 L3112:
3169 ; 64 case 1: PB_DDR=0x00;PB_CR2=0xff;break;
3171 00b7 725f5007 clr _PB_DDR
3174 00bb 35ff5009 mov _PB_CR2,#255
3177 00bf 20f4 jra L3612
3178 00c1 L5112:
3179 ; 65 case 2: PC_DDR=0x00;PC_CR2=0xff;break;
3181 00c1 725f500c clr _PC_DDR
3184 00c5 35ff500e mov _PC_CR2,#255
3187 00c9 20ea jra L3612
3188 00cb L7112:
3189 ; 66 case 3: PD_DDR=0x00;PD_CR2=0xff;break;
3191 00cb 725f5011 clr _PD_DDR
3194 00cf 35ff5013 mov _PD_CR2,#255
3197 00d3 20e0 jra L3612
3198 00d5 L1212:
3199 ; 67 case 4: PE_DDR=0x00;PE_CR2=0xff;break;
3201 00d5 725f5016 clr _PE_DDR
3204 00d9 35ff5018 mov _PE_CR2,#255
3207 00dd 20d6 jra L3612
3208 00df L3212:
3209 ; 71 default: break;
3211 00df 20d4 jra L3612
3212 00e1 L7612:
3213 00e1 20d2 jra L3612
3263 ; 76 void Send_led(u8 port)
3263 ; 77 {
3264 switch .text
3265 00e3 _Send_led:
3267 00e3 88 push a
3268 00e4 88 push a
3269 00000001 OFST: set 1
3272 ; 79 for(i=0;i<8;i++)
3274 00e5 0f01 clr (OFST+0,sp)
3275 00e7 L7222:
3276 ; 81 switch(port)
3278 00e7 7b02 ld a,(OFST+1,sp)
3280 ; 91 default: break;
3281 00e9 4d tnz a
3282 00ea 270e jreq L1712
3283 00ec 4a dec a
3284 00ed 2716 jreq L3712
3285 00ef 4a dec a
3286 00f0 271e jreq L5712
3287 00f2 4a dec a
3288 00f3 2726 jreq L7712
3289 00f5 4a dec a
3290 00f6 272e jreq L1022
3291 00f8 2035 jra L7322
3292 00fa L1712:
3293 ; 83 case 0: PA_ODR=GPIO[i];break;
3295 00fa 7b01 ld a,(OFST+0,sp)
3296 00fc 5f clrw x
3297 00fd 97 ld xl,a
3298 00fe e600 ld a,(_GPIO,x)
3299 0100 c75000 ld _PA_ODR,a
3302 0103 202a jra L7322
3303 0105 L3712:
3304 ; 84 case 1: PB_ODR=GPIO[i];break;
3306 0105 7b01 ld a,(OFST+0,sp)
3307 0107 5f clrw x
3308 0108 97 ld xl,a
3309 0109 e600 ld a,(_GPIO,x)
3310 010b c75005 ld _PB_ODR,a
3313 010e 201f jra L7322
3314 0110 L5712:
3315 ; 85 case 2: PC_ODR=GPIO[i];break;
3317 0110 7b01 ld a,(OFST+0,sp)
3318 0112 5f clrw x
3319 0113 97 ld xl,a
3320 0114 e600 ld a,(_GPIO,x)
3321 0116 c7500a ld _PC_ODR,a
3324 0119 2014 jra L7322
3325 011b L7712:
3326 ; 86 case 3: PD_ODR=GPIO[i];break;
3328 011b 7b01 ld a,(OFST+0,sp)
3329 011d 5f clrw x
3330 011e 97 ld xl,a
3331 011f e600 ld a,(_GPIO,x)
3332 0121 c7500f ld _PD_ODR,a
3335 0124 2009 jra L7322
3336 0126 L1022:
3337 ; 87 case 4: PE_ODR=GPIO[i];break;
3339 0126 7b01 ld a,(OFST+0,sp)
3340 0128 5f clrw x
3341 0129 97 ld xl,a
3342 012a e600 ld a,(_GPIO,x)
3343 012c c75014 ld _PE_ODR,a
3346 012f L3022:
3347 ; 91 default: break;
3349 012f L7322:
3350 ; 93 delay_ms(500);
3352 012f ae01f4 ldw x,#500
3353 0132 cd0000 call _delay_ms
3355 ; 79 for(i=0;i<8;i++)
3357 0135 0c01 inc (OFST+0,sp)
3360 0137 7b01 ld a,(OFST+0,sp)
3361 0139 a108 cp a,#8
3362 013b 25aa jrult L7222
3363 ; 95 }
3366 013d 85 popw x
3367 013e 81 ret
3421 ; 19 main()
3421 ; 20 {
3422 switch .text
3423 013f _main:
3427 ; 21 Init_GPIO(PB,OUT);
3429 013f ae0001 ldw x,#1
3430 0142 a601 ld a,#1
3431 0144 95 ld xh,a
3432 0145 cd004c call _Init_GPIO
3434 0148 L5622:
3435 ; 22 while (1){Send_led(PB);}
3437 0148 a601 ld a,#1
3438 014a ad97 call _Send_led
3441 014c 20fa jra L5622
3454 xdef _main
3455 xdef _Send_led
3456 xdef _Init_GPIO
3457 xdef _GPIO
3458 xdef _delay_us
3459 xdef _delay_ms
3478 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -