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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2010, 19:37   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Правильно, но вы его постоянно переписываете: то финал_н, то финал_а. При этом финал_н и финал_а вы фактически не меняете.
p51x вне форума Ответить с цитированием
Старый 23.02.2010, 19:58   #12
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

аааа...там последнее действие у меня стоит lda FN - тоесть я записываю в аккумулятор значение 000 001, потом перекидка к началу.
=================================== ======================
тоесть имеет смысл на последнем этапе значение аккумулятора ( кинуть в ячейку какую-нибудь? такое возможно? ячейке присвоить НЕИЗВЕСТНОЕ программисту значение аккумулятора?
=================================== ======================
или сохранить аккумулятор?? внизу прикрепил табу с командами. тогда записываемые в него данные не будут навсегда оставаться в нём? так? своего рода константа-переменная?!?!?! запутался.
Изображения
Тип файла: jpg table.JPG (135.9 Кб, 146 просмотров)
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 24.02.2010, 11:05   #13
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

а как описать присваивание одной ячейке другого значения?
final_a:=A[W] (аккумулятора) на этапе умножения final_a*a




=================================== =============
или же перед j S1 вставить 2 строчки: lda FA и sta FA (загрузка в акк финал_а и сохранение акка).
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 24.02.2010, 14:58   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Скажу по секрету у вас есть еще регистр Х. И если подумать немного, то можно обойтись без сохранения туда-сюда.
p51x вне форума Ответить с цитированием
Старый 24.02.2010, 21:18   #15
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

прочёл. не понял по какому он приципу работает.
записали в чейку значение 120 поставили индексный регистр = 1 (в коде цифра 8) и он выдаёт значение 123. почему?!
=====
снизу файл html, где эта теория.
Вложения
Тип файла: html Структура машинных команд.html (6.3 Кб, 10 просмотров)
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 24.02.2010, 22:26   #16
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Набросал простейший случай. Результат в Х.

Код:
ExS   start  0
      ldx    d
      lda    n

rpt   comp   c0
      jeq    fin

      rmo    a,l
      rmo    x,a
      mul    d

      rmo    a,x
      rmo    l,a
      sub    c0
 
      j      rpt

fin   hlt

n    word   3
d    word   2

c0   word   1
     end    ExS
p51x вне форума Ответить с цитированием
Старый 01.03.2010, 01:16   #17
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

всё. разобрался. НО. есть большое "но". зацикливание страшное откуда-то появилось!
проверку на равенство аккумулятора единице проскакивает как ни в чём ни бывало!
Помогите! завтра сдаваться уже! а отчёт не могу составить т.к. прога с багами.
=================================== =======================
снизу скрин. там,где звёздочка синяя - там начало цикла. как видим после 2-х проходов в регистре Х 000000. (должно быть 2^3=000008) исходник сверху, за что спасибо p51x. Программа с циклом с предусловием while ... do.
=================================== =======================
Изображения
Тип файла: jpg error.JPG (133.9 Кб, 147 просмотров)
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 01.03.2010, 09:50   #18
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

А где на скрине окно с кодом? не надо говорить, что он как у меня - т.к. я его тестил и сейчас еще раз проверил.

UPD:
Я тут помидитировал над вашим скрином... Откуда у вас появилась инструкция c0 = A???

Последний раз редактировалось p51x; 01.03.2010 в 14:53. Причина: Допись....
p51x вне форума Ответить с цитированием
Старый 01.03.2010, 15:07   #19
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

это в случае, если аккум равен с0 (т.е. 1), то перекидка на 9-ю ячейку с кодом FF (стоп).
update:
ух! сейчас просто код (где символьные команды) кинул в CrossAssembler (есть там такая вкладка) и скомпилировал. Всё попёрло!!! должные 000 008 появились в индексном регистре!
p51x, большое Вам спасибо.
=================================== =================================== =================================
Но вопрос остался: почему у меня не шло-то? возможно ли потому, что я вначале вбивал в первые 4 трёхбайтовые ячейки данные и команду "стоп", а потом уже саму программу? надо же знать.
Цитата:
H ExS | ExS start 0
T 000 040021 | ldx d
T 003 00001E | lda n
T 006 280024 | rpt comp c0
T 009 30001D | jeq fin
T 00C AC02 | rmo a,l
T 00E AC10 | rmo x,a
T 010 200021 | mul d
T 013 AC01 | rmo a,x
T 015 AC20 | rmo l,a
T 017 1C0024 | sub c0
T 01A 3C0006 | j rpt
T 01D FF | fin hlt
T 01E 000003 | n word 3
T 021 000002 | d word 2
T 024 000001 | c0 word 1
E 000 | end ExS
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.

Последний раз редактировалось sig_GB; 01.03.2010 в 15:20.
sig_GB вне форума Ответить с цитированием
Старый 01.03.2010, 15:38   #20
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

"кинул в CrossAssembler (есть там такая вкладка) и скомпилировал"
))) А вы все только свой старый код гоняли?...
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте на правильность плиз Agent[PNZ] Помощь студентам 3 11.06.2014 19:50
Проверьте правильность программы neomaximus Помощь студентам 3 06.04.2009 04:24
Проверьте на правильность!! Dawystrik Общие вопросы Delphi 2 21.03.2009 21:04
Проверьте правильность пожалуйста Анжелика Помощь студентам 17 11.01.2009 00:28
Проверьте правильность Аленушка Помощь студентам 6 07.01.2009 17:07