Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.252.140] |
|
Сообщ.
#1
,
|
|
|
<-----------------------------------------------------------------------------------------
Давно изучаю Паскаль, но вот захотелось изучить и такую вещь как Турбо асм - и тут же пошли глюки. Сложение, вычитание показалось простым: var a,b,c : integer; begin read(a,b); asm move ax,a add ax,b mov c,ax end; writeln('c=',c); end. Но вот беда: Умножение почему - то не получается. Я видел пример: ---- asm --- imul y ---- end; Я понимаю, что результат будет в переменной y, но что тут за операнды? Кто - нибудь, объясните плиз. -----------------------------------------> |
Сообщ.
#2
,
|
|
|
Error of Nature, тебе кажется, что "Заготовки для Pascal FAQ" - самое подходящее место для твоего вопроса? А правила ты читал? Особенно Правила, п.3 ?
Добавлено Цитата Error of Nature @ Я понимаю, что результат будет в переменной y, но что тут за операнды? asm mov ax, a imul b mov c, ax end; |
Сообщ.
#3
,
|
|
|
Ой, прости, просто мне срочно надо, если можешь - ответь, а потом удали тему ок?
З.Ы. Насчет правил не беспокойся - перечитаю. Добавлено А можешь сказать попроще, вроде берется это, запихивается в то,перемножается с этим, а то этот код, я думаю, неоднозначен. |
Сообщ.
#4
,
|
|
|
Что значит "неоднозначен"? Тогда 2 вопроса:
1. Однозначен ли тот код, который ты привел для сложения чисел? 2. Запускал ли ты приведенный фрагмент, или решил сам поработать компилятором и поискать ошибки? IMUL умножает знаковое целое число, переданное ему в качестве параметра, со знаковым целым, хранящимся в регистре AL или AX... Результат - в AL/AX |