Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
123rustem45
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 41
1

Программа, подсчитывающая количество единиц. Ассемблер, tasm

02.03.2014, 10:57. Просмотров 897. Ответов 5
Метки нет (Все метки)

Напишите программу, подсчитывающую количество единиц в заданном байте или слове:
A DB 01101011B
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 10:57
Ответы с готовыми решениями:

Программа вычисления по формуле. Ассемблер, tasm
Можете подсказать, как сделать? Написать программу вычисления по формуле: y= (a+b)/(c-d)^2. Выдать...

Программа производящая замену одного символа на другой. Ассемблер, tasm
Что нужно изменить в данной программе, чтобы он заменял искомый символ на другой, введенный с...

Программа, выдающая все совпадающие элементы двух массивов. Ассемблер, tasm
Как изменить программу, чтобы можно было компилировать не через com, а через exe в tasm? .model...

Ассемблер(TASM) переименовать файл
Добрый день уважаемые программисты. Остался последний шаг и программа будет полностью рабочей....

Ввод строки с клавиатуры. Ассемблер, tasm
Ввод строки с клавиатуры функции 3fh, 21 прерывания. Что нужно изменить в данной программе, чтобы...

5
Mikl___
Автор FAQ
13486 / 6417 / 635
Регистрация: 11.11.2010
Сообщений: 11,588
02.03.2014, 14:30 2
123rustem45,
сперва покажи свои попытки по созданию программы. Если нет желания писать самостоятельно, то для таких случаев на форуме предусмотрен коммерческий раздел.
0
123rustem45
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 41
02.03.2014, 15:45  [ТС] 3
Что нужно исправить, чтобы выводил ответ?
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
Data SEGMENT
A     DB     01101011b
Data ENDS
Ourstack SEGMENT Stack                  
DB 100h DUP (?)                         
Ourstack ENDS                           
ASSUME CS:Code, DS: Data, SS:Ourstack    
Code SEGMENT                            
Start:    
 MOV AX,data
            MOV DS, AX 
            mov  bx,word ptr A
        mov  cx,16
        mov  ax,0
@@1:  shr bx,1
        adc  ax,0
        loop @@1
        mov bx,word ptr A+2
        mov cx,16
@@2: shr bx,1
       adc ax,0
        loop @@2
     mov cx,32
     sub cx,ax 
mov AX, 4C00h                           
    int 21h                                 
Code ENDS
END Start
0
Mikl___
Автор FAQ
13486 / 6417 / 635
Регистрация: 11.11.2010
Сообщений: 11,588
03.03.2014, 09:15 4
Лучший ответ Сообщение было отмечено 123rustem45 как решение

Решение

123rustem45,
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
; masm dos exe #
.286
.model small
.data 
A DB 01101011b
.code
Start:  mov ax,@data
    mov ds,ax
    mov ax,3;очистим экран
    int 10 
    mov bl,A
    mov cx,8;А - это байт, в байте 8 разрядов
    mov dl,0;обнулим счетчик
@@1:    shr bl,1;сдвигаем вправо
    adc dl,0;если единичка, тогда увеличиваем счетчик
    loop @@1
    add dl,'0';делаем цифру
    mov ah,2;выводим ее на экран
    int 21h
    mov ah,0;ждем нажатия на клаву
    int 16h
    mov ah,4Ch ;выходим из программы
    int 21h 
end start
1
123rustem45
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 41
03.03.2014, 19:16  [ТС] 5
А как теперь можно изменить программу, чтобы он считал не количество единиц, а количество нулей?
0
Mikl___
Автор FAQ
13486 / 6417 / 635
Регистрация: 11.11.2010
Сообщений: 11,588
04.03.2014, 02:40 6
123rustem45,
  1. после mov bl,A вставь команду not bl
  2. или от 8 отнять количество найденных единиц
1
04.03.2014, 02:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2014, 02:40

Пересылка массива слов. Ассемблер, tasm
Изменить данную программу в программу для пересылки массива слов. sseg segment db 128 dup(?)...

Замена в файле нужного байта. Ассемблер, tasm
Как поменять в файле 10 байт? Программа выводит 10 байт, но не заменяет его .model small org 100h...

Определить номер заданного байта. Ассемблер, tasm
Можете исправить ошибки, чтобы определял номер заданного байта? .model small .data fname db...


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

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

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