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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2019, 12:05   #1
XORandom
Новичок
Джуниор
 
Аватар для XORandom
 
Регистрация: 04.01.2019
Сообщений: 2
По умолчанию Косвенная адресация (Паскаль с 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].
https://nick-name.ru/nickname/id1533798/

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

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменить код asm x32 под asm x64 за вознаграждение Ecosasha Фриланс 2 28.11.2013 14:11
Передача параметров asm-asm Maksimall89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 22.12.2011 11:54
дельфи с asm-вставками alexdelphi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 14.09.2011 15:42
косвенная адресация(assembler) nastya2112 Паскаль, Turbo Pascal, PascalABC.NET 1 02.06.2011 02:53