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

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

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

Author24 — интернет-сервис помощи студентам
Напишите программу, подсчитывающую количество единиц в заданном байте или слове:
A DB 01101011B
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2014, 10:57
Ответы с готовыми решениями:

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

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

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

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

5
Ушел с форума
Автор FAQ
16281 / 7605 / 1066
Регистрация: 11.11.2010
Сообщений: 13,618
02.03.2014, 14:30 2
123rustem45,
сперва покажи свои попытки по созданию программы. Если нет желания писать самостоятельно, то для таких случаев на форуме предусмотрен коммерческий раздел.
0
1 / 1 / 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
Ушел с форума
Автор FAQ
16281 / 7605 / 1066
Регистрация: 11.11.2010
Сообщений: 13,618
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
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 41
03.03.2014, 19:16  [ТС] 5
А как теперь можно изменить программу, чтобы он считал не количество единиц, а количество нулей?
0
Ушел с форума
Автор FAQ
16281 / 7605 / 1066
Регистрация: 11.11.2010
Сообщений: 13,618
04.03.2014, 02:40 6
123rustem45,
  1. после mov bl,A вставь команду not bl
  2. или от 8 отнять количество найденных единиц
1
04.03.2014, 02:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2014, 02:40
Помогаю со студенческими работами здесь

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

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

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

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


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

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