Programy nie chcą się skompilować, ciągle widnieje 'fatal error'

haxs

Użytkownik
Dołączył
Lipiec 29, 2007
Posty
35
witam
pobrałem Masm32
skopiowałem na próbę kod źródłowy jak to by było skompilować program i lipa:
Kod:
.model  TINY                                 ;dyrektywa model, mowi kompilatorowi
                                                   ;na jakim modelu pamieci bedzie operowal

.code                                            ;dyrektywa .code rozpoczyna czesc kodu
org    100h                                    ;dyrektywa org 100h, jest informacja
                                                    ;dla kompilatora, ze program jest typu .com
Start:                 
        mov        bx, OFFSET Tablica     ;przeslanie do bx offsetu tablicy "Tablica"
        mov        cx, DL_TABLICY         ;przeslanie do cx (licznika petli) dlugosci tablicy
        xor        ax, ax                         ;zerowanie rejestru ax poprzez xor

Petla:                                            ;etykieta petli
        add        al, byte ptr [ds:bx]       ;dodaj do al bajt z tablicy
        inc        bx                                ;przesun sie o jedno miejsce dalej  w tablicy
loop    Petla                                   ;skocz do "Petla" póki cx <> 0
 
        mov        bx, dl_tablicy              ;przeslij do bx dlugosc tablicy
        div        bx                               ;podziel ax przez bx, wynik w ax
        mov        [Srednia], ax              ;przeslij zawartosc ax, do miejsca w pamieci
                                                    ;oznaczonego jako Srednia
        mov        ah, 4Ch                      ;zakonczenie programu
        int        21h
;==========================================================================
;miejsce z danymi
dl_tablicy        EQU     12       
Tablica                DB      01h, 02h, 00h, 10h, 09h, 30h
                DB      13h, 08h, 12h, 08h, 0Ah, 05h
Srednia                DW      00h

END Start
119cfo5.png



a i jeszcze wypróbowałem Tasm'a i też skopiowała na próbę kod źródłowy czy mi się skompiluje i lipa:
.model tiny

.code

org 100h

start:

** mov** ah, 9

** mov** dx, offset info

** int** 21h

** mov** ah, 0

** int** 16h

** mov** ax, 4C00h

** int** 21h

info** db** 'Witaj Świecie.$'

end start
21948oz.png


I nie wiem co już robić, aby się skompilowały, a nie chcę używać innych kompilatorów...

pracuje na trzydziesto-dwu bitowym viściacku
 
Ostatnio edytowane przez moderatora:

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
W pierwszym przypadku dość jasno pisze Ci, że nie może uzyskać dostępu do pliku.
W drugim strzelam, że te gwiazdki są niepotrzebne.
I jak chcesz korzystać z masm32 to polecam WinAsm, całkiem fajne IDE własnie dla tego kompilatora.
 

haxs

Użytkownik
Dołączył
Lipiec 29, 2007
Posty
35
W pierwszym przypadku dość jasno pisze Ci, że nie może uzyskać dostępu do pliku.
wiem, że nie można uzyskać dostępu, ale dlaczego ?
być może mam zabezpieczenie przed kopiowaniem na dysk C:\ i zapis, ale jak to wyłączyć i czy to na pewno to będzie problemem ?

W drugim strzelam, że te gwiazdki są niepotrzebne.
tak tak, ale ja tych gwiazdek nie wstawiałem....
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
być może mam zabezpieczenie przed kopiowaniem na dysk C:\ i zapis
No to upewnij się i ew. coś z tym zrób.
czy to na pewno to będzie problemem ?
Jest taki stary, sprawdzony sposób - weź i sprawdź.

TASMowi najwyraźniej nie podoba się sposób, w jaki zapisujesz liczby (bo zdaje się, że błąd jest właśnie w liniach, w których one występują).

Proponowałbym Ci przed zabraniem się za assemblera jego naukę, naprawdę ułatwi Ci to sporo rzeczy.
 

haxs

Użytkownik
Dołączył
Lipiec 29, 2007
Posty
35
pobrałem winasm
i też błąd wywala

256gzo4.png
 
Ostatnia edycja:

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
No to sprawdź, czy można zapisywać do katalogu C:\masm32. Jeśli nie to albo zrób coś, żeby można było albo zmień katalog na jakiś, w którym się da.
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
Wybacz, nie przyjrzałem się dokładnie. Tych gwiazdek ma tam nie być - nie wiem skąd się wzięły, wiem że tam nie pasują. I druga sprawa - WinAsm będzie kompilował przy pomocy mas32 - kod z tasm'a raczej nie zadziała.
 

shoorick

Użytkownik
Dołączył
Lipiec 17, 2008
Posty
66
Żeby używać tasm z WinAsmem potrzebne zainstalować fasm add-in i troche poczytać pomoc. Tu jest gotowy paket do wykorzystania innych asemblerów z WinAsmem, a na forumie są kilka tematów o tym.

Swoją drogą, piełny tekst z wynikamy kompilację będzie lepiej niż screenshot gdzie widać tylko częsć ich.

Pozdrawiam!
 
Do góry Bottom