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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 13:27   #1
bigory
Пользователь
 
Регистрация: 04.06.2009
Сообщений: 46
По умолчанию Тесей 1878ВЕ1

Здравствуйте!
Для учебной цели получил задания сложить два числа с плавающей точкой из диапазона [-9..9] с точностью до 4х знаков.

Идея моя такова: в а4, b4 и c4 храню целые числа, а в a0, a1, a2, a3 так же по b и c храню дробное число. Если при сложении получаю например это:
%a0=9 и %b0=9
movl %c0,%a0
add %c0,%b0

9+9=18 из этого с0=8 с1=1
Вопрос как сделать чтобы с4 получал ответ по модулю 10, а с3 получал 1 если число больше 9?

Поскольку это только первое задание, еще слабо понимаю что к чему.
Вот мое начало (инициализация):

Код:
jmp start
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

start: Main

.macro Main
	ldr	#a, 040h ;до BF оперативная память
	ldr	#b, 041h
	ldr	#c, 042h
;	ldr	#d, 043h

;число a  [-9...9]
	movl	%a0, 0 ; дробь 4
	movl	%a1, 0 ; дробь 3
	movl	%a2, 0 ; дробь 2
	movl	%a3, 0 ; дробь 1
	movl	%a4, 0 ; целое a

;число b  [-9...9]
	movl	%b0, 0 ; дробь 4
	movl	%b1, 0 ; дробь 3
	movl	%b2, 0 ; дробь 2
	movl	%b3, 0 ; дробь 1
	movl	%b4, 0 ; целое b

;результат
	movl	%c0, 0 ; дробь 4
	movl	%c1, 0 ; дробь 3
	movl	%c2, 0 ; дробь 2
	movl	%c3, 0 ; дробь 1
	movl	%c4, 0 ; целое c

	SUM
.endm



.macro SUM
	mov	%c0, %a0
	mov	%c1, %a1
	mov	%c2, %a2
	mov	%c3, %a3
	add	%c0, %b0
Если в коде есть ошибки в синтаксисе, то поправьте пожалуйста. Спасибо!

Последний раз редактировалось bigory; 25.03.2013 в 13:48.
bigory вне форума Ответить с цитированием
Ответ


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

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

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