mam oto taki program:
Kod:
;program co używa biblioteki od napisów
;===================================
;początek segmentu stosu:
;===================================
MyStack SEGMENT STACK ; STACK ładuje SS
DB 64 DUP ('STACK!!!') ; DUP wypełnia pamięć 64 bajtami pisząc w kółko 'STACK!!!'
MyStack ENDS ; a to kończy segment stosu
;===================================
;koniec segmentu stosu
;początek segmentu danych:
;===================================
MyData SEGMENT PUBLIC ; tworzy segment
PUBLIC LRXY,CRLF
; 18H=24D; 4FH=79D; współrzędne xy prawego dolnego rogu ekranu 80x25
LRXY DW 184FH
TextPos DW ?
Nap1 DB "jakis tam napis",'$' ; tworzy łańcuch
Nap2 DB "jeszcze jeden napis",'$' ; tworzy łańcuch
CRLF DB 0DH,0AH,'$' ; liczby w kodzie 16kowym
MyData ENDS ; no i koniec
;===================================
;koniec segmentu danych
;początek segmentu kodu
;===================================
EXTERN GotoXY:PROC,Write:PROC,Writeln:PROC,ClrScr:PROC
MyCode SEGMENT PUBLIC ; kolejny segment
assume CS:MyCode,DS:MyData ; Informuje asembler który segment to który ale w programie nic to nie zmienia
Main PROC ; tworzy procedurę o nazwie Main
Start: ; tu się zaczyna program
mov AX,MyData ; Zapamiętuje, który to segment danych
mov DS,AX ; ale musi to zrobićdwoma instrukcjami
call ClrScr ; oczyszczanie całęgo ekranu
mov TextPos,0914H ; Y=9 X=20
mov DX,TextPos ; przekazanie pozycji kursora
call GotoXY ; przesuwanie kursora
lea DX,Nap1 ; załadowuje przesunięcie Nap1 do DX
call Writeln ; wyświetl ciąg znaków
mov DX,TextPos ; odtworzenie pozycji
mov DH,10 ; zmiana Y
call GotoXY ; przesuwanie kursora
lea DX,Nap2 ; załadowuje przesunięcie Nap2 do DX
call Writeln ; wyświetl ciąg znaków
mov AH,4CH ; wybór procedury DOS kończącej program
mov AL,0 ; przekazanie 0 do ERRORLEVEL
int 21H ; przekazanie sterowania DOSowi
Main ENDP ; kończy procedurę
MyCode ENDS ; kończy segment
;===================================
;koniec segmentu kodu
;===================================
END Start
i mam jeszcze do niego bibliotekę z procedurami GotoXY, Write, Writeln i ClrScr. Używam asemblera MASM 4.0 i jak chcę to zasemblować to mi wywala syntax error nie wiem czemu:
Kod:
Copyright (C) Microsoft Corp 1981, 1983, 1984, 1985. All rights reserved.
program4.ASM(25) : error 10: Syntax error
program4.ASM(34) : error 9: Symbol not defined CLRSCR
program4.ASM(38) : error 9: Symbol not defined GOTOXY
program4.ASM(40) : error 9: Symbol not defined WRITELN
program4.ASM(44) : error 9: Symbol not defined GOTOXY
program4.ASM(46) : error 9: Symbol not defined WRITELN
51034 Bytes symbol space free
0 Warning Errors
6 Severe Errors
C:\ASM>
Proszę o pomoc jak ktoś wie czemu tak może być.