Помощь - Поиск - Пользователи - Календарь
Полная версия: команды арифметических операций
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
valeria
Добрый день! Начала изучать ассемблер только-только, поэтому столкнулась с проблемой. Вот задание
Цитата
Есть два вектора v1 и v2 , каждый состоит из двух компонент – целых чисел со знаком в упакованном BCD формате, каждая компонента состоит из трех десятичных цифр. Необходимо определить векторы v3 и v4 представляющие сумму и разность векторов v1 и v2 соответственно.


Посидела, почитала книжек, вот что удалось набросать

.MODEL SMALL
.STACK 10h
.DATA
bcdv1 DB ....
bcdv2 DB ....
bcdv3 DB ?
bcdv4 DB ?
sum DB 2 DUP(?)
dif DB 2 DUP(?)
assume cs:code_sg,ds:code_sg,ss:code_sg

begin: mov ax,@DATA
mov ds,ax
mov al,bcdv1
add al,bcdv2
daa
mov sum,al
mov al,bcdv1+1
adc al,bcdv2+1
daa
mov sum+1,al
mov al,bcdv1
sub al,bcdv2
das
mov dif,al
mov al,bcdv1+1
sbb al,bcdv2+1
das
mov sum+1,al
END begin


на этом все потуги сошли на нет. Что поставить вместо многоточия и как вывести вектора 3 и 4 для меня осталось загадкой
volvo
Цитата
Что поставить вместо многоточия
Поставь данные, которых хочешь складывать/вычитать... Например,

   bcdv1 DB 04h, 56h, 05h, 67h ; 456 и 567
bcdv2 DB 01h, 23h, 03h, 45h ; 123 и 345

, под bcdv3 и bcdv4, кстати, нельзя выделять по одному байту, как ты это делаешь...

Цитата
как вывести вектора 3 и 4
Выводи как обычные строки...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.