eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming(announce) organic asm › Re: [OT] (announce) organic asm
  • Data: 2017-09-06 18:23:31
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu środa, 6 września 2017 18:02:45 UTC+2 użytkownik M.M. napisał:
    > On Wednesday, September 6, 2017 at 5:02:36 PM UTC+2, fir wrote:
    > > na razie odpoczywam a pozniej bede jednak poprawiac tego asma (( na dany moment
    dziala ale jest niepelny i ma sztuczne ograniczenia wpisane na sztywno dla ulatwienia
    tak ze jeszcze nie za bardzo da sie pokazywac ludziom))
    >
    > A jak już się da pokazywać, to co będzie robił ten asm lepiej niż
    > inne (poza ograniczeniami)?
    >
    > Pozdrawiam

    W dniu środa, 6 września 2017 18:02:45 UTC+2 użytkownik M.M. napisał:
    > On Wednesday, September 6, 2017 at 5:02:36 PM UTC+2, fir wrote:
    > > na razie odpoczywam a pozniej bede jednak poprawiac tego asma (( na dany moment
    dziala ale jest niepelny i ma sztuczne ograniczenia wpisane na sztywno dla ulatwienia
    tak ze jeszcze nie za bardzo da sie pokazywac ludziom))
    >
    > A jak już się da pokazywać, to co będzie robił ten asm lepiej niż
    > inne (poza ograniczeniami)?
    >
    > Pozdrawiam

    na razie ma dwie zalety (pisalem o tym)

    1) wspomniana skladnia samego asma w jakim sie pisze jest lepsza (jeszcze ja troche
    poprawie)

    2) generuje moim zdaniem uzyteczne raporty z przeprowadzonego dziela, (takie jak
    nizeej), co jest moim zdaniem przydatne (aczkolwiek sam kod w asmie tu jet glupawy bo
    to moje chaotyczne eksperymenty)







    Organic Assembler (org-asm) by fir 2017

    note: this is very early version with some artificial
    constraints, no error messages and only few mnemonics implemented,
    i will work on it in few days, though

    Opening: input.asm

    Code selected for assembly :

    0 ''
    1 ''
    2 'rdtsc'
    3 'mov ebx eax'
    4 'rdtsc'
    5 'sub eax ebx'
    6 ''
    7 'call print_eax'
    8 '; rdtsc'
    9 '; call print_eax'
    10 ''
    11 'mov eax 777'
    12 'call print_eax'
    13 ''
    14 'hoo:'
    15 'add eax 3'
    16 'call print_eax'
    17 '; jmp hoo'
    18 ''
    19 'sub eax 5'
    20 'call print_eax'
    21 ''
    22 'imul eax 8'
    23 'call print_eax'
    24 ''
    25 'mov eax some_value'
    26 'call print_eax_hex'
    27 ''
    28 'mov ecx eax'
    29 'mov eax (ecx)'
    30 'call print_eax'
    31 ''
    32 ''
    33 'mov eax 55'
    34 'cmp eax 5'
    35 'jne skip'
    36 'mov eax 100'
    37 'call print_eax'
    38 'skip:'
    39 'mov eax 200'
    40 'call print_eax'
    41 ''
    42 'mov eax 10'
    43 'back:'
    44 'dec eax'
    45 'call print_eax'
    46 'cmp eax 0'
    47 'jne back'
    48 ''
    49 'call print_cpuid_info'
    50 '; zzzzz'
    51 ''
    52 'call print_esp'
    53 'call show_msgbox_hello'
    54 'call print_esp'
    55 'call show_msgbox_hello'
    56 ''
    57 'push 0'
    58 'call kernel32.ExitProcess'
    59 ''
    60 'print_cpuid_info:'
    61 'mov eax 1'
    62 'cpuid'
    63 'push edx'
    64 'push ecx'
    65 'push ebx'
    66 'push eax'
    67 'push cpuid_txt'
    68 'call msvcrt.printf'
    69 'pop eax'
    70 'pop eax'
    71 'pop eax'
    72 'pop eax'
    73 'pop eax'
    74 'ret'
    75 ''
    76 ''
    77 ''
    78 ''
    79 ''
    80 'print_esp:'
    81 'mov eax esp'
    82 'push eax'
    83 'push note_esp'
    84 'call msvcrt.printf'
    85 'pop eax'
    86 'pop eax'
    87 'ret'
    88 ''
    89 'print_eax:'
    90 'push eax'
    91 'push note_eax'
    92 'call msvcrt.printf'
    93 'pop eax'
    94 'pop eax'
    95 'ret'
    96 ''
    97 'print_eax_hex:'
    98 'push eax'
    99 'push note_eax_hex'
    100 'call msvcrt.printf'
    101 'pop eax'
    102 'pop eax'
    103 'ret'
    104 ''
    105 'show_msgbox_hello:'
    106 'push 0'
    107 'push null_string'
    108 'push hello_message'
    109 'push 0'
    110 'call user32.MessageBoxA'
    111 'ret'
    112 ''
    113 '; z z a a a'
    114 'test:'
    115 'mov eax (ecx)'
    116 'mov (ecx) eax'
    117 'ret'
    118 ''
    119 ''
    120 ''

    Data selected for build :

    0 ''
    1 'note_eax: " eax = %d " 10 0'
    2 'note_eax_hex: " eax = %x " 10 0'
    3 ''
    4 'note_esp: " esp = 0x%08x " 10 0'
    5 'cpuid_txt: "cpuid" 10 " eax = 0x%08x" 10 " ebx = 0x%08x" 10 " ecx = 0x%08x" 10
    " edx = 0x%08x" 10'
    6 ''
    7 'hello_message: " hello asm world ! " 0'
    8 'null_string: 0'
    9 'some_value: 33 0 0 0'
    10 ''
    11 ''

    Building imports :

    kernel32
    ExitProcess (0x00402400)

    msvcrt
    printf (0x00402440)

    user32
    MessageBoxA (0x00402480)

    Building data section :

    label note_eax: (0x00403000)
    label note_eax_hex: (0x0040300d)
    label note_esp: (0x0040301a)
    label cpuid_txt: (0x0040302a)
    label hello_message: (0x00403068)
    label null_string: (0x0040307c)
    label some_value: (0x0040307d)

    129 (0x0081) bytes collected in data section

    402000 20 65 61 78 20 3d 20 25 64 20 20 0a 00 20 65 61
    402010 78 20 3d 20 25 78 20 20 0a 00 20 65 73 70 20 3d
    402020 20 30 78 25 30 38 78 20 0a 00 63 70 75 69 64 0a
    402030 20 65 61 78 20 3d 20 30 78 25 30 38 78 0a 20 65
    402040 62 78 20 3d 20 30 78 25 30 38 78 0a 20 65 63 78
    402050 20 3d 20 30 78 25 30 38 78 0a 20 65 64 78 20 3d
    402060 20 30 78 25 30 38 78 0a 20 68 65 6c 6c 6f 20 61
    402070 73 6d 20 77 6f 72 6c 64 20 21 20 00 00 21 00 00
    402080 00

    Assembling asm :

    274 (0x0112) bytes assembled:

    401000 0f 31 89 c3 0f 31 29 d8 e8 c7 00 00 00 b8 09 03
    401010 00 00 e8 bd 00 00 00 05 03 00 00 00 e8 b3 00 00
    401020 00 2d 05 00 00 00 e8 a9 00 00 00 69 c0 08 00 00
    401030 00 e8 9e 00 00 00 b8 7d 30 40 00 e8 a3 00 00 00
    401040 89 c1 8b 01 e8 8b 00 00 00 b8 37 00 00 00 3d 05
    401050 00 00 00 0f 85 0a 00 00 00 b8 64 00 00 00 e8 71
    401060 00 00 00 b8 c8 00 00 00 e8 67 00 00 00 b8 0a 00
    401070 00 00 48 e8 5c 00 00 00 3d 00 00 00 00 0f 85 ef
    401080 ff ff ff e8 1f 00 00 00 e8 36 00 00 00 e8 60 00
    401090 00 00 e8 2c 00 00 00 e8 56 00 00 00 68 00 00 00
    4010a0 00 ff 15 00 24 40 00 b8 01 00 00 00 0f a2 52 51
    4010b0 53 50 68 2a 30 40 00 ff 15 40 24 40 00 58 58 58
    4010c0 58 58 c3 89 e0 50 68 1a 30 40 00 ff 15 40 24 40
    4010d0 00 58 58 c3 50 68 00 30 40 00 ff 15 40 24 40 00
    4010e0 58 58 c3 50 68 0d 30 40 00 ff 15 40 24 40 00 58
    4010f0 58 c3 68 00 00 00 00 68 7c 30 40 00 68 68 30 40
    401100 00 68 00 00 00 00 ff 15 80 24 40 00 c3 8b 01 89
    401110 01 c3

    Saving Output: result.exe

    OK


    co dorobie pozniej to jeszcze nie wiem

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: