![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Листинг 3 Исходный файл программы LCD_DE2_70.s
![]()
.include " nios_macros.s" .text .equ lcd, 0x10003050 /*Адрес регистра lcd*/ .equ clear, 0x00000001 /*Код команды очистки экрана lcd*/ .equ set1, 0b10000000 /*Код команды установки курсора в первую позицию первой строки*/ .equ set2, 0b11000000 /*Код команды установки курсора в начало 2 строки*/ .equ off, 0b00001100 /*Код команды выключения курсора*/ .equ right, 0b00011100 /*Код команды сдвига экрана вправо*/ .equ left, 0b00011000 /*Код команды сдвига курсора влево*/
.global _start _start: movia r2, lcd movi r3, clear /*Код команды очистки lcd*/ stbio r3, 0(r2) /*Очищаем экран lcd*/
movi r3, set1 stbio r3, 0(r2) /*Устанавливаем курсор в начало первой строки*/
movia r4, String1 /*В регистр R4 записываем адрес первой строки*/ cikl: ldb r5, 0(r4) /*Считываем символ из строки и помещаем его в R5*/ beq r5, zero, met /*Если считанныцй символ равен 0, то выходим из цикла*/ stbio r5, 1(r2) /*Записываем из R5 в регистр данных lcd*/ addi r4, r4, 1 /*Инкрементируем адрес символа строки*/ br cikl
met: movi r3, set2 stbio r3, 0(r2) /*Устанавливаем курсор в начало второй строки*/
movia r4, String2 /*Выводим вторую строку*/ cikl2: ldb r5, 0(r4) beq r5, zero, met1 stbio r5, 1(r2) addi r4, r4, 1 br cikl2
met1: movi r3, off stbio r3, 0(r2) /*Выключаем курсор*/
met2: movi r3, right stbio r3, 0(r2) /*Сдвигаем экран вправо*/ br met2
met3: movi r3, left stbio r3, 0(r2) /*Сдвигаем экран влево*/ br met3
.data /*Определяем сегмент данных*/ String1: .asciz " Kreitin konec" String2: .asciz " Alexander" .end Таблица 2 ASCII - коды символов
|