Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 20:43   #1
Wasisualy
 
Регистрация: 18.12.2009
Сообщений: 4
По умолчанию Применение логических инструкций. Assembler

Дан массив из 7 байт. Рассматривая его, как массив из восьми семибитных слов, посчитать количество слов с нечетным числом нулей в слове.

Есть образец решения схожей задачи:

Дан массив из 10 байт. Все байты имеют нулевые старшие биты. Необходимо каждый байт содержащий единицу в нулевом бите дополнить до четного числа единиц установкой седьмого бита.

Код:
Текст программы: 
data segment
NB db 04h, 07h, 14h, 23h, 04h,38h, 3Fh, 2Ah0Dh, 34h
data ends
code segment
assume cs: code. ds:data
START:	mov ax, data
mov ds, ax 		; Загрузить сегментный адрес данных
lea bx, NB 		; bx-текущий адрес массива NB
mov cx, 10 		; cx-счетчик числа интераций
BEG:		mov al, [bx] 	; считать очередной байт массива
test al, 1b 		; установлен ли бит 0? 
jz BITOCLR 	; нет, бит 0 сброшен
  		; бит 0 установлен 
 		test al, 0ffh 	; четное число единиц?
jp OK 		; да, больше ничего делать не надо 
 		or al, 80h 		; нечетное дополнить до четного?
jmp short OK 
; бит 0 сброшен 
BITOCLR: 	test al, 0ffh 	; четное число единиц?
jnp OK 		; нет, больше ничего делать не нужно
or al,80h 		; нечетное, дополнить до нечетного

OK:		mov [bx], al 	; записать измененный байт массива
loop BEG
QUIT:	mov ax, 4c00h ; Код завершения 0
 		Int 21h 		; Выход в DOS
code ends
end START
Wasisualy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер логических выражений Hemul Общие вопросы C/C++ 1 18.10.2011 21:45
Таблицы истинности логических формул. povezlo Microsoft Office Excel 7 23.12.2010 10:12
Создание логических разделов на основном Kreadlling Операционные системы общие вопросы 3 12.09.2009 14:39
Прибавление логических функций Slavik Microsoft Office Excel 19 26.01.2009 23:39
Использование логических функций Клубничка Microsoft Office Excel 52 15.01.2009 15:01