Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
AGN
1 / 1 / 0
Регистрация: 07.05.2016
Сообщений: 17
1

Определить количество нулей в матрице

07.05.2016, 15:50. Просмотров 499. Ответов 5
Метки нет (Все метки)

Надо написать программу в языке ассемблера 8086 которая определяет количество нулей в матрице и размер матрицы даётся с клавиатуры и числа тоже с клавиатуры
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2016, 15:50
Ответы с готовыми решениями:

Посчитать количество нулей в окружении единиц
Здравствуйте, уважаемые программисты. Помогите с решением задачки: есть массив...

Найти количество нулей в одномерном массиве
Дан одномерный массив (не ввод с клавиатуры ). Найти колличество 0 в интервале...

Количество пар единиц в окружении нулей
Дан массив из 8 байт. Рассматривая его, как массив из 64 бит, посчитать...

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

Подсчитать количество нулей и единиц в заданном шестнадцатеричном числе.
Задача:Подсчитать количество нулей и единиц в заданном шестнадцатеричном числе.

5
R71MT
5309 / 1470 / 313
Регистрация: 29.07.2014
Сообщений: 2,513
Записей в блоге: 5
07.05.2016, 15:55 2
..в чём проблема?
0
AGN
1 / 1 / 0
Регистрация: 07.05.2016
Сообщений: 17
07.05.2016, 16:01  [ТС] 3
Не знаю как определить количество нулей в матрице
0
R71MT
5309 / 1470 / 313
Регистрация: 29.07.2014
Сообщений: 2,513
Записей в блоге: 5
07.05.2016, 16:12 4
..покажи матрицу
0
AGN
1 / 1 / 0
Регистрация: 07.05.2016
Сообщений: 17
07.05.2016, 16:16  [ТС] 5
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
data segment
numeprog    db 25 dup(0ah),'AMP Tema de laborator6.$'    здесь имя программы  
af1         db 2 dup(0ah),'Introduceti  valorile matricei: $'   здесь числа  вводим
af3         db 2 dup(0ah),'Afisare  matrice: $'                     здесь  сама матрица
citn        db 2 dup(0ah),'Introduceti numarul de linii a matricei: $'            здесь лини    
citm        db 2 dup(0ah),'Introduceti numarul de coloane a matricei: $'      здесь колонка
aft         db 2 dup(0ah),'Matricea: $'                    здесь сколько нулей есть в матрице 
eroarecifra db 2 dup(0ah),' Valorile nu sunt cifre hexa ! $'   здесь даётся ошибка если вводим числа в 
                                                                                шестнадцатеричный системе 
ent db 0ah,0dh,'$'
m db ?
n db ?
data ends
 
assume cs:cod,ds:data 
cod segment
 
start:
mov ax,data
mov ds,ax
 
mov dx,offset numeprog     
mov ah,9                    ;(nameprog)
int 21h
 
mov dx,offset citn      
    mov ah,9            
    int 21h
        mov ah,1                        
    int 21h             
    sub al,30h          
    mov n,al
 
    mov dx,offset citm      
    mov ah,9            
    int 21h
    mov ah,1                
    int 21h             
    sub al,30h          
        mov m,al
 
valorile:   
    mov dx,offset af1       
    mov ah,9            
    int 21h 
    mov al,n            
    mov ah,0
    mul m
    mov cx,ax
    mov dx,offset ent       
    mov ah,9            
    int 21h
    mov ah,1
    mov bx,0
 
 
citire1:
    int 21h
                                        
    cmp al, 30h             
    jl er1              
    cmp al, 3ah             
    jnl urm11           
    sub al, 30h             
                       
urm11:cmp al, 41h           
    jl er1              
    cmp al, 47h             
    jnl urm12           
    sub al, 37h             
                
urm12:cmp al, 61h           
    jl er1              
    cmp al, 67h             
    jnl er1             
    sub al, 57h             
    
er1:mov dx, offset eroarecifra
    mov ah, 9           
    int 21h             
    
 
afs1:
    mov dx,offset af3       
    mov ah,9            
    int 21h
    mov al,n
    mov ah,0
    mul m
    mov cx,ax
    mov bx,0
 
afisare1:
    mov ax,cx
    div m   
    cmp ah,0            
    jne nocr1           
    mov dx,offset ent       
    mov ah,9            
    int 21h
nocr1:
    mov dh,a[bx]
    inc bx              
    add dh,30h
    cmp dh,3ah          
    jl zn1              
    add dh,27h
zn1:
    mov ah,2            
    mov dl,dh
    int 21h
    LOOP afisare1           
    
 
 
 
 
 
 
 
sf:
    mov ah,4ch          ; exit
    int 21h
cod ends
end start
как определить нули не знаю , можете помочь?
0
R71MT
5309 / 1470 / 313
Регистрация: 29.07.2014
Сообщений: 2,513
Записей в блоге: 5
07.05.2016, 18:29 6
ну вот, сразу-бы так.
Если речь идёт про бинарные нули, то берёшь число, выталкиваешь крайний бит и следишь за флагом CF.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
array  db  9,5,10,16,80,103    ; массив
len    =   $ - array           ; его длина
 
start:                         ;
     mov   si,array            ; адрес массива в SI
     mov   bp,len              ; BP - длина
     xor   bx,bx               ; здесь будет результат
begin:                         ;
     lodsb                     ; берём байт из SI
     mov   cx,8                ; сколько раз выдвигать
@1:  shl   al,1                ; сдвиг влево на 1
     jc    @2                  ; пропуск, если CF=1
     inc   bx                  ; считаем нули
@2:  loop  @1                  ; следующий бит..
     dec   bp                  ; весь массив проверили?
     jnz   begin               ; нет - берём сл.байт с массива
                               ; да - результат в BX!
0
07.05.2016, 18:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2016, 18:29

Количество нулей в двоичной записи числа (ассемблерные вставки в с++)
написала ф-цию,которая считает число нулей k в двоичной записи числа m int...

Массив: посчитать количество одиночных единиц в окружении нулей
Помогите решить,не могу понять! 13. Дан массив из 3 байт. Рассматривая его,...

В поле однобайтовых чисел найти количество нулей после первого ненулевого элемента
В ассемблере,в поле однобайтовых чисел с адресами от 02АВ до 0211 найти...


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

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

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