KukuRUza
Гость
|
|
« : 13-02-2006 19:52 » |
|
Вопрос про арифметические и логические операции в системе команд микропроцессора К580ВМ80А. ========= 1. Нужно привести пример ПРАКТИЧЕСКОГО использования логической операции для работы с СИГНАЛАМИ. --------- 2. вычесть одно 16-разрядное число из другого и с такими же числами произвести сложение. =========
Помогите!!! само сложение производится командой DAD R, но ей естесственно должны быть предпосланы еще какие-то строчки... а вычитание вообще хз.. нужно в дополнительный код переводить и все такое... и все бы хорошо, да вот числа большие, не знаю как с ними работать!! для удобства, и моего и вашего, возьмите за числа, с которыми требуется выполнить эти операции, к примеру 4597h и 1580h -------- Жду ответа очень очень!!! до завтрашнего утра!!!
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 13-02-2006 20:15 » |
|
команд я уже не помню...
а вычитание (через регистры HL и DE) 4597h-1580h ==
(~1580h)+1 + 4597h
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #2 : 13-02-2006 20:16 » |
|
Не уже ли кто-то еще изучает эту окаменелость?... Извини, но надо учиься! Набери в любом поисковике название своего проца (или "8080") и поищи систему команд. Ведь не можем мы за тебя думать - только подсказывать.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
KukuRUza
Гость
|
|
« Ответ #3 : 13-02-2006 20:26 » |
|
а вы думаете я сразу написал это? не думая? не роясь в книгах и поисковиках? не знаете - так и скажите система команд у меня есть. все есть. но нет среди всего этого инфы, чтобы найти ответ на поставленные вопросы. ладно. все равно, спасибо....
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #4 : 13-02-2006 20:26 » |
|
KukuRUza, проц вроде не К580ВМ80А, а КР580ВМ80А называется
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 13-02-2006 20:29 » |
|
KukuRUza, не то чтобы не знаем забыли за 10 лет-то я в своё время команды его наизусть знал
|
|
|
Записан
|
|
|
|
KukuRUza
Гость
|
|
« Ответ #6 : 13-02-2006 20:33 » |
|
нет, есть и тот и этот. ну ясное дело технология не новая но базис надстройку обуславливает...
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #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. но как инвертировать? можно кАроче инвертировать аккумулятор, есть такая команда, но туда не поместится это число...
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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 спасибо! как же я не допер дурень! все строил бешеные алгоритмы, а все настолько элементарно!
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #11 : 13-02-2006 22:31 » |
|
KukuRUza, я говорю - списка команд нету сейчас, в старом доме всё осталось. Но вроде можно в DE, BC и HL
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #12 : 14-02-2006 00:10 » |
|
Алексей1153, что-то с xor ты намудрил. Извиняюсь, на 8080 поработать не пришлось - привожу соотв. мнемоники Z80 (с учетом возможностей 8080 - в Z80 есть 16-ти битные операции сложения-вычитания): ; сложение 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 такта)
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #13 : 14-02-2006 05:12 » |
|
где же я, спрашивается, намудрил
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #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-разрядными числами. Учи матчасть тщательнее, на одних форумных подсказках далеко не уедешь. Разрядность АЛУ и операндов не всегда совпадают. для чего нужен флаг паритета в процессоре? ну показывает он четное или нет количество единиц получилось, а где, для чего это применяется? приведите если можно пример. При хранении и передаче данных возможны их потеря и порча из-за дефектов носителя или помех в линии. Самый примитивный способ контроля - добавлять к данным биты четности, а при считывании проверять их. Если один бит изменится, вычисленная четность не совпадет с хранимой, тем самым сигнализируя сбой. Можно использовать флаг паритета, чтобы не вычислять четность в цикле.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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
Технический
Администратор
Offline
Пол:
|
|
« Ответ #21 : 21-02-2006 18:52 » |
|
KukuRUza, ты меня пугаешь! Почему ты считаешь, что складивать 16-тибитные числа нельзя, когда команды для этого есть?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
KukuRUza
Гость
|
|
« Ответ #22 : 21-02-2006 18:54 » |
|
я не считаю, мне так сказал злой препод, а ему видней
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #23 : 21-02-2006 19:49 » |
|
Преподаватели то же люди и то же ошибаются. Намного хуже, когда они не знают своего предмета и не проверяли своих знаний на практике. Заметь, что подают материал о проце, которому в обед сто лет, который давным давно снят с производства и нафик никому не нужен. Типа "знания им нахрен не нужны, а препод хочет кушать".
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
KukuRUza
Гость
|
|
« Ответ #24 : 21-02-2006 22:09 » |
|
ну ведь этот проц стоит а кабинете с допотопным моником и клавой советского производства и исправно считает как ему положено уже хз скока лет )
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #25 : 21-02-2006 22:27 » |
|
У "советского компьютера", счет, ресурс намного больше
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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. Другими словами, немного подумать, а затем жать клавиши. И не впадать в экстаз от слов Абеля, не такой это великий авторитет, да и переводчик напортачить мого вполне. Короче, спасибо вам за помощь, за желание помочь, но так вышло, никто и не ответил мне правильно. (( и я так и не знаю как на практике используется флаг четности... Ну да. Жаль, что нам так и не удалось услышать начальника транспортного цеха...
|
|
|
Записан
|
|
|
|
|