Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
19.03.2015
Размер:
25.62 Кб
Скачать

Контрольная работа

на тему: ”Изучение встроенного ассемблера в Turbo pascal”.

Выполнил: Железкин М.Д. студент гр. ПО-41.

Задание: Если элементы массива D[1..5] равны соответственно 4,1,5,3,2, то значение выражения D[D[3]]-D[D[5]] равно?

Код программы на языке Turbo pascal:

program KP;

var i:byte;

D: array [1..5] of byte;

begin

Writeln('Vvedite massiv D=(4,1,5,3,2)');

for i := 1 to 5 do readln(D[i]);

if (D[5]=2) and (D[4]=3) and (D[3]=5) and (D[2]=1) and (D[1]=4)

then Writeln('Rez= ',D[D[3]]-D[D[5]])

else Writeln('Neverno zadan massiv');

Writeln('End program');

Readln;

end.

Код программы на языке Assembler:

program KP;

var i,rez,flag:byte;

D: array [1..5] of byte;

begin

Writeln('Vvedite massiv D=(4,1,5,3,2)');

for i := 1 to 5 do readln(D[i]);

asm

lea bx,D

mov ah,[bx][4]

cmp ah,2

jne @then

mov ah,[bx][3]

cmp ah,3

jne @then

mov ah,[bx][2]

cmp ah,5

jne @then

mov ah,[bx][1]

cmp ah,1

jne @then

mov ah,[bx][0]

cmp ah,4

jne @then

mov flag,1

mov ah,[bx][4]

sub ah,[bx][1]

mov rez,ah

jmp @end

@then: mov flag,0

@end:

end;

if flag=1 then Writeln('D[D[3]]-D[D[5]]= ',rez)

else Writeln('Neverno zadan massiv');

Writeln('End program');

Readln;

end.

Результат работы программы:

Соседние файлы в папке Контрольная работа по ASM