| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Возведение матрицы в квадрат Pascal + ASM |
| Автор: rafic 14.4.2012, 23:26 | ||||
| Задача описана в названии темы. Я вот накидал тут что смог:
но столкнулся с ошибкой в которой сказано что в строке { Elements[countColumns*row+column]*4 } выделенное жирным место является неверным синтаксисом. Ну и вообще я никогда не писал на связке паскаль и АСМ, и прошу подсказать как записывать результаты в конечный массив? Адрес памяти высчитывать планирую по формуле
Словесно: имя_массива(количество элементов в строке * текущая строка + номер элемента в данной строке) * на 4 (размер памяти под один элемент) в общем... как-то так. 1) Как обратится к элементу массива в таком коде? 2) Как записывать конечный результат в конечный массив элемент через mov? mov baseName[countColunms*row+column]*4, currentValue 3) Как умножать и складывать элементы массива? через imul? |
| Автор: iff 15.4.2012, 17:34 |
| 1) shortint - 1 байт. 2) т.к. row и column - не константы, не регистры, а переменные, то обращение типа baseName[countColunms*row+column] невозможно. 3) инструкцией mov можно записать результат в массив, но из регистра или непосредственно константу. 4) для разных типов данных можно использовать разные инструкции умножения. Для целых знаковых - действительно imul. |
| Автор: 500mhz 17.4.2012, 12:35 | ||||
не знаю как там в паскале но мне кажется нужно так
|
| Автор: iff 17.4.2012, 20:40 | ||
вместо imul можно просто mul, результат одинаковый, т.к. получаться вегда (если нет переполнения) будут тольуо положительные числа. |