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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2012, 18:14   #1
mike273
Новичок
Джуниор
 
Регистрация: 10.04.2012
Сообщений: 2
По умолчанию в чем ошибка?

как сделать ехе?
Код HTML:
.stack 256 ;размер стека
.data  ;сегмент объявления данных
	len equ 10 ;размеры первых двух массивов
	dlen equ 20 ;размер третьего массива
	mas1 db 1,2,3,-1,-4,5,-6,3,5,-3 ;непосредственно первый массив
	mas2 db 3,5,8,7,-12,4,5,8,-7,6 ;второй массив
	res db 20 dup(?) ;объявили третий массив
	sum_p db ? ;сумма положительных элементов
	sum_m db ? ;сумма отрицательных
.code ;сегмент кода
	start: ;начальная метка 
	push @data ;инициализируем сегмент данных физическим адресом данных
	pop ds ;через стек
	mov cx,len ;цикл по всей длине массива
	xor si,si ;обнулили индексы
	xor di,di ;обнулили индекс
	cicl: ;теперь цикл
		mov al,mas1[si] ;берем текущий элемент первого массива
		mov res[di],al ;добавляем его в третий
		inc di ;сдвигаемся по третьему массиву
		mov al,mas2[si] ;берем текущий элемент второго массива
		mov res[di],al ;так же кладем в третий
		inc si ;сдвигаемся по первым двум массивам
		inc di ;сдвигаемся по третьему
	loop cicl ;закончили цикл
	mov cx,dlen ;новый цикл по третьему массиву
	xor si,si ;обнулили
	summ: ;считаем суммы
		mov al,res[si] ;берем текущий элемент
		cmp al,120 ;в TASM отрицательные элементы хранятся в виде больших чисел
	;т.е. -1 = FF, -5 = FB и т.д. Потому сравниваем с большим числом
		jbe spee ;если меньше - то это число положительное - переходи на метку
			add sum_m,al  ;иначе прибавляем к сумме отрицательных
			jmp endc ;переходим в конец итерации
		spee: ;если положительный
			add sum_p,al ;добавляем в сумму к положительным
		endc: ;конец итерации
		inc si ;переходим к следующему элементу
	loop summ ;конец цикла
exit: ;метка выхода
	mov ax,4c00h ;функция выхода из прерывания 21h
	int 21h ;прерывние DOS
end start ;точка входа в программу - метка старт.
mike273 вне форума Ответить с цитированием
Старый 04.10.2012, 18:33   #2
Adis
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

http://citforum.ru/programming/tasm3/tasm3_p5.shtml
вот тут классное приложение - ответы по ошибкам.
сам нашел несколько ответов.
Adis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка? (с++) spinogryz_ua Помощь студентам 1 24.09.2012 13:20
В чем ошибка Игрушка96 Помощь студентам 4 05.03.2012 21:07
в чем ошибка? Rexonik Общие вопросы C/C++ 4 05.12.2011 20:42
в чем ошибка??? Сергей58rus Помощь студентам 3 26.04.2011 19:43