Автор: MissAlice
Дата сообщения: 16.06.2009 20:08
здравствуйте, очень нужна ваша помощь
есть программа на паскале, сделанная через встроенный ассемблеровский модуль, надо переделать ее так, чтоб программа, написанная на ассемблере, вызывалась из паскаля
вот задание дословно:
В Pascal-программе использовать директиву компилятора { $L <имя .obj-файла> }, где .obj-файл - это оттранслированная программа на языке ассемблера, которая вызывается из Pascal-программы.
текст программы, написанной через встроенный ассемблеровский модуль(программа переводит строчные буквы в заглавные):
program lab4;
uses crt;
var stroka:string;
max:integer;
right,left:byte;
flag1,flag2:boolean;
label cycle,next2;
begin
clrscr;
writeln('введите строку символов:');
readln(stroka);
flag1:=true;
flag2:=true;
repeat
writeln;
if not flag2 then writeln('ошибка ввода не цифровой информации');
if not flag1 then writeln('ошибка.Количество обрабатываемых символов не может превышать длину строки и быть меньше нуля');
flag1:=true;
flag2:=true;
writeln('введите количество обрабатываемых символов:');
{$I-}readln(max);
if (ioresult<>0) then flag2:=false;
if ((max>length(stroka)) or (max<0)) then flag1:=false;
until ((flag1) and (flag2));
asm
mov cx, max;
inc cx
lea di,stroka
lea si,stroka
mov right,7Ah ;
mov left,61h;
cycle:
lodsb
cmp al, right;
ja next2 ;
cmp al, left
jl next2;
mov di,si;
dec di ;
sub al,20h ;
stosb
next2: ;
loop cycle ;
end;
writeln;
writeln('выходная строка:');
writeln(stroka);
readkey;
end.