| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Помогите с массивами со вставкой в АСМ в Паскаль |
| Автор: Clockgen 16.12.2008, 18:56 |
| Люди,помогите написать программу с вставкой инструкции ассемблера в паскаль,не получается,т.к. это массив: Вот собственно задание: Даны массивы L1,...,L10; M1,...,M10.Определить N-кол-во пар Li,Mi, для кот выполняется условие |Li|=Mi(в квадрате) Вычислить X=(L2+M2)/(N+1)+N(в квадрате) |
| Автор: Mikl_ 17.12.2008, 10:32 | ||
1) Либо массивов 20 L1,...,L10; M1,...,M10 либо массивов 2 а у каждого массива по десять элементов 2) Для кот выполняется условие |Li|=Mi(в квадрате) наверное Li и Mi все таки элементы массивов 3) вычислить X=(L2+M2)/(N+1)+N(в квадрате) вот здесь окончательно становится понятно что L2 и M2 элементы массива, ведь в задании не написано что Х это тоже массив или всётаки массив? 4) написать программу с ассемблерными вставками -- а просто программа на паскале почему тебя не устраивает? Для чего нужна ассемблерная вставка -- объясни ... Только пиши так, чтобы было понятно собеседнику Для получения ответа обязательно укажи название своего ВУЗа и факультета -- это мне необходимо для статистики |
| Автор: SuperRembo 9.4.2009, 11:44 | ||
Вот всегда на форумах, спрашивают а почему так? а почему не так? Да потому что человеку такое задание дали, как и мне кстати, и тож фигня с этими масивами, с обычными переменными всё нормально, а вот с масивами неладно. |
| Автор: SuperRembo 9.4.2009, 12:04 | ||||||||
Если тебе интересно, вот работающая програма для обычных переменных
Вот есть пример такой правда не проверял, это у меня в методе написано:
У меня вот тоже кстати такой вопрос, это моё задание: Каждый элемент масива A[m], кроме первого, заменить на максимальный элемент с числа пред ведущих элементов. Вот я написал такое:
Но оно зараз не работает, во первых почему-то никак не пойму почему он обрабатывает половину масива, по этому я задаю в СХ в два раза больше итераций. Во вторых при записи с масива в регистр (ВХ) и обратно, значение искажается. Я думаю что это из-за первого бита, отвечающего за знак минуса, когда число отрицательное то в битах это выглядит так 1ххх хххх хххх хххх, (тип интежер -32 768 .. 32 767) когда положительное по ходу так 0ххх хххх хххх хххх, и при перемещении это не учитываеться и в регистре уже считаеться число - (0 ... 65 536)... хотя может и не так, не пойму ваще ничего |
| Автор: SuperRembo 9.4.2009, 14:29 |
| Ура! я расчехлил! Вся загвоздка в том, что ассемблер шагает по паскакалевскому масиву не по слову! а по байту! хххх.хххх.хххх.хххх -- хххх.хххх по этому на каждый елемент масива препадает по две операции и получаеться настоящая каша. По этому цыкл нужно задавать в два раза больше и в теле изменять счётчик на два. |