OFF. MSP430 vs. PDP-11. Возможно кому-либо будет любопытно взглянуть
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Bill 10 июля 2003 г. 15:43


//
// Source C text of strcpy function
//
char *strcpy(char *dst, char *src)
{
char *ptr = dst;
while (*ptr++ = *src++);
return dst;
}
//
// MSP430 assembler version of strcpy
//
16 char *strcpy(char *dst, char *src)
\ strcpy:
17 {
\ 000000 0A12 PUSH.W R10
18 char *ptr = dst;
\ 000002 0F4C MOV.W R12, R15
19 while (*ptr++ = *src++);
\ ??strcpy_0:
\ 000004 0D4F MOV.W R15, R13
\ 000006 1F53 ADD.W #0x1, R15
\ 000008 7A4E MOV.B @R14+, R10
\ 00000A CD4A0000 MOV.B R10, 0(R13)
\ 00000E 4A93 CMP.B #0x0, R10
\ 000010 F923 JNE ??strcpy_0
20 return dst;
\ 000012 3A41 POP.W R10
\ 000014 3041 RET
21 }
;
; PDP-11 Decus C strcpy version
;
.psect c$code
strcpy::
mov2(sp),r0
mov4(sp),r1
10$:
movb(r1)+,(r0)+
bne10$

mov2(sp),r0 ; Return out per Unix v7
return
.end



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

Ответы



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

E-mail: info@telesys.ru