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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2009, 20:08   #1
Megapixar
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 13
По умолчанию Сложение двух ячеек памяти

Задание такое просуммировать значение двух ячеек памяти. При этом значение регистров должно отстаться неизменным. Вопрос такой как можно обратиться к ячейкам не используя регистров? Как внести значение и просуммировать их? Извиняюсь конечн за наглость, но может кто глянет и подскажет. Заранее спасибо
Megapixar вне форума Ответить с цитированием
Старый 07.05.2009, 20:34   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
как можно обратиться к ячейкам не используя регистров?
Вы хоть сами поняли что спросили.
регистры — специальные ячейки памяти
Код:
	int x = 10;
	int y = 20;
	int z = 0;

	_asm{
		mov eax, x
		mov ebx, y
		mov ecx, eax
		add ecx, ebx;сумируем
		mov x, eax	;!
		mov y, ebx	;!
		mov z, ecx
	}
	cout<<x<<endl;
	cout<<y<<endl;
	cout<<z<<endl;
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 07.05.2009, 21:51   #3
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Для суммирования используется мнемоник add
пример: add регистр1,регистр2, т.е. к регистру1 прибавим регистр2
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 07.05.2009, 22:20   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

можно cохранить значение регистров, а потом их восстановить
Код:
push eax
push ebx
mov eax,var1
mov ebx,var2
add eax,ebx
mov [resul],eax
pop ebx
pop eax
В любой команде, в которой 2 аргумента, хотя бы один из них должен быть регистром.
add [arg],eax
add eax,[arg]
,но не add [arg1],[arg2]
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 07.05.2009 в 22:30.
Goodwin98 вне форума Ответить с цитированием
Старый 14.05.2009, 10:08   #5
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

а так?
Код:
cmpX:
cmp x2,0
je exitCMP
inc x1
dec x2
jmp cmpX
exitCMP:
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 14.05.2009, 11:20   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно извернуться и использовать FPU. Там вроде не совем "регистры". т.е. не всегда их так называют )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать в таблице (StringGrid) ячейку состоящую из двух ячеек на манер Exel бедный_студент Помощь студентам 3 28.04.2009 01:15
сложение двух чисел pif Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 15.02.2009 12:51
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Сложение двух матриц Аркадий Помощь студентам 5 26.04.2008 15:22
Поразрядное сложение AlexBee Общие вопросы C/C++ 1 26.10.2007 22:45