|
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 57
|
||||||
TASM Перехватив прерывание от таймера, вывести на экран числа массива, содержащие четное количество единиц06.11.2016, 12:52. Показов 5188. Ответов 11
Задание: Дан массив A из 10 однобайтовых чисел. Перехватив прерывание от таймера, вывести на экран со сдвигом на один разряд влево только числа, содержащие четное количество единиц.
В качестве образца дали пример обработчика, который выводит секунды на экран. Объясните пожалуйста что и как делать.
0
|
||||||
| 06.11.2016, 12:52 | |
|
Ответы с готовыми решениями:
11
Перехватив прерывание от таймера вывести на экран со сдвигом на один разряд вправо элементы массива |
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||||||||||||
| 06.11.2016, 19:31 | ||||||||||||||||
Сообщение было отмечено Киловат как решение
Решение
Строка 14 - не 25h, а 35h (получение вектора).
Строка 32/33 и 52/53 - сохранены не все регистры, лучше заменить на pusha и popa соответственно. Вместо jmp B (строка 29) лучше написать:
Проверять кол-во единиц в числе (al) можно так:
Вот макет правильной программы для работы с прерываниями (вариант COM-программы):
1
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 57
|
|||||||
| 06.11.2016, 20:57 [ТС] | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 57
|
|
| 06.11.2016, 21:28 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 57
|
|
| 06.11.2016, 21:41 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 57
|
||||||||
| 06.11.2016, 22:15 [ТС] | ||||||||
|
Добавлено через 5 минут
0
|
||||||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
| 06.11.2016, 22:22 | |
|
Нет, не так.
Давайте поразмышляем: что будет, если число будет чётным? Произойдёт переход на метку ab. А что будет, если число будет нечётным? Произойдёт переход на следующую команду, а следующая команда какая? xor ah,ah логичнее поместить перед call Добавлено через 1 минуту И строка 16 зачем вообще?
1
|
|
|
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 57
|
|||||||
| 06.11.2016, 22:42 [ТС] | |||||||
![]() Добавлено через 18 минут Я неожиданно опомнился, прочитав снова задание. "При каждом вызове процедуры обработчика запроса на обслуживание прерывания обрабатывать только один элемент массива". То есть сначала нужно произвести все процедуры по сортировке, результат занести в новый массив как положено, а затем между строками
0
|
|||||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||
| 06.11.2016, 23:36 | ||||||
3 и 4 - это посыл команды "конец прерывания" контроллеру прерываний, чтобы прерывание вызвалось в следующий раз (т.к. нет вызова "старого" прерывания). Ничего общего с массивами это не имеет.Нужно объявить переменную, которая будет хранить позицию текущего числа (то самое значение si). После каждого прерывания позиция будет увеличиваться на 1 (а может, и больше, если число единиц вдруг попадётся нечётное). Короче, пишу на ходу, возможны ошибки:
Поправил малость... Добавлено через 2 минуты Меня ещё смущает выражение "со сдвигом на один разряд влево". Видимо, вместо пробела надо вывести на экран backspace (mov dl,8) и поместить это перед call PrintNumber'ом.
1
|
||||||
| 06.11.2016, 23:36 | |
|
Помогаю со студенческими работами здесь
12
Перехватив прерывание от таймера, вывести на экран со сдвигом на один разряд вправо элементы массива Перехватив прерывание от таймера вывести на экран сумму двух соседних нечетных элементов массива Дан массив A из 10 однобайтовых чисел. Перехватив прерывание от таймера вывести на экран только четные числа
Перехватив прерывание от таймера, вывести на экран последовательность квадратов натуральных чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|