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

Преобразование числа с контролем четности

17.09.2022, 16:08. Показов 504. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Уже 4-й день пытаюсь понять ассемблер, но сильных продвижений нет. Мне нужно написать программу, которая преобразует двоичное число с контролем по четности. Лучше объяснить поэтапно:

1)На вход подается двоичное число, например 11001111 (первый бит слева - контрольный, который контролирует четность количества единиц в двоичном числе);
2)Циклом должно посчитать количество единиц в двоичном числе (в данном случае шесть единиц)
3)Дальше условие: четное ли количество единиц? Если четное то перевести 7 бит в десятичное число (без контрольного бита) и поместить его в результирующую переменную (т.е. перевести 1001111 в десятичное, это число 79). Если же количество единиц нечетное, то инкрементировать (прибавить к числу 1) изначальное двоичное число (11001111 = 207, 207+1=208)

Ничего выводить не нужно.
Сегменты, которые в коде, должны остаться, их содержимое можно изменять
assume cs:code, ds:indat, es:outdat тоже нужно оставить

Сейчас максимум такой код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
indat segment
initial_num dw 11001111b
count dw 0
indat ends
 
outdat segment
result_num dw 0
outdat segment
 
code segment
assume cs:code, ds:indat, es:outdat
begin:
mov dx, indat
mov ds, dx
mov dx, outdat
mov es, dx
 
...
 
 
int 21h
code ends
end begin
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2022, 16:08
Ответы с готовыми решениями:

Проверка кода с контролем по четности на правильность и преобразование в двоичную систему счисления
Проверка кода с контролем по четности на правильность и преобразование в двоичную систему счисления

Кодирование с контролем четности
Помогите решить, вообще не понимаю как это реализовать. Вводится k – число символов в блоке и...

Задача. Кодирование контролем четности
Помогите выполнить, вообще не понимаю как это реализовать. Вводится k – число символов в блоке и...

Роутер с временным контролем (родительским контролем)
Приветствую, возникла острая необходимость в роутере в котором присутствует нормальный родительский...

Проверка четности числа
Напишите пожалуйста код, проверки чётное число или нет с if, else if

3
327 / 218 / 108
Регистрация: 12.02.2019
Сообщений: 1,033
17.09.2022, 16:30 2
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
xor ax,ax
mov bx,80h
mov cx,num
@A:
test cx,bx
jz @B:
inc ax
@B:
shr bx,1
jnz @A
test ax,1
jnz @C
and cx,7Fh
jmp @D
@C:
inc cx
@D:
mov count,cx
;не проверял
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
17.09.2022, 17:28 3
Mr_buddy,
  1. отправь полученное 8-разрядное число в регистр AL
  2. выполни OR AL,AL
  3. далее в зависимости от состояния флага PF. Если PF=1, тогда переводи 7 бит в десятичное число (без контрольного бита) и помещай его в результирующую переменную (то есть переводи 1001111 в десятичное). Если же PF=0, тогда инкрементируй изначальное двоичное число (11001111 = 207, 207+1=208)
1
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
18.09.2022, 08:42 4
8 первых битов в регистре флагов
76543210
SFZF0AF0PF1CF
Assembler
1
2
3
4
5
6
or al,al;взводим или сбрасываем флаг PF
sahf;сохраняем содержимое 8 первых битов регистра флагов в регистр AH
not ah;инвертируем значение флагов
and ah,00000100b;выделяем флаг PF
shr ah,2;
add al,ah
0
18.09.2022, 08:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2022, 08:42
Помогаю со студенческими работами здесь

Проверка четности числа
нужно добавить в код конструкцию для проверки парности вводимого числа. Т.е. если число парное -...

условие чётности числа
не знаю как создать условие на чётность чисел..на сайте нашёл вот такое if((int) array % 2 ==...

Определение чётности числа
создать программу,которая вводит число и определяет четное оно или нечетное на С++ !!! очень...

Определение четности числа
Написать программу, которая вводит с клавиатуры число x и выводит сообщение, является ли число...

Определение четности числа
#include "iostream" using namespace std; int main () { setlocale(0,""); int b,a; l: cout...

Проверка четности цифр числа
Вот написал программу: #include <stdio.h> #include <conio.h> #include <stdlib.h> int main ()...


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

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