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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2012, 23:33   #1
belinea
 
Регистрация: 16.06.2012
Сообщений: 5
Вопрос Ассемблер - фрагмент программы

Доброго времени суток всем кто обитает на просторах этого форума. Очень прошу помочь с одним из экзаменационных заданий по предмету "цифровая электроника и компьютерная архитектура". Дан фрагмент программы, фотография по ссылке http://i072.radikal.ru/1206/52/02a0e0b0b814.jpg нужно найти содержание после остановки программы. Она настолько элементарная что понять ход решения задачи я не могу. Как я понял левые столбики здесь не играют никакой роли т.к. операторов перемещения в программе нету, а правые столбики это команды. например первая команда 11 это LXI D помещает в переменную D данные, но я всё никак не могу понять какие именно данные эта команда туда помещает. В образцах из умных учебников всегда есть оператор и операнд который мы записываем, складываем, отнимаем или заменяем в определённую переменную. Но что делать когда этого операнда нету?
У меня большая просьба, если это не отнимет много времени объяснить как работает такого вида программы чтобы я смог решить аналогичную задачу. В пятницу пойду переписывать экзамен. Заранее большое спасибо.
И ещё, есть ли программы с простым интерфейсом куда можно вбить подобное и получить ответ для самопроверки?
Изображения
Тип файла: jpg picture.jpg (96.8 Кб, 146 просмотров)
belinea вне форума Ответить с цитированием
Старый 17.06.2012, 02:22   #2
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Привет представителю стран Балтии)))

Мне кажется, что первый столбик очень даже значим - это номера регистров (в ОЗУ), куда помещаются данные или адрес машинного кода команды.
H - это верхние (старшие) разряды, L - низшие (младшие) разряды.

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

Вот я нашла пример таблички для микропроцессора К580. И там говорится, что согласно машинному коду, над конкретными операндами из разных регистров совершаются действия. У Вас же тоже есть (вернее должно быть) описание машинных команд для Вашего железа.

По поводу программы - для контроллеров Atmel AVR я использовала AVR Studio 4, но выбор программы опять таки зависит от того, с чем Вы работаете.
Изображения
Тип файла: jpg as.JPG (36.8 Кб, 103 просмотров)
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 17.06.2012 в 02:40.
Blondy вне форума Ответить с цитированием
Старый 17.06.2012, 09:25   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

В результате:
A=A5
E=B7
H=B2
L=00
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 17.06.2012, 12:02   #4
belinea
 
Регистрация: 16.06.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Blondy Посмотреть сообщение
И там говорится, что согласно машинному коду, над конкретными операндами из разных регистров совершаются действия. У Вас же тоже есть (вернее должно быть) описание машинных команд для Вашего железа.
У меня задание на типовом микропроцессоре Intel 8080. И есть все эти таблицы, но в задании нету самих операндов. Только список голых команд, и на основе чего выполнять эти команды я понять не могу

Вот например в таблице которую вы нашли код 3А преобразуется в LDA 0500H сразу понятно что с ячейкой 500 мы работаем. У меня же во всех таблица и везде где смотрел в интернете для моего процессора 3А тоже означает LDA но вот эти 0500H с которыми мне нужно работать, перемещать, складывать нигде не обозначены. Откуда их взять? Как быть когда есть команды но нету операндов с которыми эта команда выполняет определённое действие
belinea вне форума Ответить с цитированием
Старый 17.06.2012, 12:11   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как быть когда есть команды но нету операндов
Вполне возможно что эти команды не требуют операндов. Думаю что идет работа с регистрами
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2012, 12:23   #6
belinea
 
Регистрация: 16.06.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вполне возможно что эти команды не требуют операндов. Думаю что идет работа с регистрами
Всё что сказал преподаватель после расспросов так это то что левые столбики регистров здесь не играют никакой роли, в каждом варианте они произвольные и сделаны лишь для того чтобы показать последовательность программы - сначала идёт левая часть а ниже правая т.к. всё в столбик напечатать не получилось (на листе места не оставалось)
belinea вне форума Ответить с цитированием
Старый 17.06.2012, 16:16   #7
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Так а Вы пытались выяснить у коллег по учебе, как работает этот зверь? Ведь наверняка есть мальчики, которые в этом деле очень даже понимают и у них все сдано, могут и Вас подтянуть....

Вот Вам справочный материал, как это все действует:
http://www.computer-museum.ru/technlgy/i8080.php
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 17.06.2012, 17:24   #8
belinea
 
Регистрация: 16.06.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Blondy Посмотреть сообщение
Так а Вы пытались выяснить у коллег по учебе, как работает этот зверь? Ведь наверняка есть мальчики, которые в этом деле очень даже понимают и у них все сдано, могут и Вас подтянуть....

Вот Вам справочный материал, как это все действует:
http://www.computer-museum.ru/technlgy/i8080.php
Спасибо за материал, таблица с расшифровкой действительно довольно удобная. Дело в том что это одно задание из 6, и те кто сдал данный предмет заработали баллы за другое. Это 6-е задание никто из знакомых даже не начинал решать.
Для большей уверенности в успехе я создал аналогичную тему в другом форуме программистов, где мне сегодня помогли. Теперь я кажется разобрался. В приложении фотография с ходом решения, если интересно. Оказывается операнды нужно было брать из строк следующих за оператором.
Но всё равно большое спасибо всем кто откликнулся, в век безразличия это дорогого стоит. Я искренне признателен.
Изображения
Тип файла: jpg 02a0e0b0b814.jpg (28.3 Кб, 85 просмотров)

Последний раз редактировалось belinea; 17.06.2012 в 17:26.
belinea вне форума Ответить с цитированием
Старый 17.06.2012, 17:43   #9
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Между прочим, у меня было такое подозрение: вот в том первом примере - данные операндов берутся из следующих строчек. Но когда с подобным не сталкивалась, очень трудно сообразить. У нас не было машинных кодов, были обычные операторы....

Молодец, что выложили пример - мы теперь знаем, как это может быть. И если кто спросит - будем знать, как это делается.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 17.06.2012 в 17:47.
Blondy вне форума Ответить с цитированием
Старый 17.06.2012, 18:11   #10
belinea
 
Регистрация: 16.06.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Blondy Посмотреть сообщение
Между прочим, у меня было такое подозрение: вот в том первом примере - данные операндов берутся из следующих строчек. Но когда с подобным не сталкивалась, очень трудно сообразить. У нас не было машинных кодов, были обычные операторы....

Молодец, что выложили пример - мы теперь знаем, как это может быть. И если кто спросит - будем знать, как это делается.
Рад что и я смог чем-то помочь :D
belinea вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фрагмент программы(СИ) iris_ka Помощь студентам 7 24.04.2012 15:19
Фрагмент резидентной программы WildHeart Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 04.04.2012 11:30
Фрагмент кода программы Delphi Начинающий програм Помощь студентам 2 21.01.2012 23:41
Фрагмент программы Delphi Начинающий програм Помощь студентам 2 21.01.2012 22:13
Фрагмент программы по стеганографии riderpro Общие вопросы Delphi 10 08.01.2012 20:00