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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2012, 19:12   #1
alex1001
Пользователь
 
Регистрация: 02.01.2012
Сообщений: 16
По умолчанию задача на массив в assembler

"помогите переделать процедру которая сдвигает элементы на четных местах вправо циклически ---на процедуру которая сдвигае элементы влево на 1 позицию циклически.
P.S. заранее спасибо"
Код:
   title	lab4 процедура вычисления
prcode	segment
	extrn	wrint:far
	public	shiftcr
	assume	cs:prcode
shiftcr proc	far
;---сохранить bp и запомнить в нем sp для доступа к параметрам
	push	bp
	mov	bp,sp
;---сохранение регистров в стек
	push	ax
	push	bx
	push	cx
	push	si
	push	di
	pushf
;---распределение регистров
n	equ	[bp+8]
aai	equ	di	;адрес a[i]
alast	equ	si	;значение посл.элемента на четном месте
;---организация доступа к параметрам
	mov	aai,[bp+6]
;---подготовка цикла
;---вычисление числа итераций
	mov	cx,n
	sar	cx,1
	dec	cx	;cx=n/2-1	число итераций
	cmp	cx,o
	jle	fin	;защита отn<=0
;---вычисление адреса последнего элемента с четным номером
	add	aai,2
	mov	ax,cx
	sal	ax,2
	add	aai,ax		;aai=aai+2+4*число итераций
;---запомнить значение последнего элемента с четным номером 
	mov	alast,[aai]
;---цикл вычислений
cikl:	mov	ax,[aai-4]
	mov	[aai],ax	;!!!косвенная адресация
	dec	aai		;!!!переадресация
	dec	aai
	dec	aai
	dec	aai
	loop	cikl
;---записать значение последнего элемента в первый
	mov	[aii],alast
;---восстановление регистров 
fin:
	popf
	pop	di
	pop	si
	pop	cx
	pop	bx
	pop	ax
	pop	bp
	ret	4	;возврат в программу
shiftcr	endp
prcode	ends
	end

Последний раз редактировалось alex1001; 09.04.2012 в 19:26.
alex1001 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Assembler] Массив koshkarjov Помощь студентам 4 23.04.2011 00:33
Массив Assembler Leon4eg Фриланс 5 31.03.2010 14:23
assembler массив байтов AlexandrHouse Помощь студентам 5 01.02.2010 19:03
Задача про массив на Assembler натаха Помощь студентам 2 20.12.2009 18:57
Одномерный массив на Assembler Кузеныш Помощь студентам 1 16.12.2009 12:02