0 / 0 / 1
Регистрация: 03.04.2012
Сообщений: 6

Процедура подсчета количества бит установленных в единицу

01.05.2013, 18:25. Показов 1698. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно подсчитать количество бит установленных в единицу в целом значении типа dword. Используя процедуру обработать 10 чисел.

помогите пожалуйста переделать программу.

Здесь процедура определяет максимальную цифру (десятичная система) в
целочисленном значении типа word, переданном в параметре.

Понимаю, что нужно использовать команду сдвига, также походу нужно использовать флаги, но ка-кто ничего не получается.

Помогите пожалуйста.

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
.486
model small
Data SEGMENT use16
    ASSUME ds:Data
    x1 dw 1796
    x2 dw 816
    x3 dw 569
    x4 dw 754
    x5 dw 129
    x6 dw 884
    x7 dw 1245
    x8 dw 6592
    x9 dw 056
    x10 dw 43
Data ENDS
Stk  SEGMENT use16 stack
    db 256 dup(0)
Stk  ENDS
Code SEGMENT use16
    ASSUME cs:Code, es:code
MaxDig proc
    push bp
    mov bp,sp
    mov ax,word ptr [bp+4]
    mov cx,10
    mov bx,0    ;max digit
    
label1:
    xor dx,dx
    div cx
    cmp dx,bx   ;ostatok
    jle LABEL0
    mov bx,dx   ;bx hranit maksimalnuyu cifru
    
label0:
    cmp ax,0
    jne label1
    mov ax,bx   ;ax=maxdig
    pop bp
    ret 2
maxdig endp
 
print proc
    push bp
    mov bp, sp
    mov ax, word ptr [bp+6]
    push ax
    call maxdig
    mov di, word ptr [bp+4]
    add al,48
    mov ah, 0fh
    stosw
    pop bp
    ret 4
print endp
 
start:
    mov ax, Data
    mov ds, ax
    mov ax, 0b800h          ;В регистр AX заносим адрес сегмента видеобуфера
    mov es, ax 
    xor di,di
    mov cx, 25*80
    mov al, ' '
    mov ah, 0fh
    rep stosw
    ;mov di, offset strk
    xor di,di
;----------------x1
    mov bx,6
    push bx     ;sohranyaem adres simvola iz videobufera
    push x1
    push bx
    call print
;----------------x2
    pop bx
    add bx,160
    push bx
    push x2
    push bx
    call print
;----------------x3
    pop bx
    add bx,160
    push bx
    push x3
    push bx
    call print
;----------------x4
    pop bx
    add bx,160
    push bx
    push x4
    push bx
    call print
;----------------x5
    pop bx
    add bx,160
    push bx
    push x5
    push bx
    call print
;----------------x6
    pop bx
    add bx,160
    push bx
    push x6
    push bx
    call print
;----------------x7
    pop bx
    add bx,160
    push bx
    push x7
    push bx
    call print
;----------------x8
    pop bx
    add bx,160
    push bx
    push x8
    push bx
    call print
;----------------x9
    pop bx
    add bx,160
    push bx
    push x9
    push bx
    call print
;----------------x10
    pop bx
    add bx,160
    push bx
    push x10
    push bx
    call print
    pop bx      ;udalenie iz steka adresa simvola iz videobufera
wait0:
    in al, 60h
    cmp al, 1
    jnz wait0
    mov ax, 4c00h
    int 21h
 
    strk db 7 dup(0),'$'
Code ENDS
end start
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2013, 18:25
Ответы с готовыми решениями:

Подсчёт количества установленных бит в младшем и старшем разрядах
Дан файл, содержащий целые 16-ти разрядные числа. Записать в файл 1.txt все значения, у которых количество установленных бит в старшем...

Удалить из файла все числа, число бит установленных в единицу, в которых более трех
Народ нужна помощь, у меня есть задание: Файл содержит целые числа. Удалить из файла все числа, число бит установленных в единицу, в...

Напечатать его в порядке возрастания количества бит установленных для a[i] в 0
Дан целый массив a, заполнить его по формуле a = 7*i+11, напечатать его в порядке возрастания количества бит установленных для a в 0. ...

2
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
03.05.2013, 13:35
Assembler
1
2
3
4
5
xor ax, ax
count1:
adc ax, 0
shr dx, 1
jnz count1
1
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,937
03.05.2013, 21:32
Assembler
1
2
POPCNT eax
ret
http://ru.wikipedia.org/wiki/S... 0.B8.D1.82
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.05.2013, 21:32
Помогаю со студенческими работами здесь

Процедура подсчета суммы и количества цифр в числе
С помощью процедуры найти количество и сумму цифр для каждого из пяти данных целых чисел Описал процедуру, код вроде должен считать и...

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

Процедура для подсчета количества элементов в массиве
Ребят, помогите пожалуйста.)надо написать процедуру для подсчета в заданном массиве A(5,5) количества элементов превышающих заданное число...

Количество бит установленных в 1 в кодировке ASCII для русских букв
Посчитать и вывести на монитор количество бит установленных в 1 в коде ASCII для русских букв. Создать и напечатать массив этих символов по...

Написать подпрограмму, подсчитывающую количество установленных бит в битовой строке
Не знаю, как написать код для подсчета бит в строке. Задание: Написать подпрограмму, подсчитывающую количество уста- новленных бит в...


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

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

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru