Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 8
1

Написать и протестировать функцию, подсчитывающую количество минимальных элементов в целочисленной матрице

16.10.2017, 06:35. Показов 1226. Ответов 1
Метки нет (Все метки)

Написать и протестировать функцию, подсчитывающую количество минимальных
элементов в целочисленной матрице. на языке Ассемблер заранее благодарю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2017, 06:35
Ответы с готовыми решениями:

Написать и протестировать функцию,подсчитывающую количество минимальных элементов в целочисленной матрице
Написать и протестировать функцию,подсчитывающую количество минимальных элементов в целочисленной...

Написать и протестировать функцию,подсчитывающую количество неположительных элементов в массиве.
Написать и протестировать функцию,подсчитывающую количество неположительных элементов в массиве. ...

Подсчитать количество минимальных элементов в целочисленной матрице
написать процедуру и функцию которая подсчитывает количество минимальных элементво в целочисленной...

Найти количество минимальных элементов в целочисленной матрице
Написать и протестировать функцию, подсчитывающую количество минимальных элементов в целочисленной...

1
Модератор
Эксперт по электронике
7527 / 3715 / 1457
Регистрация: 01.02.2015
Сообщений: 11,555
Записей в блоге: 2
22.10.2017, 00:42 2
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
@stack  segment para stack
        db      1024 dup(?)
@stack  ends
 
@data   segment
        N       dw      5
        M       dw      8
        Matrix  dw       61,-69, 37,-17,-59,-90, 73, 30
                dw       83,-82,-34,-17,-29, 29,-57,-59
                dw       32, 18, 96,-74,-35, 78, 24,-45
                dw      -37, 16,-12,-12,-23,-66, 89,-63
                dw       65, 35,-47,-91, 58, 65,-11,-91
        Min     dw      ?
        Count   dw      ?
        Msg1    db      'Matrix:', 0Dh, 0Ah, '$'
        Msg2    db      'Minimum is:', '$'
        Msg3    db      0Dh, 0Ah, 'Repeat:    ', '$'
        Msg4    db      ' time(s).'
        CrLf    db      0Dh, 0Ah, '$'
@data   ends
 
@code   segment
        assume  cs:@code, ds:@data, ss:@stack
main    proc
        ;инициализация сегментного регистра данных
        mov     ax,     @data
        mov     ds,     ax
        ;подсчёт количества минимальных элементов
        lea     dx,     [Matrix]
        mov     bx,     [M]
        mov     cx,     [N]
        call    MinMatrix
        mov     [Min],  ax
        mov     [Count],cx
        ;вывод результатов
        mov     ah,     09h
        lea     dx,     [Msg1]
        int     21h
        lea     dx,     [Matrix]
        mov     bx,     [M]
        mov     cx,     [N]
        call    ShowMatrix
        mov     ah,     09h
        lea     dx,     [Msg2]
        int     21h
        mov     ax,     [Min]
        call    Show_AX
        mov     ah,     09h
        lea     dx,     [Msg3]
        int     21h
        mov     ax,     [Count]
        call    Show_AX
        mov     ah,     09h
        lea     dx,     [Msg4]
        int     21h
        ;завершение программы
        mov     ax,     4C00h
        int 21h
main    endp
 
;Подсчёт количества минимальных элементов в матрице
;на входе:
;  ds:dx - адрес матрицы
;  bx    - количество столбцов в матрице
;  cx    - количество строк в матрице
;на выходе:
;  ax - значение минимального элемента
;  cx - количество минимальных элементов в матрице
MinMatrix       proc
        push    bx
        push    dx
        push    si
        push    di
        pushf
 
        jcxz    @@mmExit
        or      bx,     bx
        jz      @@mmExit
 
        xchg    bx,     dx              ;bx - адрес матрицы
                                        ;dx - количество элементов в строке матрицы
        mov     ax,     7FFFh           ;min:=MaxInt - в ax значение минимума
        mov     di,     0               ;Count:=0    - количество минимальных элементов
        @@mmForI:                               ;for i:=0 to N-1 do
                mov     si,     0               ;  for j:=0 to M-1 do
                push    cx
                mov     cx,     dx
                @@mmForJ:
                        cmp     ax,     [bx+si]
                        je      @@mmIncCount
                        jl      @@mmNextJ       ;    if (min>Matrix[i,j])
                                                ;      {
                        mov     ax,     [bx+si] ;        min:=Matrix[i,j]
                        mov     di,     0       ;        Count:=0
                                                ;      }
                @@mmIncCount:                   ;    if (min==Matrix[i,j])
                        inc     di              ;      Count++
                @@mmNextJ:
                        add     si,     2
                loop    @@mmForJ
                pop     cx
                add     bx,     dx
                add     bx,     dx
        loop    @@mmForI
        mov     cx,     di
@@mmExit:
        popf
        pop     di
        pop     si
        pop     dx
        pop     bx
        ret
MinMatrix       endp
 
 
;Вывод на экран матрицы слов
;на входе:
;  ds:dx - адрес матрицы
;  bx    - количество столбцов в матрице
;  cx    - количество строк в матрице
;на входе:
;  -
ShowMatrix      proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        push    di
        pushf
 
        jcxz    @@smExit
        or      bx,     bx
        jz      @@smExit
 
        cld
        mov     cx,     cx
        mov     si,     dx
        @@smForI:
                push    cx
                push    bx
                mov     cx,     bx
                @@smForJ:
                        lodsw
                        call    Show_AX
                loop    @@smForJ
                mov     ah,     09h
                lea     dx,     [CrLf]
                int     21h
                pop     bx
                pop     cx
        loop    @@smForI
 
@@smExit:
        popf
        pop     di
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
ShowMatrix      endp
 
; выводит знаковое 16-разрядное число из регистра AX на экран
; входные данные:
; ax - число для отображения
Show_AX proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        push    di
 
        mov     cx,     10      ;основание системы счисления
        xor     di,     di      ; di - кол. цифр в числе
        xor     si,     si      ; si - признак отрицательного числа
        ; если число в ax отрицательное, то
        ;1) напечатать (запомнить в стеке) символ '-'
        ;2) сделать ax положительным
        or      ax,     ax
        jns     @@Conv
        mov     si,     1
 
        neg     ax
 
@@Conv:
        xor     dx,     dx
        div     cx              ; dl = num mod 10
        add     dl,     '0'     ; перевод в символьный формат
        inc     di
        push    dx              ; складываем в стек
        or      ax,     ax
        jnz     @@Conv
        ;если число отрицательное - помещаем символ "-" в строку
        or      si,     si
        jz      @@Positive
        mov     dx,     '-'
        push    dx
        inc     di
@@Positive:
        ; выводим из стека на экран
        ; - сначала пробелы для выравнивания по правому краю
        mov     cx,     8
        sub     cx,     di
        mov     ah,     02h
        mov     dl,     ' '
@@LeftPad:
        int     21h
        loop    @@LeftPad
        ;сохранённые символы цифр
@@Show:
        pop     dx              ; dl = очередной выводимый символ
        mov     ah,     2       ; ah - функция вывода символа на экран
        int     21h
        dec     di              ; повторяем пока di<>0
        jnz     @@Show
 
        pop     di
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
Show_AX endp
 
@code   ends
 
        end     main
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2017, 00:42

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Написать и протестировать функцию, которая в прямоугольной матрице находит сумму элементов j строки
Понятия не имею что ещё делать. Только учусь программировать. Подправьте программу где нужно ...

Написать функцию, подсчитывающую количество элементов во множестве А типа М
Народ такое вот условие для программы понятие не иею что тут делать подскажите пожалуйста Пусть...

Написать функцию, находящую количество отрицательных элементов в матрице.
Напишите пожалуйста решение!СПАСИБО! Написать функцию, находящую количество отрицательных...

Написать функцию, подсчитывающую количество цифр числа
Написать функцию, подсчитывающую количество цифр числа. Используя её определить в каком из двух...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.