Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [ASM_C] Compilare File C ed ASM

    salve!

    Qualcuno di voi conosce come compilare un file C che usa delle funzioni scritte in asm ?

    tipo questo:

    codice:
    #include <stdio.h>
    extern int power2 (int factor, int power);
    void main()
    {
    printf(”3 volte 2 elevato 5=%d\n”, power2(3,5));
    }
    
    
    Modulo Assembler:
    
    
    PUBLIC _power2
    .MODEL small
    .CODE
    _power2    PROC
    	PUSH BP
    	MOV BP, SP
    	MOV AX, [BP+4] ; primo parametro
    	MOV CX, [BP+6] ; secondo parametro
    	SHL AX, CL
    	POP BP
    	RET
    _power2    ENDP
    END
    http://www.mangaitalia.net/

    questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo

  2. #2
    il tuo compilatore c, per che os è?
    dos/win16 o win32?
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  3. #3
    uso Dev-cpp quando sono su winxp e il gcc quando sono sulla slackware.
    Del dev-cpp uso l'ultima versione, del gcc uso la versione che è stata rilasciata insieme alla slackware 10.0...
    http://www.mangaitalia.net/

    questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo

  4. #4
    ho capito...
    allora devi usare puntatori a 32 bit


    #include <stdio.h>
    extern int power2 (int factor, int power);
    void main()
    {
    printf(”3 volte 2 elevato 5=%d\n”, power2(3,5));
    }



    ...
    .model flat, stdcall
    ...
    public power2

    power2:
    push ebp
    mov ebp, esp
    mov eax, dword ptr ss:[ebp+8]
    shl eax, dword ptr ss:[ebp+12]
    retn 4
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  5. #5
    mm non ho capito bene...

    io pensavo di dover compilare i lfile asm a parte creadno l'obj e poi linkarlo in fase di compilazione al programma in C con il compilatore...

    perchè mi deve diventare così:

    codice:
    power2: 
    push ebp 
    mov ebp, esp 
    mov eax, dword ptr ss:[ebp+8] 
    shl eax, dword ptr ss:[ebp+12] 
    retn 4
    http://www.mangaitalia.net/

    questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo

  6. #6
    Originariamente inviato da rocco.g
    mm non ho capito bene...

    io pensavo di dover compilare i lfile asm a parte creadno l'obj e poi linkarlo in fase di compilazione al programma in C con il compilatore...

    perchè mi deve diventare così:

    codice:
    power2: 
    push ebp 
    mov ebp, esp 
    mov eax, dword ptr ss:[ebp+8] 
    shl eax, dword ptr ss:[ebp+12] 
    retn 4
    per innanzitutto tu compili a 32bit il codice C, quindi passi variabili a 32bit al codice asm! il codice asm a sua volta deve essere a 32bit!
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  7. #7
    ahhh mi è tutto chiaro !!!

    ok!!! grazie!
    http://www.mangaitalia.net/

    questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.