![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
![]()
Нужен код на ассемблере - сложение двух чисел. Хочу реализовать на Delphi в консоле.
Изо всей благодати
В руках крепко сжатых Я донесу только капли |
![]() |
![]() |
![]() |
#2 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 | |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
![]() Цитата:
Код:
Конечно, раз на раз не приходится, регистр ebx может после кода не использоваться, но мало ли куда этот код будет скопипастен. Так что либо мой вариант, либо push ebx ..... pop ebx, либо другой регистр (ecx, edx). Вот более универсальный вариант как функция: Код:
![]() |
|
![]() |
![]() |
![]() |
#4 | |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
![]()
Спасибо народ!
![]() ![]()
Изо всей благодати
В руках крепко сжатых Я донесу только капли |
![]() |
![]() |
![]() |
#6 | |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
![]() Цитата:
Регистры eax, ecx, edx компилер при встрече вставок распоряжает таким способом, чтобы они стали полностью доступны - переносит содержащиеся там указатели в стек (либо еще куда). Но если во вставке будет неаккуратная запись навроде Код:
Или например: Код:
|
|
![]() |
![]() |
![]() |
#7 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
![]()
В регистровом соглашении о вызове как раз эти три регистра и являются способом передачи параметров.
function (const a, b, c:Integer):Integer; register; // по умолчанию в дельфе и так соглашение register asm в начале кода у нас в eax 1-й параметр, в edx - 2-й, в ecx - 3-й. и никаких стеков.. end; но если параметров больше 3-х, или параметры - числа с плавающей запятой, тут уже стек подключается. хотя числа с плавающей запятой лучше передавались бы через FPU-стек, несомненно это было бы куда эффективнее. |
![]() |
![]() |
![]() |
#8 | |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
![]() Цитата:
![]() У меня был вылет: Код:
|
|
![]() |
![]() |
![]() |
#9 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
![]()
Посмотреть бы асм-кодик после этого фрагмента, или после вставки, чего там компилер нагенерил
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ассемблер | farxad | Помощь студентам | 6 | 11.09.2016 14:19 |
Тест на делфях | kidman | Фриланс | 8 | 27.05.2009 08:13 |
Ассемблер | InTest | Фриланс | 1 | 12.12.2007 02:05 |
USB 2.0. ассемблер | wiskas | Помощь студентам | 1 | 22.02.2007 01:30 |