Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Лысков Игорь Витальевич
Статус: Младший модератор
Рейтинг: 411
∙ повысить рейтинг >>
_Ayl_
Статус: 5-й класс
Рейтинг: 342
∙ повысить рейтинг >>
Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 241
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1227 от 14.06.2009, 23:05
Администратор рассылки: Лысков Игорь Витальевич, Младший модератор
В рассылке: подписчиков - 424, экспертов - 60
В номере: вопросов - 1, ответов - 1

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 169212: Здравствуйте! Дело в том, что мне надо сделать программу, которая будет работать с одномерным массивом и находить максимальный элемент и выводить его номер. Причем, каждая ячейка массива должна иметь размер 2 байта. У меня все получилось, только п...



Вопрос № 169212:

Здравствуйте!
Дело в том, что мне надо сделать программу, которая будет работать с одномерным массивом и находить максимальный элемент и выводить его номер. Причем, каждая ячейка массива должна иметь размер 2 байта. У меня все получилось, только программа работает с байтом, а не двумя.
У меня вопрос: почему моя программа работает с моим массивом как будто у него каждая ячейка разрядностью байт, а не 2? Это выражается в том, что если ввести число, большее, чем 255, то получается неверный результат. Причем, номер элемента, если он больший, пишет правильно. Вот такая путаница.
Только одна просьбочка: не пишите свою программу с нуля, поправьте лучше мою. Я использую компилятор MASM. Программа в приложении.
Большое спасибо за помощь!

Отправлен: 09.06.2009, 22:43
Вопрос задал: AkaProc, 4-й класс
Всего ответов: 1
Страница вопроса >>


Отвечает Лысков Игорь Витальевич, Младший модератор :
Здравствуйте, AkaProc.
Ошибка заложена в файле macro.lib. (Приведена здесь)
Рассмотрим фрагмент:
Код:
m4:
move_cursor 0,0
mov ax,bx
message x4
print_number
crlf

Макро move_cursor вызывает, в свою очередь, макро video_state,
а вот оно портит регистр bh (заносит в него номер страницы видеопамяти) !!!
А в BX у нас лежало максимальное значение...
Исправить можно двумя способами:
1) поменять местами две строки (регистр ax не портится):
Код:
m4:
mov ax,bx
move_cursor 0,0

2) исправить макро move_cursor:
Код:
move_cursor macro x,y
local ok,vs
push ax
push dx
push bx
;...
pop bx
pop dx
pop ax
endm
Украина, Кировоград
ICQ # 234137952
Mail.ru-агент: igorlyskov@mail.ru

-----
Удачи!

Ответ отправил: Лысков Игорь Витальевич, Младший модератор
Ответ отправлен: 10.06.2009, 04:51

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 250729 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.1 RC от 10.06.2009

    В избранное