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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2020, 23:25   #1
Meowtie
Новичок
Джуниор
 
Регистрация: 29.03.2020
Сообщений: 5
Печаль Не работает простая программа умножения

Доброго времени суток всем.

Наступил очередной семестр второго курса и появился новый предмет, а именно "Компьютерные системы и сети". Мы начали изучение Систем. Я точно не разбираюсь в этом всем, но мы работаем в виртуальной машине (ну, мы запускаем симуляцию Windows XP) и в ней работаем в ADSIM812, если это вообще названии программы...

Anyway. Вот задача: "Команда MUL вычисляет произведение двух целых беззнковых чисел, хранящихся в регистрах A и B. Младшая часть произведения размещается в A, а старшая - в регистре-расширителе В. Если содержимое B оказывается равным нулю, то флаг OV сбрасывается, иначе - устанавливается. Флаг переноса всегда сбрасывается. Например, если аккумулятор содержал число 200[SUB](10)[/SUB] (0C8H), а расширитель 160[SUB](10)[/SUB] (0А0Н), то в результате выполнения команды MUL AB получится произведение 32000 (7D00H). Аккумулятор будет содержать нуль, а расширитель – 7DН, флаг OV будет установлен, а флаг C - сброшен. Написать программу и проверить это утверждение." И да, я хочу, чтобы в программе именно были заданы значения A и B, а не вручную их вписывать.

Итак, я пробовала несколько вариантов, но ни один из них не сработал:
1.
$MOD812
MOV A, #C8H
MOV B, #A0H
MUL AB
END

2.
$MOD812
MOV А, #0
MOV R0, #10Н
MOV 10H, #C8H
MOV R1, #11H
MOV 11H, #A0H
ADD A, @R0
ADD B, @R1
MUL AB
MOV @R0, A
END

Я пробовала без определения B как ячейка R1. Я пробовала без обнуления Аккумулятора. Я пробовала писать "MOV R0, #10Н" без хештега (ибо в R0 и в 00 ячейке появлялось значение 10 и я подумала, что это номер ячейки, в которую я хотела закинуть значение)... Ничего вообще не помогало и все равно не работало(

Помогите, пожалуйста, разобраться, где ошибка (или ошибки) в моих программах или покажите, как именно должна была выглядеть программа.
Meowtie вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для умножения 2 чисел в 2 системе счисления Vlad22222222 Visual C++ 0 17.12.2017 16:52
Программа умножения двух двоичных чисел(Pascal) chit Помощь студентам 2 19.05.2014 16:33
Простая Программа govno Фриланс 8 06.02.2012 16:29
Не работает самая простая программа tregub-evgeniy Помощь студентам 1 25.12.2010 23:17
Программа обучения таблице умножения fs444 Общие вопросы C/C++ 4 27.03.2010 21:53