Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.09.2018
Сообщений: 2
TASM

Дан массив A из 10 однобайтовых чисел. Перехватив прерывание от таймера вывести на экран только четные числа

22.12.2019, 22:09. Показов 2740. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть такой вопрос, который мой мозг не в состоянии разрешить.
Как можно исправить код (в файле), чтобы выводились только четные однобайтовые числа из массива перехватив прерывания от таймера?
Пример программы ниже.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
.MODEL SMALL
.STACK 256
 
delay MACRO time ; cycles for delay
local ext, iter
    push cx
    mov cx, time
ext:
    push cx
    mov cx, 65000
iter:
    loop iter
    pop cx
    loop ext
    pop cx
ENDM
 
.DATA
old_off_1C dw 0
old_seg_1C dw 0
 
.CODE
off_1Ch equ 1Ch*4
 
char db 48
color db 07
position dw 0
number dw 1
oldNumber dw 0
check db 0
 
Start:
    mov ax, @data
    mov ds, ax; link with data segment
 
    mov ax, 0500h
    int 10h; video interrupt
 
    cli; clear interrupts
 
    xor ax, ax
    mov es, ax; go to begining of memory
 
    mov ax, es:[off_1Ch]
    mov old_off_1C, ax; write old 1C address
    mov ax, es:[off_1Ch+2]
    mov old_seg_1C, ax; write old 1C segment
 
    mov ax, offset New_1Ch
    mov es:off_1Ch, ax
    push cs
    pop ax
    mov es:off_1Ch+2, ax
 
    sti; set interrupts
 
    delay 2000
 
    cli ; clear interrupts
    mov ax, old_off_1C
    mov es:off_1Ch, ax ; return old offset
    mov ax, old_seg_1c
    mov es:off_1Ch+2, ax ; return old segment
 
    sti; set interrupts
 
Exit:
    mov ax, 4C00h
    int 21h
 
New_1Ch PROC
    cmp check, 3
    jz end_interrupt
 
    push ax
    push bx
    push cx
    push dx
    push es
    push ds ; write registers to stack
 
    push cs
    pop ds
 
    mov ax, 0B800h
    mov es, ax; set video memory
 
    mov bx, 10
    xor cx, cx
    mov ax, oldNumber
 
cycle: ; push symbols of number
    xor dx,dx
    div bx
 
    push dx
    inc cx
 
    cmp ax, 0
    jnz cycle
 
write:
    pop ax
    add al, char
    mov ah, color
    mov bx, position
 
    mov es:[bx], ax ; write number
 
    inc position
    inc position
    dec cx
    cmp cx, 0
    jnz write
 
    inc position
    inc position
    mov bx, position
 
    mov al, 20h
    mov ah, color
    mov es:[bx], ax ; write space
 
    mov ax, number
    xchg oldNumber, ax
    add number, ax;eval new number
    jnc stack_pop
    inc check
 
stack_pop:
    pop ds
    pop es
    pop dx
    pop cx
    pop bx
    pop ax ; write stack to registers
end_interrupt:
    iret
New_1Ch ENDP
 
END Start
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2019, 22:09
Ответы с готовыми решениями:

Перехватив прерывание от таймера, вывести на экран последовательность степеней числа 2
Перехватив прерывание от таймера, вывести на экран последовательность степеней числа 2. Вывод прекратить, когда числа выйдут за пределы...

Перехватив прерывание от таймера, вывести из массива А на экран все числа, большие 05h и меньшие 20h
В общем, есть программа, которая выполняет следущее: Дан массив A из 10 однобайтовых чисел. Перехватив прерывание от таймера, вывести на...

Перехватив прерывание от таймера вывести на экран сумму двух соседних нечетных элементов массива
Дан массив A из 10 однобайтовых чисел. Перехватив прерывание от таймера вывести на экран сумму двух соседних нечетных элементов массива.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2019, 22:09
Помогаю со студенческими работами здесь

Перехватив прерывание от таймера проверить есть ли в нем число 10h
Доброго времени суток ув. все! Прошу Вас о помощи, задали небольшую задачку на ассемблере написать, но так как этот язык мне не интересен,...

Дан массив целых чисел: вывести на экран сначала его четные элементы, затем нечетные
Можете помочь с задачей я новичок в это некоторые детали не могу понять. Дан массив целых чисел. Вывести на экран сначала его четные...

Сформировать одномерный массив целых чисел. Выбрать все чётные числа. Вывести на экран
Сформировать одномерный массив целых чисел. Выбрать все чётные числа. Вывести на экран.

Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0
Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
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, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru