![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
valeria |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Женский Репутация: ![]() ![]() ![]() |
Добрый день! Начала изучать ассемблер только-только, поэтому столкнулась с проблемой. Вот задание
Цитата Есть два вектора 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 |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Что поставить вместо многоточия Поставь данные, которых хочешь складывать/вычитать... Например, bcdv1 DB 04h, 56h, 05h, 67h ; 456 и 567
bcdv2 DB 01h, 23h, 03h, 45h ; 123 и 345
, под bcdv3 и bcdv4, кстати, нельзя выделять по одному байту, как ты это делаешь... Цитата как вывести вектора 3 и 4 Выводи как обычные строки... |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 7:48 |