Кстати (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 01 декабря 2003 г. 17:16
В ответ на: 16-битные регистры это T* и AR* отправлено SМ 01 декабря 2003 г. 17:10

объявив counter как volatile все, естессно, становится на свои места и работает. но это все равно не значит, что я это когда либо применю.


long int main(){
volatile unsigned long int counter = 0;
unsigned short i = 65536;
do {
counter++;
} while( --i != 0 );

return counter;
}


Действительно, сформирован локальный аппаратный цикл на 65536 повторений (BRC0+1)

;*******************************************************************************
;* FUNCTION NAME: _main *
;* *
;* Function Uses Regs : AC0,AC0,AR1,SP,BRC0,CARRY,M40,SATA,SATD,RDM,FRCT, *
;* SMUL *
;* Stack Frame : Compact (No Frame Pointer) *
;* Total Frame Size : 4 words *
;* (2 return address/alignment) *
;* (2 local values) *
;*******************************************************************************
_main:
MOV #-1, AR1
MOV AR1, BRC0
AADD #-3, SP
MOV #0, AC0 ; |4|

RPTBLOCAL L2-1
|| MOV AC0, dbl(*SP(#0)) ; |4|

; loop starts
L1:
MOV dbl(*SP(#0)), AC0 ; |7|
ADD #1, AC0 ; |7|
MOV AC0, dbl(*SP(#0)) ; |7|
; loop ends ; |8|
L2:
MOV dbl(*SP(#0)), AC0 ; |10|
AADD #3, SP ; |10|
RET ; |10|
; return occurs ; |10|


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru