|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.03.2020, 23:31 | #1 |
Новичок
Джуниор
Регистрация: 29.03.2020
Сообщений: 5
|
Не работает простая программа (Assembler)
Доброго времени суток всем.
Наступил очередной семестр второго курса и появился новый предмет, а именно "Компьютерные системы и сети". Мы начали изучение Систем. Я точно не разбираюсь в этом всем, но мы работаем в виртуальной машине (ну, мы запускаем симуляцию 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 и я подумала, что это номер ячейки, в которую я хотела закинуть значение)... Ничего вообще не помогало и все равно не работало( Помогите, пожалуйста, разобраться, где ошибка (или ошибки) в моих программах или покажите, как именно должна была выглядеть программа. |
29.03.2020, 23:56 | #2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
|
30.03.2020, 00:27 | #3 | |
Новичок
Джуниор
Регистрация: 29.03.2020
Сообщений: 5
|
Цитата:
Не сработала это ячейки все были пустыми, а также поля аккумулятора и Rn также не были заполнены, хотя, судя по тому, чего я добавилась, они должны были заполняться при запуске программы. |
|
30.03.2020, 10:58 | #4 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Встряну на секунду, так как мне неизвестен этот симулятор и asm.
и в первом, и во втором примерах: Код:
Код:
Код:
Как-то так, ...
|
30.03.2020, 11:14 | #5 | |
Новичок
Джуниор
Регистрация: 29.03.2020
Сообщений: 5
|
Цитата:
На счет комментариев - все верно. 10H и 11H это 10я и 11я клетка в 16тиразрядной таблице (не знаю, как точно она называется). |
|
30.03.2020, 23:56 | #6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Ошибка в записи шестнадцатиричных значений.
Вот так проглатывает: Код:
|
31.03.2020, 15:31 | #7 |
Новичок
Джуниор
Регистрация: 29.03.2020
Сообщений: 5
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не работает простая программа умножения | Meowtie | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 29.03.2020 23:25 |
Простая Программа | govno | Фриланс | 8 | 06.02.2012 16:29 |
простая программа | stap | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 21.12.2011 14:49 |
Не работает самая простая программа | tregub-evgeniy | Помощь студентам | 1 | 25.12.2010 23:17 |
Простая программа | russian-stalker | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 27.11.2010 22:52 |