⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu.lst

📁 一个小的操作系统包括应用程序很有参考价值
💻 LST
📖 第 1 页 / 共 3 页
字号:
  62               		PUSH R23
  63               		PUSH R24
  64               		PUSH R25
  65               		PUSH R26
  66               		PUSH R27
  67               		PUSH R28
  68               		PUSH R29
  69               		PUSH R30
  70               		PUSH R31
  71               	
  72               		IN R16,0X3F   ;保存SREG寄存器
  73               		PUSH R16
  74               	.endm
  75               	
  76               	;恢复寄存器宏
  77               	
  78               	.macro POPRS
  79               	 
  80               		POP R16       ;恢复SREG寄存器
  81               		OUT 0X3F,R16
  82               	
  83               		POP R31
  84               		POP R30
  85               		POP R29
  86               		POP R28
  87               		POP R27
  88               		POP R26
  89               		POP R25
  90               		POP R24
  91               		POP R23
  92               		POP R22
  93               		POP R21
  94               		POP R20
  95               		POP R19
  96               		POP R18
  97               		POP R17
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccAvaaaa.s 			page 11


  98               		POP R16
  99               		POP R15
 100               		POP R14
 101               		POP R13
 102               		POP R12
 103               		POP R11
 104               		POP R10
 105               		POP R9
 106               		POP R8
 107               		POP R7
 108               		POP R6
 109               		POP R5
 110               		POP R4
 111               		POP R3
 112               		POP R2
 113               		POP R1
 114               		POP R0
 115               	.endm
 116               	
 117               	;汇编函数跳入下一条线程
 118               	OS_GET_TO_TASK_INT:
 119:os_cpu.S      ****   POPRS
 119               	> 
 119 0000 0F91      	> POP R16
 119 0002 0FBF      	> OUT 0X3F,R16
 119               	> 
 119 0004 FF91      	> POP R31
 119 0006 EF91      	> POP R30
 119 0008 DF91      	> POP R29
 119 000a CF91      	> POP R28
 119 000c BF91      	> POP R27
 119 000e AF91      	> POP R26
 119 0010 9F91      	> POP R25
 119 0012 8F91      	> POP R24
 119 0014 7F91      	> POP R23
 119 0016 6F91      	> POP R22
 119 0018 5F91      	> POP R21
 119 001a 4F91      	> POP R20
 119 001c 3F91      	> POP R19
 119 001e 2F91      	> POP R18
 119 0020 1F91      	> POP R17
 119 0022 0F91      	> POP R16
 119 0024 FF90      	> POP R15
 119 0026 EF90      	> POP R14
 119 0028 DF90      	> POP R13
 119 002a CF90      	> POP R12
 119 002c BF90      	> POP R11
 119 002e AF90      	> POP R10
 119 0030 9F90      	> POP R9
 119 0032 8F90      	> POP R8
 119 0034 7F90      	> POP R7
 119 0036 6F90      	> POP R6
 119 0038 5F90      	> POP R5
 119 003a 4F90      	> POP R4
 119 003c 3F90      	> POP R3
 119 003e 2F90      	> POP R2
 119 0040 1F90      	> POP R1
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccAvaaaa.s 			page 12


 119 0042 0F90      	> POP R0
 120:os_cpu.S      ****   OS_SET_I              ;开中断
 121:os_cpu.S      ****   RETI
 122               	  
 123               	;汇编函数跳入下一条线程
 124               	OS_GET_TO_TASK_DISP:
 125:os_cpu.S      ****   POPRS
 125               	> 
 125 0048 0F91      	> POP R16
 125 004a 0FBF      	> OUT 0X3F,R16
 125               	> 
 125 004c FF91      	> POP R31
 125 004e EF91      	> POP R30
 125 0050 DF91      	> POP R29
 125 0052 CF91      	> POP R28
 125 0054 BF91      	> POP R27
 125 0056 AF91      	> POP R26
 125 0058 9F91      	> POP R25
 125 005a 8F91      	> POP R24
 125 005c 7F91      	> POP R23
 125 005e 6F91      	> POP R22
 125 0060 5F91      	> POP R21
 125 0062 4F91      	> POP R20
 125 0064 3F91      	> POP R19
 125 0066 2F91      	> POP R18
 125 0068 1F91      	> POP R17
 125 006a 0F91      	> POP R16
 125 006c FF90      	> POP R15
 125 006e EF90      	> POP R14
 125 0070 DF90      	> POP R13
 125 0072 CF90      	> POP R12
 125 0074 BF90      	> POP R11
 125 0076 AF90      	> POP R10
 125 0078 9F90      	> POP R9
 125 007a 8F90      	> POP R8
 125 007c 7F90      	> POP R7
 125 007e 6F90      	> POP R6
 125 0080 5F90      	> POP R5
 125 0082 4F90      	> POP R4
 125 0084 3F90      	> POP R3
 125 0086 2F90      	> POP R2
 125 0088 1F90      	> POP R1
 125 008a 0F90      	> POP R0
 126:os_cpu.S      ****   OS_SET_I              ;开中断
 127:os_cpu.S      ****   RET
 128               	
 129               	;汇编线程等待处理过程
 130               	OS_DISP_TIME_P:                    ;线程延时处理
 131:os_cpu.S      **** 	OS_CLEAR_I                     ;关中断
 132:os_cpu.S      **** 	PUSHRS                         ;保存寄存器
 132 0092 0F92      	> PUSH R0
 132 0094 1F92      	> PUSH R1
 132 0096 2F92      	> PUSH R2
 132 0098 3F92      	> PUSH R3
 132 009a 4F92      	> PUSH R4
 132 009c 5F92      	> PUSH R5
 132 009e 6F92      	> PUSH R6
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccAvaaaa.s 			page 13


 132 00a0 7F92      	> PUSH R7
 132 00a2 8F92      	> PUSH R8
 132 00a4 9F92      	> PUSH R9
 132 00a6 AF92      	> PUSH R10
 132 00a8 BF92      	> PUSH R11
 132 00aa CF92      	> PUSH R12
 132 00ac DF92      	> PUSH R13
 132 00ae EF92      	> PUSH R14
 132 00b0 FF92      	> PUSH R15
 132 00b2 0F93      	> PUSH R16
 132 00b4 1F93      	> PUSH R17
 132 00b6 2F93      	> PUSH R18
 132 00b8 3F93      	> PUSH R19
 132 00ba 4F93      	> PUSH R20
 132 00bc 5F93      	> PUSH R21
 132 00be 6F93      	> PUSH R22
 132 00c0 7F93      	> PUSH R23
 132 00c2 8F93      	> PUSH R24
 132 00c4 9F93      	> PUSH R25
 132 00c6 AF93      	> PUSH R26
 132 00c8 BF93      	> PUSH R27
 132 00ca CF93      	> PUSH R28
 132 00cc DF93      	> PUSH R29
 132 00ce EF93      	> PUSH R30
 132 00d0 FF93      	> PUSH R31
 132               	> 
 132 00d2 0FB7      	> IN R16,0X3F
 132 00d4 0F93      	> PUSH R16
 133:os_cpu.S      **** 	IN R25,0X3E                    ;传递SPH
 134:os_cpu.S      **** 	IN R24,0X3D                    ;传递SPL
 135:os_cpu.S      **** 	RCALL OS_SAVE_TASK_SP          ;调用C保存SP
 136:os_cpu.S      **** 	RCALL OS_ATTEMPER              ;进入C调度
 137:os_cpu.S      **** 	RJMP  OS_GETTO_NEXT_TASK_DISP  ;进入C指向函数处理过程
 138               		
 139               	
 140               	;第一次启动入口点
 141               	START_TICK_POINT:	
 142:os_cpu.S      **** 	RCALL OS_ATTEMPER;             ;进入C调度
 143:os_cpu.S      **** 	RJMP  OS_GETTO_NEXT_TASK_DISP  ;进入C指向函数处理过程
 144               	
 145               	;中断入口
 146               	.global	SIG_OVERFLOW0              ;中断入口点 用户根据情况修改
 147               	SIG_OVERFLOW0:                     ;中断入口点 用户根据情况修改
 148               	
 149               	 	;SEI
 150:os_cpu.S      **** 	OS_CLEAR_I                     ;关中断
 151:os_cpu.S      **** 	PUSHRS                         ;保存寄存器
 151 00e6 0F92      	> PUSH R0
 151 00e8 1F92      	> PUSH R1
 151 00ea 2F92      	> PUSH R2
 151 00ec 3F92      	> PUSH R3
 151 00ee 4F92      	> PUSH R4
 151 00f0 5F92      	> PUSH R5
 151 00f2 6F92      	> PUSH R6
 151 00f4 7F92      	> PUSH R7
 151 00f6 8F92      	> PUSH R8
 151 00f8 9F92      	> PUSH R9
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccAvaaaa.s 			page 14


 151 00fa AF92      	> PUSH R10
 151 00fc BF92      	> PUSH R11
 151 00fe CF92      	> PUSH R12
 151 0100 DF92      	> PUSH R13
 151 0102 EF92      	> PUSH R14
 151 0104 FF92      	> PUSH R15
 151 0106 0F93      	> PUSH R16
 151 0108 1F93      	> PUSH R17
 151 010a 2F93      	> PUSH R18
 151 010c 3F93      	> PUSH R19
 151 010e 4F93      	> PUSH R20
 151 0110 5F93      	> PUSH R21
 151 0112 6F93      	> PUSH R22
 151 0114 7F93      	> PUSH R23
 151 0116 8F93      	> PUSH R24
 151 0118 9F93      	> PUSH R25
 151 011a AF93      	> PUSH R26
 151 011c BF93      	> PUSH R27
 151 011e CF93      	> PUSH R28
 151 0120 DF93      	> PUSH R29
 151 0122 EF93      	> PUSH R30
 151 0124 FF93      	> PUSH R31
 151               	> 
 151 0126 0FB7      	> IN R16,0X3F
 151 0128 0F93      	> PUSH R16
 152:os_cpu.S      **** 	IN R25,0X3E                    ;传递SPH
 153:os_cpu.S      **** 	IN R24,0X3D                    ;传递SPL
 154:os_cpu.S      **** 	RCALL OS_SAVE_TASK_SP          ;调用C保存SP
 155:os_cpu.S      **** 	RCALL OS_RELOAD_TICK           ;C函数重新初始化系统时钟
 156:os_cpu.S      ****     RCALL OS_DLY_TIME_DEC          ;时钟节拍处理
 157:os_cpu.S      **** 	RCALL OS_ATTEMPER;             ;进入C调度
 158:os_cpu.S      **** 	RJMP  OS_GETTO_NEXT_TASK_INT   ;进入C指向函数处理过程
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccAvaaaa.s 			page 15


DEFINED SYMBOLS
                            *ABS*:00000000 os_cpu.S
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/signal.h
                            *ABS*:00000000 os_cpu.S
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/iom8.h
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/sfr_defs.h
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
                            *ABS*:00000000 os_cpu.S
                            *ABS*:00000000 <command line>
                            *ABS*:00000000 <built-in>
                            *ABS*:00000000 os_cpu.S
            os_cpu.S:118    .text:00000000 OS_GET_TO_TASK_INT
            os_cpu.S:124    .text:00000048 OS_GET_TO_TASK_DISP
            os_cpu.S:141    .text:000000e0 START_TICK_POINT
            os_cpu.S:130    .text:00000090 OS_DISP_TIME_P
            os_cpu.S:147    .text:000000e4 __vector_9

UNDEFINED SYMBOLS
OS_SAVE_TASK_SP
OS_ATTEMPER
OS_GETTO_NEXT_TASK_DISP
OS_RELOAD_TICK
OS_DLY_TIME_DEC
OS_GETTO_NEXT_TASK_INT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -