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

Посчитать количество байт с числом единиц в байте, равным 3

03.12.2015, 16:08. Просмотров 1025. Ответов 6
Метки нет (Все метки)

Добрый вечер) Такая задача:
Дан массив из 10 байт.Посчитать кол-во байт с числом единиц в байте равным 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
29
30
31
32
33
34
35
36
37
38
39
40
41
include 'emu8086.inc'
org 100h 
 
MOV AH,0 
MOV DH,3  
MOV BX,9
MOV DL,0 
 
MOV CX,8 
   
 
for1:
 
MOV AL, mass[BX]
 
for2:
 
SHL AL, 1
ADC AH, 0                                       
 
LOOP for2 
 
CMP AH,DH  
JE var 
 
var:
ADD DL,1
 
MOV d,DL
 
DEC  BX, 1
JNS for1
 
 
 
d db ?
 
ret
 
 
mass db 1,11,7,4,5,6,5,8,11,10
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2015, 16:08
Ответы с готовыми решениями:

Посчитать количество байт с нечётным числом единиц
дан массив из 11 бит. посчитать количество байт с нечётным количеством единиц. Assembler

Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте
Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте.-Assembler помогите...

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

Подсчитать количество байт с нечетным числом единиц
Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте.Очень срочно!!!!!!

Посчитать количество байт с чётным количеством единиц
дан массив из 11 байт. посчитать количество байт с чётным количеством единиц. Assembler. смыысл...

6
Constantin Cat
6684 / 1295 / 406
Регистрация: 28.02.2015
Сообщений: 2,778
Завершенные тесты: 1
03.12.2015, 17:12 2
Ошибок три:
1)кто будет обнулять АН;
2)переход на метку var;
3)декримент ВХ.
0
Fliiz
0 / 0 / 1
Регистрация: 22.04.2015
Сообщений: 42
03.12.2015, 17:38  [ТС] 3
1)Как обнулить AH?
2)Так?
Код
var:
ADD DL,1 

CMP AH,DH 
JE var
3)Что не так с декрементом?

Добавлено через 11 минут
А с декрементом понял косяк DEC BX..А вот в каком месте обнулять AH?
0
Constantin Cat
6684 / 1295 / 406
Регистрация: 28.02.2015
Сообщений: 2,778
Завершенные тесты: 1
03.12.2015, 18:24 4
Мда.
Исправленный вариант:
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
model tiny
.code
org 100h
begin:
MOV AH,0
MOV DH,3
MOV BX,9
MOV DL,0
MOV CX,8
for1:
MOV AL, mass[BX]
mov ah,0
for2:
SHL AL, 1
ADC AH, 0
LOOP for2
CMP AH,DH
JnE var
ADD DL,1
MOV d,DL
var:
DEC  BX
JNS for1
ret
mass db 1,11,7,4,5,6,5,8,11,10
d db ?
end begin
0
Fliiz
0 / 0 / 1
Регистрация: 22.04.2015
Сообщений: 42
03.12.2015, 18:42  [ТС] 5
Вы у себя не проверяли до сих пор D=0..Хотя по идеи должен быть D=3(
И она зацикливается здесь:
Код
for2:
SHL AL, 1
ADC AH, 0
LOOP for2
0
Constantin Cat
6684 / 1295 / 406
Регистрация: 28.02.2015
Сообщений: 2,778
Завершенные тесты: 1
03.12.2015, 18:51 6
Лучший ответ Сообщение было отмечено Fliiz как решение

Решение

Строки 9 и 10 поменяйте местами.
Хотя проще так:
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
model tiny
.code
org 100h
begin:
MOV AH,0
MOV DH,3
MOV BX,9
MOV DL,0
;MOV CX,8
for1:
MOV AL, mass[BX]
mov ah,0
for2:
SHL AL, 1
ADC AH, 0
or  al,al
jnz for2
CMP AH,DH
JnE var
ADD DL,1
MOV d,DL
var:
DEC  BX
JNS for1
ret
mass db 1,11,7,4,5,6,5,8,11,10
d db ?
end begin
1
Fliiz
0 / 0 / 1
Регистрация: 22.04.2015
Сообщений: 42
03.12.2015, 18:59  [ТС] 7
Спасибо вам огромное!
0
03.12.2015, 18:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2015, 18:59

Посчитать количество двоичных единиц переменной 8 байт
Всем привет. Такой вопрос, мне задали задание посчитать количество двоичных единиц переменной 8...

Посчитать количество байт, число единиц в которых не превышает 6
Дан массив из 10 байт. Посчитать количество байт, число единиц в которых не превышает 6.ПОЖАЛУЙСТА...

Дан массив из 10 байт. Посчитать количество единиц во всех разрядах, кратных трём: 3, 6, 9, …, 75, 78
помогите пожалуйста найти ошибки! заранее спасибо) Ассемблер. Дан массив из 10 байт. Посчитать...


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

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

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