Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 14
1
TASM

Посчитать количество нулей, в двойном слове

14.03.2012, 19:13. Показов 935. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые обитатели данного форума. Так вышло, что мне нужна ваша помощь. Если есть желающие буду рад, принять вашу помощь. И в замен я буду очень благодарен. Вот собственно у меня такая проблема. Надо переделать данную программу, чтобы она работала без вывода на экран. Т.е. чтобы не выводила результат в отдельном окне. Короче, чтобы была более элементарна. И еще если не трудно сделайте пожалуйста, чтобы он подсчитывала количество нулей. Вот задание - Посчитать количество нулей, в двойном слове.

А программа просто считает еденицы.
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
data segment 
mass db 11111111b,00101111b,00101111b,00101111b,00101111b
data ends
code segment                                     ; кодовый семент
assume cs:code,ds:data                         
start:                                         
mov ax,data                                      ; загрузка данных в ax
mov ds,ax                                        ; ax в сегмент данных
xor dx,dx                                        ; обнуление dx
mov cx,5                                         ; количество байтов в массиве
lea bx,mass                                      ; андресация первого элемента
Cicl1: push cx                                   ; перемещение в стек
mov cx,8                                         ; количество битов в байте
Cicl2: ror byte ptr [bx],1                       ; сдвиг на 1 бит вправо
adc dx,0                                         ; если был перенос увеличим bX на 1
loop Cicl2                                       ; Возвращение на метку c2, счетчик
inc bx                                           ; перешли к следующему байту
pop cx                                           ; извлечение байта из стека
loop Cicl1                                       ; Возвращение на метку c1, счетчик
mov ax,dx                                        ; dx переносим в ax
mov dl,10
div dl
mov dx,ax                                        ; ax переносим в dx
or dx,3030h                                      ; ввод по координатам
mov ah,2
int 21h                                          ; прерывание
mov dl,dh                                        ; dh в dl
int 21h                                          ; прерывание
mov ah,10h                                       ; считывает символ из  
int 16h                                          ; буфера
mov ax,4c00h                                     ; выход из программы
int 21h                                          ; прерывание
code ends
end start
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2012, 19:13
Ответы с готовыми решениями:

Количество нулей в 32 разрядном слове
Помогите пожалуйста написать: Подсчитайте кол. нулей в 32-разрядном двоичном машинном слове. На С++.

Дана строка, состоящая из групп нулей и единиц. Посчитать количество нулей и единиц
Дана строка, состоящая из групп нулей и единиц. Посчитать количество нулей и единиц.

Написать программу с матрицей и посчитать: количество нулей, стоящих на главной диагонали, количество единиц в матрице
написать программу где дана целочисленная квадратная матрица порядка N. Подсчитать: а) количество...

Посчитать количество нулей
Дано шестизначное натуральное число N. Посчитайте, сколько нулей содержит это число. #include...

2
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
14.03.2012, 19:30 2
Цитата Сообщение от DoubleDan
Посчитать количество нулей, в двойном слове.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
    org 100h
    mov ebx,[dat]
    mov cx,32
    xor ax,ax
@@1:    rcl ebx,1
    sbb al,0
    loop    @@1
    add ax,32   ; в ax - кол-во нулевых битов.
;   ....
    int 20h
 
dat dd  11111111h
1
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 14
14.03.2012, 22:30  [ТС] 3
Спасибо большое!!! Не думал, что так быстро ответят. Правда я тугой в ассемблере и не пойму куда это вставить.

Добавлено через 2 часа 54 минуты
Если можешь, объясни пожалуйста.
0
14.03.2012, 22:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2012, 22:30
Помогаю со студенческими работами здесь

Посчитать количество нулей в числе
⦁ Пользователь вводит число. Определить количество цифр в этом числе, посчитать их сумму и среднее...

Посчитать количество нулей в списке
Посчитать количество нулей в списке

Посчитать количество нулей в матрице
написал вот такую программку #include <iostream> #include <string> using namespace std; int...

Посчитать количество нулей и единиц
Написать код для выполнения задачи. Дана строка, состоящая из групп нулей и единиц. Посчитать...

Посчитать количество нулей и единиц в массиве
Прошу помочь доработать код private void button1_Click(object sender, EventArgs e) { ...

Посчитать количество нулей и единиц в строке
Дана строка, состоящая из групп нулей и единиц. Посчитать количество нулей и единиц

Посчитать количество нулей и единиц в строке
Дана строка, состоящая из групп нулей и единиц. Посчитать количество нулей и единиц.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru