-Программа реализуется как ассемблерная вставка в языке высшего уровня (Паскаль, С++ и т.д.).
Заданы два числа <=15. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов.
Программу написал на Builder C++ (вернее не всю а только запросы переменных и вывод в окно...) Теперь на асме надо сделать следующее...
в 2 байта по адресу поместить 3 числа (множитель, множитель, произведение), всё это надо без
Небольшая наработка есть, но я запутался (((
mov ebx,[a]; //в еbx множитель
shl еbx,10h; //сдвигаю влево на 4 бита
mov eax,[b]; //в еax второй множитель
or ebx,eax; //в ebx ложу оба множителя
mov dword ptr [с],ebx; //сохраняю в ebx по адресу "с"
imul [b]; // Умножаю
mov word ptr [с+1],ax; // сохраняю произведение по адресу "с+1"
хочу, чтобы в окне выводились числа например когда 15*15=225 выводиться должно 1515225
но когда вывожу "с" в отдельное окно, там всякая бредятина получается, но не например 1515225 (если 15*15=225)
Подскажите что не так ???
да и это с пропусками битов получится, т.к. я незнаю, адрес конца первого множителя... А если первый множитель = 1, в регистр всёравно положится второеймножитель, но не прямо сразу за первым...
Я думаю надо сделать поиск конца числа по адресу и сразу за этим числом по адресу ложить следующее число, попробовать с помощью процедур и меток...
Например: процедура нахождения адреса конца введённого числа -> прыг на ввод следующего числа -> опять процедура нахождения адреса конца числа...
Подскажите пожалуйста как тут быть, если кто может код написать, прошу, можно без расшифровки кода...
Спасибо...