User Tag List

Показано с 1 по 10 из 14

Тема: Ассемблер i8080, семисегментные индикаторы.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #3

    Регистрация
    12.01.2014
    Адрес
    г. Краснодар
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня получилась такая процедура:

    Скрытый текст

    Код:
    	
            mvi a, 0Fh ;Преобразуемое число
    ;Программа
    	lxi b, seg
    	add c
    	mov e, a
    	mov a, b
    	adc a
    	mov d, a
    	ldax d
    ;Вывод результата
    	out .....
    ;Таблица
    seg:	db 3Fh, 06h, 5Bh, 4Fh, 66h, 6Dh, 7Dh, 07h
    	db 7Fh, 6Fh, 77h, 7Ch, 39h, 5Eh, 79h, 71h
    [свернуть]


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

    На момент готовности своего варианта процедуры "перекодировки"
    я еще не видел других вложений с кодом.
    С ними так же буду пробовать разобраться.

    Update:
    Посмотрев другие вложения, составил новый код процедуры.
    Предыдущий код оказывал влияние на флаг переноса С,
    и пришлось делать извращение, что бы его учесть.
    Новый код никак не влияет на состояние флага С, и
    при этом корректно формирует адрес обращения к
    таблице "перекодировки".

    Скрытый текст

    Код:
    	mvi a, 0Fh ;Преобразуемое число
    ;Программа
    	lxi h, 0000h
    	add l
    	mov l, a
    	lxi d, seg
    	dad d
    	xchg
    	ldax d
    ;Вывод результата
    	out .....
    ;Таблица
    seg:	db 3Fh, 06h, 5Bh, 4Fh, 66h, 6Dh, 7Dh, 07h
    	db 7Fh, 6Fh, 77h, 7Ch, 39h, 5Eh, 79h, 71h
    [свернуть]

    В любом случае, не ручаюсь за корректность, т.к. сильно начинающий
    в программировании и оба этих примера родились исключительно благодаря
    помощи от уважаемого Vladimir_S
    И да, эти состряпанные мной процедуры никак не учитывают, что
    1. Выводится на индикаторы, обычно, результат каких-то действий,
    представляющий собой 8 бит в аккумуляторе, а это значит что вывод
    нужно делать на два индикатора - по полубайту на каждый.
    2. Для вывода я использовал OUT, имея ввиду что индикаторы это порты В/В.
    Однако, возможно использование STAX, и это даже сократило бы код.
    Последний раз редактировалось Elvys; 06.06.2016 в 22:11.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. PMI-80 - одноплатник на i8080
    от rw6hrm в разделе Разное
    Ответов: 72
    Последнее: 02.09.2022, 12:27
  2. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 03:43
  3. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43
  4. Забавные индикаторы
    от Orionsoft в разделе Несортированное железо
    Ответов: 11
    Последнее: 27.01.2007, 23:05

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •