Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 04.01.2013
Сообщений: 52

Блок-схема алгоритма (ASM)

04.06.2013, 21:07. Показов 4077. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Помогите составить блок схему для данной программы.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
.INCLUDE "m8def.inc"
.MACRO LINE
        cbi PORTD,PD6
        ldi r20,@0
        rcall WRITE
 
        sbi PORTD,PD6
        ldi ZL,low(@1*2)
        ldi ZH,high(@1*2)
        ldi r19,16
L2:     lpm r20,z+
 
        rcall WRITE
        dec r19
        brne L2
.ENDMACRO
 
 
.CSEG
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
 
    ldi r16,$ff
    out DDRB, r16
    clr r16
    ldi r16,(1<<PD6) | (1<<PD7);PD6, PD7
    out DDRD, r16
 
    rcall INIT
 
Lstart:
    LINE $80, Row1Scr1
    LINE $C0,Row2Scr1
    rcall DELAY_big
    LINE $80, Row1Scr2
    LINE $C0,Row2Scr2
    rcall DELAY_big
    rjmp Lstart
 
 
INIT:   cbi PORTD,PD6
 
    ldi r20,0b00111000
    rcall WRITE
 
    ldi r20, 0b00000110
    rcall WRITE
 
    ldi r20, 0b00001100
    rcall write
 
    ldi r20, 0b00000001
    rcall WRITE
    ret
 
WRITE:  sbi PORTD, PD7
        out PORTB, r20
        cbi PORTD, PD7
        rcall DELAY
        ldi r20, $FF
        out PORTB,r20
        ret
        
DELAY:  ldi YL,low(498)
        ldi YH,high(498)
 
Ld1:    sbiw YL,1
        brne Ld1
        ret
DELAY_big:
        ldi r25,30
Ld3:    ldi YL,low(25000)
        ldi YH,high(25000)
Ld2:    sbiw YL,1
        brne Ld2
        dec r25
        brne Ld3
        ret
 
Row1Scr1: .db $E0,$6F,$BD,$48,$54,$A9,$10,$10,$10,$BA,$61,$E4, $2E,$A1,$AF,$41
Row2Scr1: .db $4D,$A8,$54,$10,$41,$A9,$A8,$2D,$30,$39,$61,$10, $32,$30,$31,$31
 
Row1Scr2: .db $A5,$B3,$61,$BD,$6F,$B3,$10,$4D,$B8,$78,$61,$B8, $BB,$10,$10,$10
Row2Scr2: .db $10,$10,$10,$10,$10,$10,$10,$AA,$B5,$E3,$6F,$70, $6F,$B3,$B8,$C0
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.06.2013, 21:07
Ответы с готовыми решениями:

Создать блок-схема алгоритма программы
Здравствуйте. Помогите создать блок-схему алгоритма программы. Не могу разобраться. Может есть какой-нибудь конструктор для этого? ...

Блок-схема алгоритма частотомера на PIC16F73
Помогите сделать блок-схему программы прошивки МК 16Ф73, программа -то написана в исходном виде, да и прошивка есть, вот по блок-схемам не...

Блок-схема и описание кода программы "Пульсометр" (ASM, PIC16F877)
Доброго времени суток! Ребят,помогите пожалуйста.Суть вопроса-есть код программы,к нему необходимо сделать блок-схему и описание самого...

8
61 / 186 / 31
Регистрация: 14.02.2013
Сообщений: 1,695
04.06.2013, 21:09
Это кто же вам такое задание поставил?
Не досмотрел что есть код прошивки.
Я уж подумал составить блок схему пустого МК.
0
1 / 1 / 1
Регистрация: 04.01.2013
Сообщений: 52
04.06.2013, 21:16  [ТС]
VladimirU, честно говоря я пока в этих заданиях полный ноль. Мне бы понять как для таких программ блок-схемы составлять. Если надо могу программу с пояснениями предоставить.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
04.06.2013, 21:52
Редактор блок-схем, по остальному смотрите пояснения к программе и идите пошагово.
0
1022 / 157 / 10
Регистрация: 16.01.2013
Сообщений: 544
05.06.2013, 11:44
Вообще то первичен всегда агоритм. Востановление алгоритма из программы это уже реверсинжениринг и на порядок сложнее самого программирования.
0
1 / 1 / 1
Регистрация: 04.01.2013
Сообщений: 52
07.06.2013, 19:41  [ТС]
raxp, за редактор конечно спасибо, но хотелось бы блок-схему. Что бы по аналогии еще три программы описать. Для Паскаля я блок-схемы делал, а как для Ассемблера команды описывать не знаю.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
07.06.2013, 20:09
...вы выше написали, что у вас пояснения к программе имеются, тогда в чем проблема?
0
1 / 1 / 1
Регистрация: 04.01.2013
Сообщений: 52
07.06.2013, 20:43  [ТС]
raxp, вот текст с пояснениями.
В блоках пояснения писать и все? А тип блоков, ввод/вывод, лог. операция и т. д.? Какая команда какому блоку соответствует?

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
.INCLUDE "m8def.inc"
.MACRO LINE  ;МАКРОС ЗАПИСИ СТРОКИ В ПАМЯТЬ ДИСПЛЕЯ (DDRAM) 
;Параметры: @0 - начальный адрес DDRAM дисплея, 
;с которого начать писать строку
;@1 - метка строки символов, которую надо вывести 
;Установка адреса DDRAM, с которого начинать строку 
cbi PORTD,PD6   ;RS=0 - подаются КОМАНДЫ
ldi r20,@0  ;отображать, начиная с адреса @0 DDRAM rcall WRITE  
;подпрогр. записи байта из r20 в порт LCD
;посимвольная запись строки в DDRAM sbi PORTD,PD6  
;RS=1 - подаются ДАННЫЕ
ldi ZL,low(@1*2)    ;загр. в Z адрес первого байта строки @1 ldi ZH,high(@1*2)       
;*2 - т.к. адрес. памяти - по словам
L2:
.ENDMACRO 
ldi r19,16 lpm r20,Z+
rcall WRITE dec r19 brne L2 
;счетчик символов (в строке 16 символов) 
;загр. из памяти прогр. (адр. - в Z)
;в r20 байт, кодирующ. символ, для вывода 
;на порт, после этого Z=Z+1 (подгот. к 
;прочтению следующего символа)
;подпр. записи байта из r20 в порт LCD 
;декремент счетчика символов в строке 
;если символы еще не кончились, то вывод.
;следующий 
;конец макроса
.CSEG       ;НАЧАЛО ПРОГРАММНОГО СЕГМЕНТА ldi r16,high(RAMEND) 
;инициализация стека out SPH,r16
ldi r16,low(RAMEND) out SPL,r16
ldi r16,$FF ;конфигурирование портов out DDRB,r16 
;порт В - выход
clr r16
ldi r16,(1<<PD6)|(1<<PD7);PD6, PD7 - выходы out DDRD,r16
rcall INIT  ;инициализация дисплея
Lstart: ;ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ
LINE $80,Row1Scr1 LINE $C0,Row2Scr1 
;отобразить ЭКРАН №1
;отображать Row1Scr1 в 1 строке экрана №1 
;отображать Row2Scr1 во 2 строке экрана №1
rcall DELAY_big ;задержка 3 сек
LINE $80,Row1Scr2 LINE $C0,Row2Scr2 
;отобразить ЭКРАН №2 
;отображать Row1Scr2 в 1 строке экрана №2
;отображать Row2Scr2 в 2 строке экрана №2 
rcall DELAY_big ;задержка 3 сек
rjmp Lstart ;повторять основной цикл
;ПОДПРОГРАММА ИНИЦИАЛИЗАЦИИ ДИСПЛЕЯ INIT:   cbi PORTD,PD6   
;RS=0 - подаются команды
ldi r20,0b00111000 rcall WRITE 
;а) DL=1 (8-битный дислей) 
; N=1 (2 строки)
; F=0 (знакоместо 5х8) 
;r20 - байт команды/данных 
ldi r20,0b00000110 rcall WRITE
ldi r20,0b00001100 rcall WRITE 
;б) I/D=1 (инкремент адреса) 
; S=0(экран не движется)
;в) D=1 (включить дисплей),
; C=0 (нет курсор в виде прочерка) 
; B=0 (нет курсора в виде квадрата) 
ldi r20,0b00000001 rcall WRITE
ret 
;г) очистка экрана, счетчик адреса на 
; нулевую позицию DDRAM
;возврат из подпрограммы
WRITE:   sbi PORTD,PD7 out PORTB,r20 cbi PORTD,PD7 rcall DELAY ldi r20,$FF out PORTB,r20 ret
DELAY:   ldi YL,low(498) ldi YH,high(498) 
;ПОДПРОГРАММА ЗАПИСИ БАЙТА ИЗ r20 В ПОРТ 
;E=1 - установить строб-сигнал
;вывести байт на порт
;Е=0 – сброс. строб-сигнал (запис. в LCD) 
;задержка на 2мс
;установить шину в "1"
;возврат из подпрограммы
;ПОДПРОГРАММА ЗАДЕРЖКИ НА 2мс
;загрузить константу в регистровую пару Y 
36 
Ld1:
DELAY_big:
Ld3:
Ld2: 
sbiw YL,1 brne Ld1 ret
ldi r25,30
ldi YL,low(25000) ldi YH,high(25000) sbiw YL,1
brne Ld2 dec r25 brne Ld3 ret 
;вычесть 1 из регистровой пары Y 
;проверка цикла на окончание 
;возврат из подпрограммы
;ПОДПРОГРАММА ЗАДЕРЖКИ НА 3 сек
;задержка между сменами экранов - 3сек 
;загрузить константу в регистровую пару Y
;вычесть 1 из регистровой пары Y 
;проверка внутреннего цикла на окончание 
;декремент внешнего счетчика
;проверка внешнего цикла на окончание 
;возврат из подпрограммы
;КОДЫ СИМВОЛОВ (записываются в память программ) 
;строки по 16 байт
Row1Scr1: .db $E0,$6F,$BD,$48,$54,$A9,$10,$10,$10,$BA,$61,$E4, $2E,$A1,$AF,$41
Row2Scr1: .db $4D,$A8,$54,$10,$41,$A9,$A8,$2D,$30,$39,$61,$10, $32,$30,$31,$31
 
Row1Scr2: .db $A5,$B3,$61,$BD,$6F,$B3,$10,$4D,$B8,$78,$61,$B8, $BB,$10,$10,$10
Row2Scr2: .db $10,$10,$10,$10,$10,$10,$10,$AA,$B5,$E3,$6F,$70, $6F,$B3,$B8,$C0
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
07.06.2013, 21:38
Не какая команда какому блоку, а какая функция. Есть стандарт на начертание и вид блок-схем и АСМ тут совершенно ни причем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2013, 21:38
Помогаю со студенческими работами здесь

Блок схема ( схема алгоритма )
Доброго времени суток . Есть вот такая програмка : bool checktwo(const int x); int main(){ for (int i=1000; i&lt;10000; i++)...

Блок-схема алгоритма
необходимо составить в текстовом процессоре схему алгоритма для проведения вычислений с помощью разветвляющегося вычислительного процесса...

Блок-схема алгоритма
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { int a,x,c,f; cin &gt;&gt;a; cin...

Блок-схема алгоритма 2
Дан одномерный массив Z, содержащий 5 целых чисел. Выполнить сортировку массива методом «пузырька». Полученный массив вывести на экран. ...

Блок-схема алгоритма
Составить блок-схему: а) нахождения максимального элемента произвольного одномерного массива. б) нахождения минимального элемента...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru