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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2012, 13:15   #1
Hudden
Новичок
Джуниор
 
Регистрация: 22.01.2012
Сообщений: 1
Восклицание срочн надо к завтрашнему дню..(

Тема: «Циклические и разветвляющиеся программы»
4.4.Пример выполнения работы
Дан масив из десяти слов, содержащих целые числа. Требуется найти
максимальное значение в массиве.
Текст программы:
Код:
data segment
max dw ?
mass dw 10,24,76,479,-347,281,-24,70,124,97
data ends
code segment
assume cs: code, ds: data
start: 	mov ax, data
mov ds, ax 		; Загрузить сегментный адрес данных
  		lea bx, mass 	; Загрузить адрес смещения массива
 		mov cx, 10 		; Установить счетчик повторений цикла
 		mov ax, [bx] 	; Первый элемент массива в Аккумулятор
  	beg: 	cmp [bx], ax 	; Сравнить текущий элемент 
; массива с максимальным
 		jl no 			; он меньше
mov ax, [bx]	; он больше или равен
 	no: 	inc bx 		; Следующий элемент
		inc bx		; массива
		loop beg 		
		mov max, ax
 	quit:	mov ax,4C00h 	; Код завершения 0
int 21h 		; Выход в DOS
Что мне надо сделать:
Дан массив из десяти знаковых чисел (слов или байт). Требуется:

14. Найти полусумму наибольшего и наименьшего чисел. Массив байт.

И еще одно:
Тема «Применение логических инструкций»
5.3. Пример выполнения работы
Дан массив из 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
Что мне надо сделать:

14. Дан массив из 6 байт. Посчитать количество байт число единиц, в которых не превышает 3.


Помогите пожалуйста

Последний раз редактировалось ACE Valery; 23.01.2012 в 01:22.
Hudden вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решить 3 задачи в Паскале. К завтрашнему дню. Maks6169 Фриланс 5 19.11.2009 18:04
Матрицы. Срочно к завтрашнему дню надо прогу написать Scarykid Паскаль, Turbo Pascal, PascalABC.NET 0 03.06.2009 11:32
решить нужно к завтрашнему дню) KaZaaM Помощь студентам 9 26.12.2008 20:48