Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 04.01.2019, 13:05   #1
XORandom
Новичок
 
Аватар для XORandom
 
Регистрация: 04.01.2019
Сообщений: 2
Репутация: 10
По умолчанию Косвенная адресация (Паскаль с ASM вставками)

Постановка задачи.

Наибольший элемент массива поставить на 1 место, поменяв их местами.


Вот что у меня получилось:
Код:
Program SWP

const N=10;
var array[1..N] of integer;
i=1..N;


BEGIN
    writeln ('element mass');
    for i:=1 to N do
    read(a[i]);
    for i:=1 to N do
    write (a[i], ' ');
asm
mov CX, N
lea SI, a
mov AX, a
mov BX, a
@compa:
mov DX, [SI]
cmp BX, DX
jge@k
    mov BX, DX
@k: mov i, SI
 inc SI
loop @compa
XCHG AX, BX
mov a, AX

end

for i:=1 to N do
    write (a[i], ' ');
End.
С Паскалем не работал с 5 класса школы. Так что простите, если часть на Паскале можно сделать намного проще.

Проблема вот в чем.
После работы в asm надо вернуть переменные из регистров.
Код:
mov a, AX
это делает, но я не знаю, как вернуть переменную из BX, ту, что была первым элементом, а сейчас в каком-то из a[i].

Последний раз редактировалось XORandom; 04.01.2019 в 14:43.
XORandom вне форума   Ответить с цитированием
Старый 27.01.2019, 14:12   #2
XORandom
Новичок
 
Аватар для XORandom
 
Регистрация: 04.01.2019
Сообщений: 2
Репутация: 10
По умолчанию

Конкретизирую вопрос:
Код:
mov a, AX
mov [a+SI], BX
Можно ли так писать?
И как в противном случае всё же сделать возврат в массив элемента из регистра BX
XORandom вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменить код asm x32 под asm x64 за вознаграждение Ecosasha Фриланс 2 28.11.2013 14:11
Передача параметров asm-asm Maksimall89 Assembler 0 22.12.2011 11:54
дельфи с asm-вставками alexdelphi Assembler 7 14.09.2011 15:42
косвенная адресация(assembler) nastya2112 Паскаль 1 02.06.2011 02:53


17:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.