| V cem mohu zkompilovat tento zdrojak?
uses crt;
var a,b,s,r:integer;
begin
clrscr; {vymaž obrazovku}
write (\'a=\');
readln(a); {vstup hodnoty a}
write (\'b=\');
readln(b); {vstup hodnoty b}
asm {začátek bloku asm}
MOV AX, a {do AX vlož hodnotu proměnné a (z paměti)}
ADD AX,b {k AX přičti hodnotu proměnné b}
MOV s, AX {do proměnné s vlož součet z registru AX}
MOV AX,a {znovu naber a}
SUB AX,b {odečti od AX hodnotu b}
MOV r,AX {do proměnné r vlož rozdíl z registru AX}
INC a {k a přičti 1}
DEC b {od b odečti 1}
end; {konec bloku asm}
writeln (\'a+b=\',s,\' a-b=\',r);{vypiš obsahy proměnných}
writeln (\'a+1=\',a,\' b-1=\',b);
readln;
end. (odpovědět) | Pas | 87.236.199.* | 9.11.2006 22:38 |
|
|
|
|
| je to pascal, akorat ze sou tam syntakticky chyby - escapnuty '. to budes muset poopravovat. ale na to prijdes... (odpovědět) | axis | 82.208.10.16/62.84.132.* | 10.11.2006 6:07 |
|
|
|
| jo a jeste ti na zacatku chybi radek "program <jmenoprogramu>;" a dalsi vec je ze se tam pouziva vlozenej asm, coz nevim jestli chodi pod jinejma kompilatorama nez pod borlandim turbo pascalem. (odpovědět) | axis | 82.208.10.16/62.84.132.* | 10.11.2006 6:47 |
|
|
|
| axis: radek program <jmenoprogramu> je nepovinny, takze mu tam nechybi a navic si dovolim optimalizaci, nerad vidim plytvani systemovymi zdroji:
var
a,b,s,r : integer;
begin
asm
mov ax, 03h
int 10h {vymaž obrazovku}
end;
write ('a=');
readln(a); {vstup hodnoty a}
write ('b=');
readln(b); {vstup hodnoty b}
asm {začátek bloku asm}
MOV AX, a {do AX vlož hodnotu proměnné a (z paměti)}
ADD AX,b {k AX přičti hodnotu proměnné b}
MOV s, AX {do proměnné s vlož součet z registru AX}
MOV AX,a {znovu naber a}
SUB AX,b {odečti od AX hodnotu b}
MOV r,AX {do proměnné r vlož rozdíl z registru AX}
INC a {k a přičti 1}
DEC b {od b odečti 1}
end; {konec bloku asm}
writeln ('a+b=',s,' a-b=',r);{vypiš obsahy proměnných}
writeln ('a+1=',a,' b-1=',b);
readln;
end.
Zkompilovat v Turbo Pascal 6 nebo jeste lepe v Turbo Pascal 7. Program bude 16-ti bitovy a pobezi v Real mode. (Vypisovani textu a cekani na klavesu lze rovnez prepsat do ASM).
Tento zdrojak pujde zkompilovat i v ostatnich kompilatorech pascalu, ktere podporuji inline asm s Intel syntaxi, ovsem pod Linuxem budou problemy s int 10h (preruseni VGA) tzn. tam to skonci napisem Segmentation Fault ! A nebo to muze vyhodit General protection failure (Runtime error 216) (odpovědět) | |
|
|
| muzu se jenom zeptat, proc se tam operuje s asm ? (odpovědět) | Nostur | | | | 335772190 | 10.11.2006 18:16 |
|
|
|
| Neni to nejakej ucebni text? A ten asm tam neni na ukazku? (odpovědět) | pr0ph3t (nechce se mi logovat) | 62.245.120.* | 10.11.2006 22:43 |
|
|
|
| vypada to fakt jako studijni material. takze od toho ruce pryc, neuc se pascal, ale nejakej dobrej programovaci jazyk... doporucuju ansi c nebo c++ (odpovědět) | dayvee. | 62.177.92.* | 11.11.2006 11:55 |
|
|
|
| Ano, je to studijni text, jelikoz se ucim vkladany asm.
Freez: Diky moc, psal jsi ze to zkompiluju v TB7 i v jinych kompilatorech pascalu. Jake jsou ty \"jine\"? Zkousel jsem freepascal, ale ten se tvaril jako ze nezna asm.
Predem diky za odpoved. (odpovědět) | Pas | 87.236.199.* | 11.11.2006 12:03 |
|
|
|
| Dodatek: Zkousel jsem to zkopilovat v i v Dev-Pascalu, ale hlasilo to:
unknown identifier: AX, H a dalsi chyby... je to vubec mozne v Dev-Pascalu zkompilovat? (odpovědět) | Pas | 87.236.199.* | 11.11.2006 12:05 |
|
|
|
| Dodatek2: Tak ted jsem si stahnul i Turbo Pascal 5.5 a kdyz jsem chtel zdrojak zkomplilovat (tpc program.pas), ohlasilo to chybu: asm, unknown identifier:/ (odpovědět) | Pas | 87.236.199.* | 11.11.2006 12:40 |
|
|
|
| Pas: Nez neco zacnes kompilovat tak si nastav kompilator. Ve freepascalu je potreba nastavit ze uzivas assembler s Intel syntaxi, mozna bude potreba zapnout TP7 compatibilty a s nejvetsi pravdepodobnosti budes muset upravit kod, protoze registry ax, bx, cx, dx, ... jsou 16-ti bitove no a FPC je 32-bitovy, takze to bude eax, ebx, ecx, edx, ...
IMHO a,b,s,r musi byt Word a ne Integer. V FPC misto mov ax, 03h int 10h pouzij stare zname ClrScr. To same bude v Delphi, TMT Pascal, atp.
Kompilatoru pascalu je dostatecne mnozstvi, FPC je vyspelejsi nez C i C++ dohromady. C/C++ nejsou RAD, zatimco FPC+Lazarus/Delphi RAD jsou. Kdejaky idiot ti bude tvrdit, ze pascal je k nicemu, jenze je zpusobeno tim, ze malokdo vi co v nem lze napsat a o kolik efektivnejsi bude napr. tvorba IDE v Delphi nez v C++. Tim castecne reaguji na vyplod od dayvee, ktery jeste asi v Pascalu nikdy nenapsal neco o delce vetsi, nez 10 000 lines (odpovědět) | |
|
|
| Zkousel jsem to zkompilovat takto:
fpc -Mtp -Op1 program.pas
ale stale neuspesne, poradite mi pls jak mam presne freepascal nastavit, aby mi tento zdrojak bez problemu zkompiloval? Dekuji. (odpovědět) | Pas | 87.236.199.* | 11.11.2006 20:07 |
|
|
|
| Tak podivej se, puvodni verze (to nahore) je zdrojak pro Turbo Pascal, ve kterem take funguje.
To ti ale nestaci a chces to zkompilovat ve vsech kompilatorech pascalu o kterych se dozvis. Jeste ti nedoslo, ze kod se musi vzdy drobne upravit, aby sel zkompilovat v jinem prekladaci ? Precetl sis vubec me reakce ? Jaky mas duvod 16-ti bitovy kod kompilovat ve 32-bitovem prekladaci a naivne si myslet, ze to pujde bez uprav?
Kdyz by to bylo psano pro vice platforem, tak by to slo zkompilovat v pohode a bez uprav, ale NENI !
Pro vice informaci UTFG a taky RTFM a hledej rozdily mezi jednotlivymi kompilatory, jazyky, atp. Na zaver si zjisti co jsou to direktivy kompilatoru a proc se pouzivaji ve zdrojacich, ktere jdou pote bez uprav zkompilovat vsude. (odpovědět) | |
|
|