![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.03.2011
Сообщений: 5
|
![]()
-Программа реализуется как ассемблерная вставка в языке высшего уровня (Паскаль, С++ и т.д.).
Заданы два числа <=15. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов. Программу написал на Builder C++ (вернее не всю а только запросы переменных и вывод в окно...) Теперь на асме надо сделать следующее... в 2 байта по адресу поместить 3 числа (множитель, множитель, произведение), всё это надо без пропуска битов... Небольшая наработка есть, но я запутался ((( mov ebx,[a]; //в еbx множитель shl еbx,30h; //сдвигаю влево на 12 бит mov eax,[b]; //в еax второй множитель or ebx,eax; //в ebx ложу оба множителя mov dword ptr [с],ebx; //сохраняю в ebx по адресу "с" imul [b]; // Умножаю mov word ptr [с+1],ax; // сохраняю произведение по адресу "с+1" но когда вывожу "с" в отдельное окно, там всякая бредятина получается, но не например 1515225 (если 15*15=225) да и это с пропусками битов получится, т.к. я незнаю, адрес конца первого множителя... Я думаю надо сделать поиск конца числа по адресу и сразу за этим числом по адресу ложить следующее число, попробовать с помощью процедур и меток... Например: процедура нахождения адреса конца введённого числа -> прыг на ввод следующего числа -> опять процедура нахождения адреса конца числа... Подскажите пожалуйста как тут быть, если кто может код написать, прошу, можно без расшифровки... Спасибо... Последний раз редактировалось magistr011; 04.11.2011 в 17:20. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
![]()
http://www.google.com.ua/search?q=Ум...пользуя+сдвиги
Вторая ссылка |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 21.03.2011
Сообщений: 5
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]() Код:
Код:
alexcoder, тут скорее про упакованные числа числа идет речь, а не об умножении.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4 Последний раз редактировалось Goodwin98; 04.11.2011 в 17:59. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 21.03.2011
Сообщений: 5
|
![]()
shl еbx,10h; //сдвигаю влево на 4 бит
а на [b] там умножается бред какой-то, судя по тому, что у меня ничего не получается до сих пор((( |
![]() |
![]() |
![]() |
#6 | ||
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]() Цитата:
Цитата:
Пользуйтесь отладчиком и смотрите что происходит после каждой команды и то ли это что вы задумывали.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4 Последний раз редактировалось Goodwin98; 05.11.2011 в 11:56. |
||
![]() |
![]() |
![]() |
#7 |
Регистрация: 21.03.2011
Сообщений: 5
|
![]()
Всем спасибо, сам дошёл, всё получилось...
Тема закрыта. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Битовые операции C++ | MarchZM | Помощь студентам | 0 | 30.05.2011 18:18 |
Битовые операции(с++) | Lazy maximka | Помощь студентам | 2 | 23.12.2010 18:55 |
Битовые операции | _-Re@l-_ | Свободное общение | 12 | 11.07.2010 15:31 |
Битовые операции СИ | savra | Помощь студентам | 0 | 10.03.2010 19:31 |
Битовые операции | zetrix | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 15.12.2006 11:08 |