Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите написать код Ассемблера (http://www.tehnari.ru/f41/t48604/)

lezg1n 09.03.2011 17:05

Помогите написать код Ассемблера
 
Добрый день. Помогите написать код ассемблера на паскале для решения задачки на тему масивы.
суть такова:
есть масив А=[1..10] надо вывести масив В=А^2
А так же, не могли бы вы проверить правильно ли я написал паскалевский код?
Код:

Program lab;
uses crt;
var i,n:integer;
b,a:array[1..10] of integer;
begin
clrscr;
Writeln('Vvedite razmernist massiva:');
readln(n);
randomize;
writeln('Poluchen massiv:');
for i:=1 to n do
begin a[i]:=random(100)-50;
end;
Writeln('Poluchen massiv B:');
for i:=1 to n do
begin
b[i]:=a[i]*a[i];
Wroteln(b[i],' ');
end;
asm

P.S. Мне это надо сдать завтра утром, так что прошу не писать про учебники.
Заранее благодарен.

Vladimir_S 09.03.2011 17:22

Не совсем. Вот листинг с исправленными ошибками и "шероховатостями":
Код:

Program lab;
uses crt;
var
 i,n:integer;
 b,a:array[1..10] of integer;
begin
 clrscr;
 Write('Vvedite razmernost massiva (<11): ');
 readln(n);
 randomize;
 writeln('Poluchen massiv:');
 for i:=1 to n do
  begin
  a[i]:=random(100)-50;
  Write(a[i]:5);
  end;
 Writeln;
 Writeln('Poluchen massiv B:');
 for i:=1 to n do
  begin
  b[i]:=a[i]*a[i];
  Write(b[i]:5);
  end;
 Writeln;
asm


kreol 09.03.2011 17:44

если
Цитата:

Сообщение от lezg1n (Сообщение 482168)
Помогите написать код ассемблера на паскале для решения задачки

я что-то не понял. вам надо писать просто на паскале или на паскале со вставкой асма?

lezg1n 09.03.2011 18:22

Vladimir_S
спасибо за исправления
kreol
Мне нужно со вставкой асм
там надо написать код для массива В. То есть что бы было решение на паскале и решение на асм

lezg1n 09.03.2011 20:10

Так кто нибудь знает что надо писать что бы решить задачку?
Просто очень надо, а то до пересдачи не допустят(

kreol 09.03.2011 21:30

вам показывали как с массивами паскаля работать во вставках ассемблера? если да то напишите, а то я нигде не найду...

lezg1n 09.03.2011 21:37

Вот варианты заданий. Там есть, про массивы но я не фига не понимаю как их использовать в моем случае(
Яндекс.Народ

kreol 10.03.2011 00:12

наверное смогу сделать только завтра. а то мне у самому задачки решать надо, чтоб их ... :tehnari_ru_020::tehnari_ru_744:

lezg1n 10.03.2011 16:16

Код:

Program lab;
uses crt;
var
 i,n:integer;
 b,a:array[1..10] of integer;
 label m;
begin
 clrscr;
 Write('Vvedite razmernost massiva (<11): ');
 readln(n);
 randomize;
 writeln('Poluchen massiv:');
 for i:=1 to n do
  begin
  a[i]:=random(100)-50;
  Write(a[i]:5);
  end;
 Writeln;
 Writeln('Poluchen massiv B:');
 for i:=1 to n do
  begin
  b[i]:=a[i]*a[i];
  Write(b[i]:5);
  end;
 Writeln;
asm
nov cx,n
mov si,0
m:
mov ax, word ptr a+si
mul ax
mov word ptr b+si,ax
add si,2
loop m
end;
writeln('Poluchen massiv b na Assrm');
for i:=1 to n do
write(b[i]:5);
Readln;
End.

Проверьте код пожалуйста.

kreol 11.03.2011 22:29

ну она нормально компилится?


Часовой пояс GMT +4, время: 05:01.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.