![]() |
|
|
![]()
|
|
| bncom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 2.11.2005 Репутация: нет Всего: 1 |
Здравствуйте!
Вот код, который находит максимальный элемент в массиве.
Мне надо, чтоб результат заносился не в регистр AX (как в сейчас), а в регистр AL. Я пробывал, но что-то не получается, выдаются ошибки... (( Помогите пожалуйтса.... Это сообщение отредактировал(а) bncom - 15.4.2007, 19:45 --------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер |
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
Sorry, а как вы собираетесь запихнуть 16-битный элемент массива в 8-битный AL?!
В строке 54 POP BP -------------------- Что непонятно - спрашиваем |
|||
|
||||
| bncom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 2.11.2005 Репутация: нет Всего: 1 |
Так может быть кое-что тогда изменить надо? --------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер |
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
Элементы массива обязательно word? Сделайте их DB ..., поиск максимума перепишите с использованием 8-битных регистров.
-------------------- Что непонятно - спрашиваем |
|||
|
||||
| bncom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 2.11.2005 Репутация: нет Всего: 1 |
JAPH, сделал как вы подсказали - в результате получается какой-т обесконечный цикл...
У меня в массиве всего 5 элементов, а цикл проходит более 50 раз и дальше... --------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер |
|||
|
||||
| JAPH |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
А в AH у вас что? Остаток DSEG? Вставьте XOR AH, AH. Да, и ещё INC SI в строке 49. -------------------- Что непонятно - спрашиваем |
||||
|
|||||
| bncom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 2.11.2005 Репутация: нет Всего: 1 |
Опять же такая проблема (подправил как вы подсказали).
Когда начинаю трассировать в ручном режиме - как буд-то все нормально. Максимальный элемент заносится в AX (хотя, по-идеи он должен быть в AL, но я не знаю где смотреть AL в Turbo Debbager'е), а дальше опять какой-т обесконечный цикл... Можетя я что-то не туда вставляю? --------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер |
|||
|
||||
| sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 2 Всего: 10 |
-------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
| bncom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 2.11.2005 Репутация: нет Всего: 1 |
sgi1981, спасибо большое!
У вас даже лучше получилось: предусмотрели "защиту" от дурака как говорят... Но на 49 строчке (cmovl dx, ax)у меня выдает ошибку. Ошибка в команде видимо, т.к. CMOVL делает пересылку значения источника в приемник, если флаги SF<>OF. Или еще в чем-то.... --------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер |
|||
|
||||
| JAPH |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
Конечно, не туда! Точнее, не то XOR AH, AH, а не XOR AX, AX! INC SI вместо ADD SI, 2.
AL - младший байт AX. AX вы знаете где. Две младшие его цифры и есть AL; две старшие, кстати, AH.
В том, что CMOVxx появилась в Pentium Pro.
Это сообщение отредактировал(а) JAPH - 18.4.2007, 19:52 -------------------- Что непонятно - спрашиваем |
||||||||
|
|||||||||
| sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 2 Всего: 10 |
To bncom:
напиши в самом начале директиву .586p -------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
| bncom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 2.11.2005 Репутация: нет Всего: 1 |
Все сделал - все получилось! =)
Большое всем спасибо! --------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |