| [OT]FPC i ASM [wiadomość #802] |
śro, 08 styczeń 2003 18:28 |
Durandal Wiadomości: 1 Dołączył(a): styczeń 2003 |
Junior Member |
|
|
Witajcie !
Moze to nie jest do konca tematem tej grupy, ale mam problem z Free Pascalem
(wersja 1.0.6. target:go32v2 przy uzyciu dyrektywy {$ASMMODE INTEL}) i
assemblerkiem w nim 'wbudowanym'. Chodzi o nastepujaca procedurke, ktora
powinna zapalac pixel w punkcie x i y ekranu. Oto ona:
procedure PutPixel(const x,y:word ; c:byte) ; assembler ;
asm
xor edi, edi
mov ax, $A000
mov es, ax
mov ax, y
shl ax, 6
mov di, ax
shl ax, 8
add di, ax
add di, x
mov al, c
mov byte ptr es:[edi], al
end ;
No i wyzej wspomniana procedurka kompiluje sie poprawnie, lecz podczas proby
uruchomienia wywala sie blad numer 216 -
General Protection fault
The application tried to access invalid
memory space. This can be caused by
several problems:
Deferencing a nil pointer
Trying to access memory which is out of
bounds (for example, calling move with an
invalid length).
Jak mozna sobie z tym poradzic ?
Moje drugie pytanko brzmi:
Jak powinno dolaczac biblioteki (*.obj) assemblerowe do fpc ?
Przy probie napisania procedurki
procedure Ala ; external ; {$L a.obj}
gdzie a.obj jest nastepujacym kodem:
code segment
assume cs:code
public Ala
Ala proc pascal
mov ax, 13h
int 10h
Ala endp
code ends
end
kompilator wywala pelno bledow (w razie czego moge je wypisac). Gdzie sie
pomylilem, lub co robie zle ?
Sorki, ale slabo znam assemblerka 16 bitowego a 32 bitowego odpowiednika
wcale :(
pozdrawiam Matek.
|
|
|
Łączny czas generowania strony wyniósł 0,00596 sekund.