Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Арифметика и Логика К580ВМ80А, Друзья! Срочно нужна помощь!  (Прочитано 43457 раз)
0 Пользователей и 1 Гость смотрят эту тему.
KukuRUza
Гость
« : 13-02-2006 19:52 » 

Вопрос про арифметические и логические операции в системе команд микропроцессора К580ВМ80А.
=========
1.
Нужно привести пример ПРАКТИЧЕСКОГО использования логической операции для работы с СИГНАЛАМИ.
---------
2.
вычесть одно 16-разрядное число из другого
и с такими же числами произвести сложение.
=========

Помогите!!!
само сложение производится командой DAD R, но ей естесственно должны быть предпосланы еще какие-то строчки...
а вычитание вообще хз.. нужно в дополнительный код переводить и все такое...
и все бы хорошо, да вот числа большие, не знаю как с ними работать!!
для удобства, и моего и вашего, возьмите за числа, с которыми требуется выполнить эти операции, к примеру
4597h
и
1580h
--------
Жду ответа очень очень!!! до завтрашнего утра!!!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 13-02-2006 20:15 » 

команд я уже не помню...


а вычитание (через регистры HL и DE)
4597h-1580h ==

(~1580h)+1 + 4597h
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 13-02-2006 20:16 » 

Не уже ли кто-то еще изучает эту окаменелость?... Улыбаюсь

Извини, но надо учиься! Набери в любом поисковике название своего проца (или "8080") и поищи систему команд. Ведь не можем мы за тебя думать - только подсказывать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
KukuRUza
Гость
« Ответ #3 : 13-02-2006 20:26 » 

а вы думаете я сразу написал это? не думая? не роясь в книгах и поисковиках?
не знаете - так и скажите Улыбаюсь
система команд у меня есть. все есть. но нет среди всего этого инфы, чтобы найти ответ на поставленные вопросы.
ладно. все равно, спасибо....
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 13-02-2006 20:26 » 

KukuRUza, проц вроде не  К580ВМ80А, а  КР580ВМ80А называется
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 13-02-2006 20:29 » 

KukuRUza, не то чтобы не знаем Улыбаюсь забыли за 10 лет-то

я в своё время команды его наизусть знал
Записан

KukuRUza
Гость
« Ответ #6 : 13-02-2006 20:33 » 

нет, есть и тот и этот.
ну ясное дело технология не новая Улыбаюсь
но базис надстройку обуславливает...
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 13-02-2006 20:39 » 

KukuRUza, я не думаю, что ты не умеешь искать - я верю в лень!
Начни:
http://www.yandex.ru/yandsearch?rpt=rad&text=8080+%F1%E8%F1%F2%E5%EC%E0+%EA%EE%EC%E0%ED%E4

Теорию то ты знаешь, надеюсь? По части сложения чисел больше размера регистра, используемого в операции суммирования.
1) первый байт операндов: байт1 + байт2
2) любой последующий байт (в последовательности возрастания) опрандов: байтN + байтN + признак_переноса

Вычитание отличается от суммирования знаком второго операнда или операцией.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
KukuRUza
Гость
« Ответ #8 : 13-02-2006 21:40 » 

RXL, я тоже верю в лень теперь Улыбаюсь
никто так и не помог Улыбаюсь
еще раз повторюсь, мне не нужна система команд.
кАроче, вот это типа для сложения будет наверное... но я Ооочень не уверен. потому что больше похоже на бред Улыбаюсь
MVI H,45h
MVI L,97h
MVI D,15h
MVI E,80h

DAD D
----------
т.е. первыми двумя строчками я заношу 4597h в H-L регистровую пару (в рег-р HL)
вторые две - D-E
И последнее - складываю, результат заносится в HL.
должно по идее работать.
а вот вычитание не знаю как. нет такой команды.
надо сначала перевести вычитаемое в доп.код и сложить по идее.
но как перевести в доп.код? инвертировать и прибавить 1.
но как инвертировать? можно кАроче инвертировать аккумулятор, есть такая команда,
но туда не поместится это число...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 13-02-2006 22:12 » 

KukuRUza,  вычитание:

LXI H,4597h
LXI D,1580h
xor d,0ffh //--
xor e,0ffh //--

inc DE //--

DAD D


там, где "//--" не помню синтаксис. Но смысл такой

и в CF вроде заём будет
Записан

KukuRUza
Гость
« Ответ #10 : 13-02-2006 22:19 » 

Алексей1153,
LXI H,4597h  -так точно можно?!! сразу махом все слово загрузить?
а за xor d,0ffh спасибо! как же я не допер дурень! все строил бешеные алгоритмы, а все настолько элементарно! Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 13-02-2006 22:31 » 

KukuRUza, я говорю - списка команд нету сейчас, в старом доме всё осталось. Но вроде можно в DE, BC и HL
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 14-02-2006 00:10 » 

Алексей1153, что-то с xor ты намудрил. Ага

Извиняюсь, на 8080 поработать не пришлось - привожу соотв. мнемоники Z80 (с учетом возможностей 8080 - в Z80 есть 16-ти битные операции сложения-вычитания):
Код: (ASM)
; сложение
ld de, _arg1_ ; 10 тактов
ld bc, _arg2_ ; 10
ld a,e ; 4
add a,c ; 4
ld l,a ; 4
ld a,d ; 4
adc a,b ; 4
ld h,a ; 4
; hl = сумма (за 44 такта)
ld de, _arg1_ ; 10
ld bc, _arg2_ ; 10
ld a,e ; 4
sub a,c ; 4
ld l,a ; 4
ld a,d ; 4
sbc a,b ; 4
ld h,a ; 4
; hl = разница (за 44 такта)
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 14-02-2006 05:12 » 

где же я, спрашивается, намудрил
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 14-02-2006 09:29 » 

Алексей1153, извиняй - я не прав: 16-тибитное сложение без переноса есть в 8080. Забыл. Мнемоники 8080 просто жуткие!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей1153_2
Гость
« Ответ #15 : 14-02-2006 18:46 » 

RXL, ужасные, но я такие вещи в своё время писал Улыбаюсь
Кстати, когда алгоритм достаточно сложный, и всё пытаешься держать в регистрах, то порой кажется, что разработчики отвели их (регистров) ровно столько , сколько надо этому процу Улыбаюсь Тютелька в тютельку!

Кстати, на форум я та и не могу зайти. Убери , что ли ТВ, или я не знаю! Пришлось дабл логин сделать
Записан
KukuRUza
Гость
« Ответ #16 : 21-02-2006 05:41 » 

Алексей1153_2, короче, ты не прав Улыбаюсь может и прав для 8080, но для  К580ВМ80А - нет Улыбаюсь как оказалось...
проц 8 разрядный и не может работать с 16-разрядными числами.
надо короче складывть/вычитать сначала младшие биты, потом старшие с учетом переноса/заема.
_______

Еще к Вам вопрос!!! Помогите плз Улыбаюсь
для чего нужен флаг паритета в процессоре?
ну показывает он четное или нет количество единиц получилось, а где, для чего это применяется?
приведите если можно пример.
Записан
Alf
Гость
« Ответ #17 : 21-02-2006 07:35 » 

проц 8 разрядный и не может работать с 16-разрядными числами.

Учи матчасть тщательнее, на одних форумных подсказках далеко не уедешь. Разрядность АЛУ и операндов не всегда совпадают.

для чего нужен флаг паритета в процессоре?
ну показывает он четное или нет количество единиц получилось, а где, для чего это применяется?
приведите если можно пример.

При хранении и передаче данных возможны их потеря и порча из-за дефектов носителя или помех в линии. Самый примитивный способ контроля - добавлять к данным биты четности, а при считывании проверять их. Если один бит изменится, вычисленная четность не совпадет с хранимой, тем самым сигнализируя сбой.

Можно использовать флаг паритета, чтобы не вычислять четность в цикле.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 21-02-2006 09:59 » 

KukuRUza, я прав для КР580 . Это наш аналог Intel 8080

а насчёт "я прав" - это я не гадаю, это я на практике применял
Записан

Alf
Гость
« Ответ #19 : 21-02-2006 10:10 » 

KukuRUza, я прав для КР580.

Леха, ты прав для любого 580. Буквы перед номером серии для отечественных микросхем - это всего лишь исполнение корпуса и условия приемки, к архитектуре самого кристалла они отношения не имеют.
Записан
KukuRUza
Гость
« Ответ #20 : 21-02-2006 17:30 » 

да Ё-маЁ Улыбаюсь
ну может быть у нас в инсте проц такой кривой, но DAD команда может использоваться только для работы с даресами и Усе.
она же складывает регистровую пару с H-L а HL-это адресный регистр.
Для арифметики нельзя это юзать.
------
И пожалуйста, не думайте, что я вас спрашиваю, совсем не ища ответа.
Сюда я обращаюсь в КРАЙНЕМ случае, если ну нигде больше не нахожу ответа.
Надо Питера Абеля купить...
А вообще у меня больше по железкам предметная область, нужно знать каждый блин электрончик что куда и откуда в ЭВМ происходит и в МП..
« Последнее редактирование: 21-02-2006 17:43 от KukuRUza » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 21-02-2006 18:52 » 

KukuRUza, ты меня пугаешь! Почему ты считаешь, что складивать 16-тибитные числа нельзя, когда команды для этого есть?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
KukuRUza
Гость
« Ответ #22 : 21-02-2006 18:54 » 

я не считаю, мне так сказал злой препод, а ему видней Улыбаюсь
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 21-02-2006 19:49 » 

Преподаватели то же люди и то же ошибаются. Намного хуже, когда они не знают своего предмета и не проверяли своих знаний на практике.
Заметь, что подают материал о проце, которому в обед сто лет, который давным давно снят с производства и нафик никому не нужен. Типа "знания им нахрен не нужны, а препод хочет кушать".
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
KukuRUza
Гость
« Ответ #24 : 21-02-2006 22:09 » 

ну ведь этот проц стоит а кабинете с допотопным моником и клавой советского производства Улыбаюсь и исправно считает как ему положено уже хз скока лет Улыбаюсь)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #25 : 21-02-2006 22:27 » 

У "советского компьютера", счет, ресурс намного больше Ага
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #26 : 22-02-2006 05:16 » 

KukuRUza, ты чего! HL - общего назначения с небольшими отклонениями вроде

;M(HL) <- E

lxi H, label
mov e,value
mov M,E ; etc

А препод твой не шарит в предмете вообще Улыбаюсь
Записан

KukuRUza
Гость
« Ответ #27 : 26-02-2006 21:12 » 

Короче, теперь я шарю больше всех вас, смиритесь Улыбаюсь
Завтра у меня экзамен по этому предмету, и это выяснится наверняка!
проц 8 разрядный и не может работать с 16-разрядными числами.

Учи матчасть тщательнее, на одних форумных подсказках далеко не уедешь. Разрядность АЛУ и операндов не всегда совпадают.

для чего нужен флаг паритета в процессоре?
ну показывает он четное или нет количество единиц получилось, а где, для чего это применяется?
приведите если можно пример.

При хранении и передаче данных возможны их потеря и порча из-за дефектов носителя или помех в линии. Самый примитивный способ контроля - добавлять к данным биты четности, а при считывании проверять их. Если один бит изменится, вычисленная четность не совпадет с хранимой, тем самым сигнализируя сбой.

Можно использовать флаг паритета, чтобы не вычислять четность в цикле.

PF  (Parity   Flag)  -  флаг  четности. Проверяет младшие
          восемь бит pезультатов операций над данными.  Нечетное число
          бит приводит к установке этого флага в 0, а четное - в 1. Не
          следует путать флаг четности с битом контроля на четность.
написал это Питер Абель. с ним спорить тоже будете? Улыбаюсь)

Алексей1153, сложение и вычитание длинных чисел примерно так выглядит
1234h+9876h
MVI A,34h
MVI E,76h
ADD E
MVI A,E
MVI D,98h
MVI A,12h
ADC D
В итоге - результат в DE
-------
поясняю
MVI это то же, что и mov тока в КР580
ADC -это сложение с учетом выходного переноса.
=================================

Короче, спасибо вам за помощь, за желание помочь, но так вышло, никто и не ответил мне правильно. ((
и я так и не знаю как на практике используется флаг четности... очень надеюсь, что не спросят это!!!
Записан
KukuRUza
Гость
« Ответ #28 : 26-02-2006 21:14 » 

учите матчасть Улыбаюсь
Записан
Alf
Гость
« Ответ #29 : 26-02-2006 21:53 » 

Короче, теперь я шарю больше всех вас, смиритесь Улыбаюсь

Мания величия в запущенной форме на данном форуме не лечится, тут нужны специалисты другого профиля.

Завтра у меня экзамен по этому предмету, и это выяснится наверняка!

Ну что же, удачи. При таком уровне знаний в сочетании с такими амбициями спасти может только она.

PF  (Parity   Flag)  -  флаг  четности. Проверяет младшие
          восемь бит pезультатов операций над данными.  Нечетное число
          бит приводит к установке этого флага в 0, а четное - в 1. Не
          следует путать флаг четности с битом контроля на четность.
написал это Питер Абель. с ним спорить тоже будете? Улыбаюсь)

Во-первых, что значит, "тоже"? Я с кем-то спорил? Не вижу оппонента.

Во-вторых, перед тем, как отвечать, нужно прежде /dev/hands сначала подключать /dev/brain. Другими словами, немного подумать, а затем жать клавиши. И не впадать в экстаз от слов Абеля, не такой это великий авторитет, да и переводчик напортачить мого вполне.

Короче, спасибо вам за помощь, за желание помочь, но так вышло, никто и не ответил мне правильно. ((
и я так и не знаю как на практике используется флаг четности...

Ну да. Жаль, что нам так и не удалось услышать начальника транспортного цеха...
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines