![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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 ; сброс на семисегментный индикатор все ли правильно? и я не понял как указывать адрес стека. заранее спасибо всем, кто сможет помочь! ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]()
ну если ты не напутал с адресами то правильно.
А вот что тебя интересует по поводу стека? В регистр стека изночально записывается адрес его начала кажется он назавается SC а еще записывается смещение адреса (я не помню как он называется регистр) Смысл адресации происходит следующем образом.... к SC смещается влево на 4 бита и к полученному результату прибовляется смешение. После введения в стек смешение уменьшается на один. А перед извлечением оно увеличивается (покрайней мере так работает многие поцессоры от i8086 и выше все более современные контроллеры) Вообще напиши с каким ЦП ты работаеш для каждого листинг разный даже при написании а том варианте котором написано
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 15.05.2010
Сообщений: 2
|
![]()
по поводу стека: как указать адрес его начала.
т.е. нужно просто закинуть адрес в регистр стека: LXI SC 8040? а потом закидывать туда результаты? а смещение обязательно указывать? работаю на 16-разрядном i8086 |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
![]()
и что это за ассемблер для 86, это 51 наверное
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
![]() |
![]() |
![]() |
#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 |