Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 3
1

Ассемблерные вставки в Паскале: работа с массивом

30.04.2014, 10:49. Показов 667. Ответов 1
Метки нет (Все метки)

Привет. Сейчас работаю в Pascal (Lazarus) с ассемблерными вставками, и столкнулся с такой проблемой.

При присвоении регистру eax значения a[0] значение присваивается верно — 9.
При присвоении ему же любого значения a[i], где 0<i<10 выводится белиберда (например, 134217728 или 117440512) — подозреваю, адрес переменной.

Как быть?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const N=9;
var arr: array [0..9] of integer;
    i,min,inp:integer;
 
begin
  //input
  for i:=0 to 9 do arr[i]:=N-i;
  readln(inp);
 
  //вставка
  {$asmmode intel}
  asm
    xor ecx,ecx                  //ecx:=0;
    mov ebx,inp
    mov eax,arr[ebx]
    mov min,eax
  end;
  writeln(min);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2014, 10:49
Ответы с готовыми решениями:

Ассемблерные вставки в паскале
Нужно представить тело цикла в виде ассемблеровской вставки program test0015; var j:integer; ...

Вычитание чисел произвольной разрядности (ассемблерные вставки в Паскале)
Уважаемые форумчане, имею задание: Написать программу, производящую вычитание чисел произвольной...

Ассемблерные вставки:(
Есть программа которая В исходную строку вставляет после заданного символа все символы,...

Ассемблерные вставки
1)Всем добрый вечер.Хотелось бы узнать как считать а потом вывести что либо (код должен быть...

1
Модератор
3475 / 2599 / 740
Регистрация: 19.09.2012
Сообщений: 7,966
30.04.2014, 21:59 2
Смещение задается в байтах.
integer = 4 байта => эл-т с индексом 2 будет: arr[2 * 4]
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2014, 21:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Ошибка с регистрами - Ассемблерные вставки
Здравствуйте. Стоит задача написать программу, которая будет копировать содержимое строки С в...

Ассемблерные вставки в Virtual Pascal
Для массива 32-х битных целых чисел определить количество элементов больших заданного числа,...

Вычисление суммы ряда (ассемблерные вставки)
Вычислить сумму ряда \sum_{k=1}^{n}(2k-1), (n \leq 10), используя ассемблерные вставки. Проблема в...

Преобразовать фрагменты программы на C в ассемблерные вставки
Выручайте! Очень нужна помощь ибо не бывать допуска к экзамену! надо переписать на ассемблер, т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.