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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2009, 19:02   #1
MARine_life
 
Аватар для MARine_life
 
Регистрация: 14.11.2009
Сообщений: 7
Хорошо (Assembler) арифметическое вычитание в дополнительном коде

ребят, помогите пожалуйста вычесть из x1=102, x2=-58,
в доп код если перевести, то это x1=0.1100110, x2=1.1000110.
вот, и еще как-то надо проверить наличие переполнения....

Последний раз редактировалось MARine_life; 19.11.2009 в 19:56.
MARine_life вне форума Ответить с цитированием
Старый 19.11.2009, 19:32   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
 ---------------------------------------------------------------------
;sub_sign - процедура вычитания чисел размером 1 байт с учетом знака
;Вход: minuend и deduction - уменьшаемое и вычитаемое.
:Выход: minuend - значение разности.
---------------------------------------------------------------------

.data значения в minuend и deduction нужно внести
N equ 2 :длина в байтах результата в ситуации расширения знака для получения его модуля
minuend db ? -.уменьшаемое
carry db 0 расширение знака
deduction db ? :вычитаемое
.code
sub_sign proc
mov al .deduction
subminuend.al ;оценить результат:
jnc no_carry :нет заема обрабатываем ситуацию заема из старшего разряда - получаем модуль (если нужно)
neg minuend
jmp end_p
no_carry: jns no_sign обрабатываем ситуацию получения отрицательного результата - получаем модуль (если нужно)
neg minuend
jmp end_p
no_sign: jno no_overflow обрабатываем ситуацию переполнения - получаем модуль (если нужно).
расширить результат знаком - получаем модуль (если нужно):
mov carry.0ffh
call calc abs no_overflow:
endjr ret sub_sign endp
взято отсюда
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение отрицательных чисел в дополнительном коде Fataller Помощь студентам 0 28.10.2009 19:12
Рассмотреть содержимое как знаковое число в дополнительном коде Shelsi Помощь студентам 5 23.10.2009 09:41
обновление в блоге - Сложение, вычитание и умножение на Flat Assembler Pblog Обсуждение статей 0 24.04.2009 20:50
Среднее арифметическое 10 чисел. Assembler stscolt Помощь студентам 3 13.04.2009 17:04