eGospodarka.pl
eGospodarka.pl poleca

  • Data: 2011-11-05 13:01:43
    Temat: Re: fajny assembler
    Od: " " <f...@N...gazeta.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    >
    >
    >
    uff, chyba sie udalo (o ile nie wystapia dalsze problemy np
    z importem z asma), pomogly mi dwie rzeczy

    (1) disasemblujace mozliwosci objconv'a - zauwazylem ze w
    disasemblerze blok text jest oznaczony jako noexecute i
    listowany jako dane a nie jako kod
    (choc przy linkowaniu wczesniej i tak sie dawal uruchamiac
    chyba ze przoczylam jakas zmiane i wczeniej tak nie bylo,
    ale chyba nie, raczej musialo i wczesniej tak byc, ale juz nie wiem do konca)

    2) w necie znalazlem jak ktos uzywa zamiast "nasm -f obj prog.asm"
    "nasm -f win32 prog.asm" postosowalem to i okazalo sie ze po tym sekcja
    kodu jest ok - to produkuje coffa nie omfa ale objconvem moge dodac
    underskory i przerobic na omfa i zlinkowalo sie ok rozniez z sekcja danych
    - no to pewna ulga, troche odpoczne i zobacze czy sse zadziala

    fir.asm:

    ;-----------------------------
    global asm_routine
    ;-----------------------------
    section .text

    asm_routine:

    enter 0,0
    pusha

    mov eax, 1111
    mov ebx, 2222
    mov ecx, 3333
    mov edx, 4444

    popa
    mov eax, 7777 ; return back to C
    leave
    ret
    ;------------------------------
    section .data

    asm_routine_string db "asm routine string data", 0
    ;-----------------------------

    make.bat :

    rem assembly to win32 coff

    nasm -o fir_coff.obj -f win32 fir.asm

    rem convert win32 coff to bcc omf with underscores

    objconv -fomf -nu+ fir_coff.obj fir_omf.obj

    rem dissasembly for sure

    objconv -fnasm fir.obj fir_obj_nasm.asm
    objconv -fmasm fir.obj fir_obj_masm.asm
    objconv -fgas fir.obj fir_obj_gas.asm

    wynik disasemblacji w trybie nasm:

    ; Disassembly of file: fir.obj
    ; Sat Nov 05 13:37:17 2011
    ; Mode: 32 bits
    ; Syntax: YASM/NASM
    ; Instruction set: 80386


    global asm_routine

    absolut equ 00000000H ; 0
    @feat.00 equ 00000001H ; 1


    SECTION .text align=16 execute ; section number 1,
    code

    asm_routine:; Function begin
    enter 0, 0 ; 0000 _ C8, 0000, 00
    pushad ; 0004 _ 60
    mov eax, 1111 ; 0005 _ B8, 00000457
    mov ebx, 2222 ; 000A _ BB, 000008AE
    mov ecx, 3333 ; 000F _ B9, 00000D05
    mov edx, 4444 ; 0014 _ BA, 0000115C
    popad ; 0019 _ 61
    mov eax, 7777 ; 001A _ B8, 00001E61
    leave ; 001F _ C9
    ret ; 0020 _ C3
    ; asm_routine End of function


    SECTION .data align=4 noexecute ; section number 2,
    data

    asm_routine_string: ; byte
    db 61H, 73H, 6DH, 20H, 72H, 6FH, 75H, 74H ; 0000 _ asm rout
    db 69H, 6EH, 65H, 20H, 73H, 74H, 72H, 69H ; 0008 _ ine stri
    db 6EH, 67H, 20H, 64H, 61H, 74H, 61H, 00H ; 0010 _ ng data.

    nasm wstawil jakies dwa dziwne inty, nie wiem co to jest - ale trudno


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: