Pokaż wyniki od 1 do 2 z 2

Temat: Prosze o sprawdzenie kodu...

  1. #1

    Domyślnie Prosze o sprawdzenie kodu...

    Witajcie! Dostaliśmy na laborkach za zadanie wyświetlić zawartość akumulatora:
    Wspólnymi siłami spłodziliśmy cuś takiego:

    SECTION .data
    wynik: db "Wynik:"
    rejestr: db 0
    db 10
    dlugosc: equ $-wynik


    SECTION
    global main
    main:
    move rejestr,eax ; eax(acc) do rejestr
    mov edx,dlugosc ; parametry funkcji
    mov ecx,wynik
    mov ebx,1
    mov eax,4
    int 0x80 ; wyswietlenie na ekran

    mov ebx,0
    mov eax,1
    int 0x80 ; wyjscie

    Program nie kompiluje się i dostaję błąd 11: error: parser: instruction required. No i ani ja ani ziomki z grupy już pomysłów nie mamy...
    Proszę o pomoc, jestem początkującym programistą, assembler to dla mnie jeszcze coś nowego...
    Mam czas do soboty...

  2. #2

    Domyślnie

    nigdy nie pisałem w asemblerze do linuxa, ale co widzę:
    1.SECTION .data - dobrze, wtedy musi być SECTION .code ?
    2.move rejestr,eax - 2a: "mov", 2b: rejestr jest jeden bajt (db), eax jest cztery bajty
    3.jesli chcesz wyświetlić liczbę z eax, musisz z początku ję konwertować do wiersza, wtedy to może być aż 9 symbolów. do konwertowania są różne procedury dodatkowe.
    4.db 10 - miałeś na myśli znak nowej linii? w każdym razie to nie oznacza "bufer 10 bajtów"

    musisz dla początku wyświetlić jakeś słowo ("Witaj, Piotryku!" albo inne), potem uznać, jak działa konwerter i konwertować liczbę z eax w symboły na miejście tego "Witaj...", wyświetlić znów i zobaczyć co otrzymasz. dobrze używać debuggera dla uczenia.

    zobacz tu więcej: http://rudy.mif.pg.gda.pl/~bogdro/linux/index.php

    pozdrawiam
    szurik

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •