Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 07:28   #1
Roman
Пользователь
 
Регистрация: 23.12.2006
Сообщений: 67
Вопрос массив в ASM

Люди помогите с масивами. Надо написать программку на ассемблере как вставку в паскаль. С масивами не могу розобраться.
Вот задание:
Дано массив arr из 5-ти целых значений. Организовать введение массива arr и натурального числа k.Создать новый массив NewArr, умножив каждый элемент массива arr на число k. Вычислить сумму элементов массива NewArr. Вывести на экран массив Arr, измененный NewArr и сумму элементов массива NewArr.
Roman вне форума Ответить с цитированием
Старый 27.05.2009, 08:16   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Массивы средствами Паскаля объявляются обычно.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 27.05.2009, 11:00   #3
Roman
Пользователь
 
Регистрация: 23.12.2006
Сообщений: 67
По умолчанию

Цитата:
Сообщение от OCTAGRAM Посмотреть сообщение
Массивы средствами Паскаля объявляются обычно.
в паскале это просто ,а как в асемблере с ними работать я не могу понять
Roman вне форума Ответить с цитированием
Старый 27.05.2009, 13:49   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

просто пример
Код:
var
  Arr : array[1..5] of LongInt;
  K : LongInt;
  i : integer;
begin
  Memo1.Lines.Clear;
  for i:=1 to 5 do Arr[i] := i;
  for i:=1 to 5 do Memo1.Lines.Add(IntToStr(Arr[i]));
  Memo1.Lines.Add('--------------');
  k := 5;
  asm
    lea edx, Arr
    mov ecx,5
    mov ebx, dword ptr K  
@@Out2Cycl:
    mov eax, dword ptr [edx]
    imul eax, ebx
    mov dword ptr [edx], eax
    add edx, 4
    loop @@Out2Cycl
  end;
  for i:=1 to 5 do Memo1.Lines.Add(IntToStr(Arr[i]));
  Memo1.Lines.Add('--------------');
end;
сразу хочу отметить.
что писал от балды, поэтому может во встроенном ASM'е можно написать более правильно (и/или более красиво).
Но как рабочий пример должно сойти.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.11.2021, 05:07   #5
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 134
По умолчанию

Массив
Код:
arr db 1,2,3,4,5
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ASM RomTB Помощь студентам 4 24.05.2009 11:27
ASM, pcx2bmp 1ntro Помощь студентам 1 15.03.2009 18:48
[c++]asm Nightwalker Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.10.2008 19:39
Прерывания и asm в Си BOBAH13 Общие вопросы C/C++ 7 05.08.2008 15:52
Delphi и ASM benjaminfran Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 17.02.2008 15:46