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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2016, 15:21   #1
Kvantro
Новичок
Джуниор
 
Регистрация: 18.04.2016
Сообщений: 2
По умолчанию Помогите разобраться - ассемблерная вставка на Pascal

Ребят не могу как работает этот код, помогите пожайлуста.
переменная n - вводиться в паскале и передаеться в асм.
asm
mov dx, 1
mov bx, 0
mov cx, n
@mitka:
mov al, dl
mul dl
add bx, ax
inc dl
loop @mitka
mov al, 3
mul bl
mov r, ax
end;
Kvantro вне форума Ответить с цитированием
Старый 18.04.2016, 15:41   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А что не понятно? Обычно суммирование произведений...
p51x вне форума Ответить с цитированием
Старый 18.04.2016, 15:50   #3
Kvantro
Новичок
Джуниор
 
Регистрация: 18.04.2016
Сообщений: 2
По умолчанию

Мне поподробней с регистрами и как происходит умножение.
Kvantro вне форума Ответить с цитированием
Старый 18.04.2016, 15:59   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

http://asmworld.ru/spravochnik-komand/mul/
http://asmworld.ru/uchebnyj-kurs/011...nie-i-delenie/
p51x вне форума Ответить с цитированием
Старый 18.04.2016, 15:59   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

mov <регистр>, <константа>
занести в <регистр> значение <константа>

к регистру AX можно обратиться к младшему байту (AL) и старшему байту (AH)
к регистру DX можно обратиться к младшему байту (DL) и старшему байту (DH)
и т.д.


mul dl
умножить содержимое регистра AX на DL и результат положить в AX

loop - цикл, выполняется пока cx не станет равным нулю (в данном случае выполнится n раз)

mov r, ax
поместить содержимое ax (читай результат) в переменную r

ещё что-то объяснить? или уже всё понятно?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2016, 16:01   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Ирвин К. Язык ассемблера для процессоров Intel 2005
Проще всего путём нажатия кнопки F7 выполнить программу по шагам и посмотреть что куда идёт. Откройте окно и посмотрите Debug->Register.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблерная вставка на С++ CrashOveride Помощь студентам 1 01.04.2014 08:42
Ассемблерная вставка panter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 10.05.2012 22:41
Pascal + Ассемблерная вставка ilywkaft9 Фриланс 1 08.12.2011 16:40
Ассемблерная вставка Arigato Общие вопросы Delphi 1 25.10.2009 21:47