|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.05.2010, 17:55 | #1 |
Новичок
Джуниор
Регистрация: 15.05.2010
Сообщений: 2
|
правильная ли прога?
я новичок в этом деле.
задача такая: ввести из порта А байт, умножить его на два, затем сложить с числом хранимым в порте В. Результат сбросить в стек по адресу 8040 и на семисегментный индикатов, подключенный к порту В вот что я набросал: Листинг программы: MVI A, 90h ; программирование ППИ (нулевой режим, порт А – на ввод, порты В, С – на вывод OUT F9 MVI B, 05h ; загрузка 05h IN A ; снятие байта с порта А SHL A, 1 ; умножение на 2 (сдвиг влево) ADD B ; А=А+В PUSH A ; сброс результата в стек OUT FB ; сброс на семисегментный индикатор все ли правильно? и я не понял как указывать адрес стека. заранее спасибо всем, кто сможет помочь! |
15.05.2010, 21:38 | #2 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
ну если ты не напутал с адресами то правильно.
А вот что тебя интересует по поводу стека? В регистр стека изночально записывается адрес его начала кажется он назавается SC а еще записывается смещение адреса (я не помню как он называется регистр) Смысл адресации происходит следующем образом.... к SC смещается влево на 4 бита и к полученному результату прибовляется смешение. После введения в стек смешение уменьшается на один. А перед извлечением оно увеличивается (покрайней мере так работает многие поцессоры от i8086 и выше все более современные контроллеры) Вообще напиши с каким ЦП ты работаеш для каждого листинг разный даже при написании а том варианте котором написано
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
16.05.2010, 10:45 | #3 |
Новичок
Джуниор
Регистрация: 15.05.2010
Сообщений: 2
|
по поводу стека: как указать адрес его начала.
т.е. нужно просто закинуть адрес в регистр стека: LXI SC 8040? а потом закидывать туда результаты? а смещение обязательно указывать? работаю на 16-разрядном i8086 |
16.05.2010, 22:40 | #4 |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
и что это за ассемблер для 86, это 51 наверное
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
17.05.2010, 08:40 | #5 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
нет, это ассемблер Intel 8080
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не правильная работа for .. to | Neptunium | Общие вопросы Delphi | 7 | 05.04.2010 00:32 |
Правильная установка FPC. | Alex Cones | Софт | 18 | 28.02.2010 23:26 |
правильная ли контекстная диаграмма классов? | matios | Помощь студентам | 0 | 14.12.2009 22:21 |
правильная ли процедура? | aiktz | Помощь студентам | 2 | 11.11.2009 14:12 |
Правильная программа? | Надюха | Помощь студентам | 10 | 28.09.2007 14:40 |