ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
41416 Топик полностью
ShiphT (13.10.2005 12:07, просмотров: 1) ответил SAA_AAS на Не совсем, то.
Блин, какие стартапы? Листинг одной функции (assembler sourse). Пример Файл на Си
int test(int nVar1, int nVar2)
{
   if(nVar1 & 0x0080)
      nVar2 = (nVar1 << 6) + (nVar2 ^ 0x5678);
   else
      nVar2 = (nVar1 & 0x7777) - (nVar2 | nVar1);
  return nVar2;
}
Ассемблерный файл:
        NAME main

        RTMODEL "ARMv4M", "USED"
        RTMODEL "ARMv4T", "USED"
        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__interwork"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

        PUBLIC test
        FUNCTION test,0203H
        LOCFRAME CSTACK, 4, STACK
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32
        CFI Resource R14:32, SPSR:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 2
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI CPSR SameValue
        CFI R14 Undefined
        CFI SPSR SameValue
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function test
        CODE16
test:
        PUSH        {LR}
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
        MOV         R2,R0
        LSL         R2,R2,#+0x18
        BPL         ??test_0
        LSL         R0,R0,#+0x6
        LDR         R2,??test_1        ;; 0x5678
        EOR         R2,R1
        ADD         R1,R0,R2
        B           ??test_2
??test_0:
        LDR         R2,??test_1+0x4    ;; 0x7777
        AND         R2,R0
        ORR         R0,R1
        SUB         R1,R2,R0
??test_2:
        MOV         R0,R1
        POP         {R1}
        BX          R1                 ;; return
        DATA
??test_1:
        DC32        0x5678
        DC32        0x7777
        CFI EndBlock cfiBlock0

        END
// 
// 40 bytes in segment CODE
// 
// 40 bytes of CODE memory
//
//Errors: none
//Warnings: none
О каких стартапах идет речь? Я не предлагаю весь проект, а только одну функцию отдельным файлом на выходе компилятора (до линковки)