![]() |
|
|
![]()
|
|
| Clockgen |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
Люди,помогите написать программу с вставкой инструкции ассемблера в паскаль,не получается,т.к. это массив:
Вот собственно задание: Даны массивы L1,...,L10; M1,...,M10.Определить N-кол-во пар Li,Mi, для кот выполняется условие |Li|=Mi(в квадрате) Вычислить X=(L2+M2)/(N+1)+N(в квадрате) Это сообщение отредактировал(а) Clockgen - 16.12.2008, 19:54 |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 8 Всего: 14 |
1) Либо массивов 20 L1,...,L10; M1,...,M10 либо массивов 2 а у каждого массива по десять элементов 2) Для кот выполняется условие |Li|=Mi(в квадрате) наверное Li и Mi все таки элементы массивов 3) вычислить X=(L2+M2)/(N+1)+N(в квадрате) вот здесь окончательно становится понятно что L2 и M2 элементы массива, ведь в задании не написано что Х это тоже массив или всётаки массив? 4) написать программу с ассемблерными вставками -- а просто программа на паскале почему тебя не устраивает? Для чего нужна ассемблерная вставка -- объясни ... Только пиши так, чтобы было понятно собеседнику Для получения ответа обязательно укажи название своего ВУЗа и факультета -- это мне необходимо для статистики Это сообщение отредактировал(а) Mikl_ - 18.12.2008, 09:13 |
|||
|
||||
| SuperRembo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.11.2008 Репутация: нет Всего: нет |
Вот всегда на форумах, спрашивают а почему так? а почему не так? Да потому что человеку такое задание дали, как и мне кстати, и тож фигня с этими масивами, с обычными переменными всё нормально, а вот с масивами неладно. |
|||
|
||||
| SuperRembo |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.11.2008 Репутация: нет Всего: нет |
Если тебе интересно, вот работающая програма для обычных переменных
Вот есть пример такой правда не проверял, это у меня в методе написано:
У меня вот тоже кстати такой вопрос, это моё задание: Каждый элемент масива A[m], кроме первого, заменить на максимальный элемент с числа пред ведущих элементов. Вот я написал такое:
Но оно зараз не работает, во первых почему-то никак не пойму почему он обрабатывает половину масива, по этому я задаю в СХ в два раза больше итераций. Во вторых при записи с масива в регистр (ВХ) и обратно, значение искажается. Я думаю что это из-за первого бита, отвечающего за знак минуса, когда число отрицательное то в битах это выглядит так 1ххх хххх хххх хххх, (тип интежер -32 768 .. 32 767) когда положительное по ходу так 0ххх хххх хххх хххх, и при перемещении это не учитываеться и в регистре уже считаеться число - (0 ... 65 536)... хотя может и не так, не пойму ваще ничего |
||||||||
|
|||||||||
| SuperRembo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.11.2008 Репутация: нет Всего: нет |
Ура! я расчехлил!
Вся загвоздка в том, что ассемблер шагает по паскакалевскому масиву не по слову! а по байту! хххх.хххх.хххх.хххх -- хххх.хххх по этому на каждый елемент масива препадает по две операции и получаеться настоящая каша. По этому цыкл нужно задавать в два раза больше и в теле изменять счётчик на два. |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |