|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.02.2017, 10:23 | #11 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
У тебя в задании:
..маска этого условия будет (считай по-битам справа-налево): Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 15.02.2017 в 10:25. |
15.02.2017, 17:03 | #12 |
Пользователь
Регистрация: 26.09.2016
Сообщений: 17
|
Хорошо, тогда так:
mov ah,b5 mov bh,37 and ah,bh ror ah,7 (Нужно 7 разряд -> на 7 позиций вправо) xor ah,ah (Остальные в нули) rol ah,7 (1 разряд -> на 7 позиций влево) xor ah,ah (Остальные разряды в нули) Я точно знаю что написал бред! Например... я понятия не имею как подвинуть именно 7-ой разряд на 7 позиций вправо! Аналогично с 1-ым разрядом! А потом нужно еще и сложить все 3 числа! |
15.02.2017, 17:17 | #13 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Можно конечно и складывать, и вообще замудрить с логикой,
но проще сразу проверять бит-1, и если он выставлен - выставлять его седьмым. Чуть позже выложу самый/тупой вариант, чтоб было понятней..
Нашедшего выход - затаптывают первым..
|
15.02.2017, 18:32 | #14 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Помимо того, что AND лог.умножение, при помощи него можно сбрасывать нужные биты в числе. Для этого нужна т.н. 'бинарная маска', в которой указываешь, какие биты в числе хочешь сбросить. Например маска(10111011) сбросит биты 6 и 2.
Соответственно, чтобы не сбросить, а взвести определённые биты, нужно применить команду OR (лог.сложение). Только здесь маску нужно с'инвертировать. Взводим биты 5-4-3: 00111000. Обычно маски указывают в HEX-формате, но для наглядности я оставил в бине. Вот сорец на Фасме.. Файл на выходе получился 71-байт. Число для теста битов находится в AL, а биты меняются в AH. С твоими числами B5h и 37h выходит глюк, т.к. произведение получается 35h, а в нём биты 7-1 и 5-2 имеют одинаковые значения: 35h = 00110101b. Скачай FASM, собери им этот исходник в исполняемый файл, и прогони этот файл через свой DEBUG. Получишь состояния регистров, которые и покажешь преподу: Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 15.02.2017 в 23:57. |
15.02.2017, 18:53 | #15 |
Пользователь
Регистрация: 26.09.2016
Сообщений: 17
|
Попробую, спасибо
Может и прокатит!)) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
e = (a-c)2+2*a*c/k - Assembler | vudg | Помощь студентам | 0 | 10.01.2013 11:03 |
Assembler+C | Farrel | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 09.04.2011 22:55 |
Assembler | banano | Фриланс | 1 | 17.05.2010 15:44 |
assembler | AJIUM | Помощь студентам | 20 | 18.03.2010 18:30 |