📄 rmp3cntl.lst
字号:
104 ; If (Accumulator = 0)
105 ; goto __RMP3_Set_Flag
106 ; If Set point = target
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:41:20 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
rmp3cntl.asm PAGE 3
107 ; ARP = AR3. AR2 -> out. AR3-> desired
108 ;--------------------------------------------------------------------------
109 000f __RMP3_Incr_Dly_Cntr:
110 000f 7802 ADRK #2 ; ARP = AR3. AR3 -> dly_cntr. AR2 -> out
111 ;--------------------------------------------------------------------------
112 0010 1080 LACC * ; Load accumulator with delay_cntr
113 ; ARP = AR3. AR3 -> dly_cntr. AR2 -> out
114 ;--------------------------------------------------------------------------
115 0011 b801 ADD #1 ; Update counter
116 ; ARP = AR3 AR3-> dly_cntr.
117 ; AR2-> out
118 ;--------------------------------------------------------------------------
119 0012 908a SACL *,AR2 ; Increment dly_cntr
120 ; ARP = AR2 AR2-> out.
121 ; AR3-> dly_cntr
122 ;--------------------------------------------------------------------------
123 0013 7c03 SBRK #3 ; ARP = AR2. AR2-> dly . AR3-> dly_cntr
124 ;--------------------------------------------------------------------------
125 0014 3080 SUB * ; Accumulator = dly_cntr - dly
126 ; ARP = AR2. AR2-> dly. AR3-> dly_cntr
127 ;--------------------------------------------------------------------------
128 0015 e344 BCND __rmp3_calc_exit , LT
0016 0028'
129 ; If (dly_cntr < dly)
130 ; goto __rmp3_calc_exit
131 ; If No decrement out
132 ; ARP = AR2. AR2-> dly . AR3->dly_cntr
133 ;--------------------------------------------------------------------------
134 0017 __RMP3_Dec:
135 0017 7803 ADRK #3 ; ARP = AR2. AR2-> out . AR3-> dly_cntr
136 ;--------------------------------------------------------------------------
137 0018 1080 LACC * ; Accumulator = out
138 ; ARP = AR2. AR2-> out. AR3-> dly_cntr
139 ;--------------------------------------------------------------------------
140 0019 ba01 SUB #1 ; Accumulator = out - 1
141 ; ARP = AR2. AR2-> out. AR3-> dly_cntr
142 ;--------------------------------------------------------------------------
143 001a 9090 SACL *- ; update out
144 ; ARP = AR2. AR2-> min. AR3-> dly_cntr
145 ;--------------------------------------------------------------------------
146 001b 3080 SUB * ; Accumulator = out - min
147 ; ARP = AR2. AR2-> min.
148 ; AR3-> dly_cntr
149 ;--------------------------------------------------------------------------
150 001c e38c BCND __RMP3_Clear_Dly_Cntr, GEQ
001d 0020'
151 ; If (out >= min) goto
152 ; __RMP3CNTL_Clear_Dly_Cntr
153 ; ARP = AR2. AR2-> min. AR3-> dly_cntr
154 ;--------------------------------------------------------------------------
155 001e 10a0 LACC *+ ; Accumulator = min
156 ; ARP = AR2. AR2-> out.
157 ; AR3-> dly_cntr
158 ;--------------------------------------------------------------------------
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:41:20 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
rmp3cntl.asm PAGE 4
159 001f 9090 SACL *- ; out = min
160 ; ARP = AR2. AR2->min.
161 ; AR3-> dly_cntr
162 ;--------------------------------------------------------------------------
163 ; ARP = AR2. AR2-> min.
164 ; AR3-> dly_cntr
165 0020 __RMP3_Clear_Dly_Cntr:
166 ;--------------------------------------------------------------------------
167 0020 7c01 SBRK #1 ; ARP = AR2. AR2-> dly_cntr
168 ; AR3-> dly_cntr
169 ;--------------------------------------------------------------------------
170 0021 ae80 SPLK #CLEAR,* ; store dly_cntr
0022 0000
171 ; ARP = AR2. AR2-> dly_cntr
172 ; AR3-> dly_cntr
173 ;--------------------------------------------------------------------------
174 0023 7980 B __rmp3_calc_exit
0024 0028'
175 ; Goto __rmp3cnt_calc_exit
176 ; ARP = AR2
177 ;--------------------------------------------------------------------------
178 0025 __RMP3_Set_Flag:
179 0025 7805 ADRK #5 ; ARP = AR3. AR3-> done_flag
180 ;--------------------------------------------------------------------------
181 0026 ae80 SPLK #RMP3_DONE_FLAG,*
0027 7fff
182 ; done_flag = 07fff;
183 ; ARP = AR3. AR3-> done_flag
184 ;--------------------------------------------------------------------------
185 0028 __rmp3_calc_exit:
186
187 0028 8b89 MAR * ,AR1 ; set ARP = SP before you exit.
188 0029 7c02 SBRK #(__RMP3_framesize+1)
189 ; deallocate frame, point to saved FP
190
191 .if (RETURN_ADDRESS_SAVE = ON)
192 002a 0090 LAR AR0, *- ; restore frame pointer
193 002b 7680 PSHD * ; push return address on hardware stack
194 .endif
195
196 .if (RETURN_ADDRESS_SAVE = OFF)
197 LAR AR0, * ; restore frame pointer
198 .endif
199
200 002c ef00 RET
201
202 .end
No Errors, No Warnings
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -