Консультация № 145302
28.09.2008, 15:49
0.00 руб.
0 3 1
Здравтсвуйте эксперты! Помогите решить задачу, Дана программма на паскале заменить оператор for ,repeat, while на код ассемблера,!!
Пример!!!!

{1} program test0000;
{2} var
{3} c,d: byte;
{4} k: integer;
{5} A: array [3..10] of integer;
{6}
{7} begin
{8} k:=6;
{9} d:=0;
{10} for c:=3 to 10 do
{11} begin
asm
{12 if k<d then}
mov al,d
xor ah,ah
cmp ax,k
jng @20

{13 d:=d+k}
mov al,byte ptr k
add byte ptr d,al
jmp @30

{14 else d:=k-d;}
@20:
mov al,d
mov dl,byte ptr k
sub dl,al
mov byte ptr d,dl
{15 A[c]:=d;}
@30:
mov al,d
xor ah,ah
mov bl,c
xor bh,bh
shl bx,1
mov word ptr A[bx-6],ax
{16 k:=k+1;}
inc word ptr k
end; {asm}
{17} end;
{18} for c:=3 to 10 do
{19} write (A[c]:4);writeln;
{20} end.
Это уже замененная!
----------------------------
Вот мой вариант:



Приложение:
21. Program test0021;
Var
i,m:integer;
A:array [13..21] of integer;
Begin
m:=0;
i:=21;
repeat
m:=m+i;
if m<50 then
A[i]:=5*i
Else A[i]:=m;
dec(i)
until i<13;
for i:=13 to 21 do
write(A[i]:4);writeln;
End.

Обсуждение

давно
Старший Модератор
31795
6196
29.09.2008, 11:54
общий
это ответ
Здравствуйте, Saidart!

В приложении программа с замененными циклами.
Удачи!

Приложение:
{21. Program test0021;}
Var
i,m:integer;
A:array [13..21] of integer;
label A10,B10,C10,D10;
Begin
m:=0;
asm
{ i:=21;}
mov ax,21
{ repeat}
A10:
mov i,ax
end;
m:=m+i;
if m<50 then
A[i]:=5*i
Else A[i]:=m;
asm
{ dec(i)}
mov ax,i
dec ax
{ until i<13;}
cmp ax,13
jae A10
end;
{for i:=13 to 21 do}
asm
mov ax,13
jmp B10
C10:
mov ax,i
inc ax
B10:
mov i,ax
cmp ax,21
ja D10
end;
write(A[i]:4);
asm
jmp C10
D10:
end;
writeln;
readln;
End.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
29.09.2008, 20:23
общий
А чего незамененно условие в котором массив инициализируется??
m:=m+i;
if m<50 then
A[i]:=5*i
Else A[i]:=m;
давно
Старший Модератор
31795
6196
29.09.2008, 20:29
общий
В условии, было заменить операторы цикла, но ничего не говорилось о замене самого тела цикла.
Если нужно ещё и тело цикла, сейчас поменяю.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа