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

Поменять попарно местами младшие и старшие полубайты каждого байта

21.12.2010, 22:44. Показов 4091. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана последовательность байт заканчивающаяся нулем.
Поменять попарно местами младшие и старшие полубайты
каждого байта, если значение 2-го разряда равно 0.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2010, 22:44
Ответы с готовыми решениями:

Поменять местами биты младшего байта каждого числа
Ребята выручайте! Долгов набрал все не успеваю! Написать прогу пользуюсь Lazarus Заранее...

Зеркально поменять местами разряды младшего байта каждого числа
Доброго времени суток. 1)Зеркально поменять местами разряды младшего байта каждого числа. 2)В...

Зеркально поменять местами разряды младшего байта каждого числа
Добрый день. Помогите пожалуйста решить задачу, весьма срочно, родина вас не забудет друзья)...

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

3
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
22.12.2010, 06:12 2
yangicher, наверное так
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cld ; DF=0
push ds 
pop es; DS=ES
mov si,offset АДРЕС_ПОСЛЕДОВАТЕЛЬНОСТИ
mov di,si
a1: lodsb; грузим в AL очередной байт
test al,al; это последний байт?
jz exit; тогда на выход
test al,100b; значение 2-го разряда байта равно 0?
jnz a1; возвращаемся в начало цикла
rol AL,4; меняем попарно местами младшие и старшие полубайты
stosb; возвращаем измененный байт
jmp a1; возвращаемся в начало цикла
exit:
1
0 / 0 / 0
Регистрация: 11.12.2010
Сообщений: 29
22.12.2010, 09:19  [ТС] 3
Спасибо!!!
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
22.12.2010, 09:21 4
yangicher, там ошибка! вот так правильно
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cld ; DF=0
push ds 
pop es; DS=ES
mov si,offset АДРЕС_ПОСЛЕДОВАТЕЛЬНОСТИ
mov di,si
a1: lodsb; грузим в AL очередной байт
test al,al; это последний байт?
jz exit; тогда на выход
test al,100b; значение 2-го разряда байта равно 0?
jnz a2; если нет - то на метку a2
rol AL,4; меняем попарно местами младшие и старшие полубайты
a2: stosb; возвращаем измененный байт
jmp a1; возвращаемся в начало цикла
exit:
1
22.12.2010, 09:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2010, 09:21
Помогаю со студенческими работами здесь

Младшие и старшие биты
Допустим у меня есть число в 2й сист. 11011011 ,подскажите где здесь младшие биты а где старшие

Старший бит старшего байта поменять местами с младшим битом младшего байта
Ребят помогите прогу доработать. Задача такая: В одномерном массиве чисел целого типа (16 бит)...

Разделить старшие и младшие биты в переменной
Объясните дураку работу с битовыми операциями... Есть у меня массив, где первый элемент это 32...

Выделить с long младшие и старшие 8 бит (байт)
есть число long , как получить с него младший бит и старший ? long a= 2^32 ; byte p =...


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

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