Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты по данной тематике Номер выпуска: | 1547 | Дата выхода: | 18.10.2013, 17:30 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 46 / 24 | Вопросов / ответов: | 1 / 1 | Консультация # 187573: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Задал преподаватель написать программу подсчета положительных элементов массива типа Word. Реализовать надо с помощью Nsam. Вот что у меня получилось: ... Консультация # 187573: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Задал преподаватель написать программу подсчета положительных элементов массива типа Word. Реализовать надо с помощью Nsam. Вот что у меня получилось:
Код : SECTION .data MAS: dw 1,1,2,-5,5,-3 /массив SECTION .text org 0x100 START: mov si,0 /обнуление счетчиков mov bl,0 mov dh,0 FOR_LOOP: /цикл mov al,[MAS+si] cmp al,bl ja CHETCHIK METKA: inc si /наращивает счетчик прогонов cmp si,6 /пока не будет 6 элементов по колву чисел в массиве jne FOR_LOOP jmp FINISH CHETCHIK: inc dh /наращиваем счётчик положительных элементов jmp METKA FINISH: mov dl,ah /вывод add DL,'0' mov dh, 0x02 int 0x21 mov aH,0x4C int 0x21 int 0x21 Вот только ничего она не выводит. В чём я ошибся? Дата отправки: 15.10.2013, 16:58 Вопрос задал: Пока Что Студент (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Лысков Игорь Витальевич (Старший модератор): Здравствуйте, Пока Что Студент! Посмотрите исправленную версию. Будет непонятно, спрашивайте в мини-форуме
Код : SECTION .data MAS: db 1,1,2,-5,5,-3 ;массив (не dw !!!!) байтов SECTION .text org 0x100 START: mov si,0 ;обнуление счетчиков mov bl,0 mov dh,0 FOR_LOOP: ;цикл mov al,[MAS+si] cmp al,bl jg CHETCHIK ;а не ja CHETCHIK !!!! METKA: inc si ;наращивает счетчик прогонов cmp si,6 ;пока не будет 6 элементов по колву чисел в массиве jne FOR_LOOP jmp FINISH CHETCHIK: inc dh ;наращиваем счётчик положительных элементов jmp METKA FINISH: mov dl,dh ;вывод (не mov dl,ah !!!!) add DL,'0' mov ah, 0x02 ;не mov dh, 0x02 !!!! int 0x21 mov aH,0x4C int 0x21 Ваша программа работает с байтами, поэтому я исправил данные на байты. Потом посмотрел условие и увидел там Word. Вот Вам версия для работы со словами. Сравните:
Код : SECTION .data MAS: dw 1,1,2,-5,5,-3 ;массив SECTION .text org 0x100 START: mov si,0 ;обнуление счетчиков mov bx,0 mov dh,0 FOR_LOOP: ;цикл mov ax,[MAS+si] cmp ax,bx jg CHETCHIK ;а не ja !!!! METKA: add si,2 ;наращивает счетчик прогонов cmp si,12 ;пока не будет 6 элементов по колву чисел в массиве jne FOR_LOOP jmp FINISH CHETCHIK: inc dh ;наращиваем счётчик положительных элементов jmp METKA FINISH: mov dl,dh ;вывод (не mov dl,ah !!!!) add DL,'0' mov ah, 0x02 ;не mov dh, 0x02 !!!! int 0x21 mov aH,0x4C int 0x21 Ну и еще одна версия, как я бы сделал:
Код : SECTION .data MAS: dw 1,1,2,-5,5,-3 ;массив len equ ($-MAS)/2 SECTION .text org 0x100 START: lea si,[MAS] mov cx, len mov dl, 0 FOR_LOOP: ;цикл lodsw test ax, ax jle METKA inc dl ;наращиваем счётчик положительных элементов METKA: loop FOR_LOOP add DL,'0' mov ah, 0x02 int 0x21 mov ah,0 int 16h ;ждем нажатие клавиши mov aH,0x4C int 0x21
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка | восстановить логин/пароль Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий