Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/68: Рейтинг темы: голосов - 68, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 6
1

Сформировать программную задержку

12.06.2011, 19:24. Показов 12821. Ответов 43
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Подскажите пожалуйста как сформировать программную задержку длительностью 15. Сначала как я понял в P1 записывается 0, а потом идёт цикл...
В ассемблере вообще не разбираюсь... препод сказал там очень маленький код должен получиться.. очень нужно.
Заранее спасибо за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2011, 19:24
Ответы с готовыми решениями:

написать программную задержку в debug
Нужно написать программную задержку в debug!!!

Как сделать задержку выполнения программы?
У Финогенова К.Г. в книге самоучителя приведет пример очень компактной задержки вот код jmp $+2...

Как организовать задержку в приведенном коде
Подскажите пожалуйста как организовать задержку в таком коде: CSEG segment org 100h Begin: ...

Создать программную временную задержку в MPLAB IDE
Создать программную временную задержку на 430 мкс в MPLAB IDE

43
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
16.06.2011, 13:50 41
Author24 — интернет-сервис помощи студентам
Тщательнее копируйте код.
Вложения
Тип файла: rar 5.rar (247 байт, 13 просмотров)
0
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 14
16.06.2011, 19:27 42
Цитата Сообщение от Vadimych Посмотреть сообщение
Тщательнее копируйте код.
Вот это похоже на нужный вариант, но опять же хочется посмотреть листинг программы.
Это возможно?

Добавлено через 8 минут
[QUOTE=Vadimych;1764735]Sokolobus, если хочется, смотите:
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
;masm
.model small
 
.stack 100h
 
.data
    row db ? ;позиция курсора по горизонтали
    col db ? ;позиция курсора по вертикали
    symbol db ? ;хранит ASCII-код символа
    attr db ?   ;хранит атрибуты символа
    side db ?   ;хранит кол-во символов, сост. сторону квадрата
    ps db ?
    pp db ?
    
.code
prog:
;Очистка экрана текущей видеостраницы
    mov ah,00h
    mov al,03h
    int 10h
    
    mov ax,@data     ;в ax помещаем адрес начала сегмента данных
    mov ds,ax        ;определяем сегмент данных
    
;Установка адресного регистра в начало строки
    mov row,7
    mov col,30
    mov symbol,064   ;будем выводить квадрат с помощью символа "@"
    mov attr, 07h    ;напишем на черном 
    mov side,10      ;размер стороны квадрата
    
;вызовем процедуру вывода первой строки
    call printfs
ml:
;если выводим последнюю строку, то перейдем на метку m2, иначе выполним операнды
    cmp row,17     ;последняя ли строка выводится row (текущая) сравнивается с ps(последней)
    jz m2          ;если последняя то перейдем к метке m2
    inc row        ;перейдем к следующей строке
 
    call printos   ;вызов печати промежуточной строки
    jmp ml         ;вернемся к началу цикла
m2:
    mov col,30
    inc row
    call printls
    
    xor ax,ax
    int 16h
    mov ah,4ch
    int 21h
;Подпрограмма для вывода на экран первой строки - полной стороны квадрата
printfs proc
    mov cx,10
    @@:
    push cx
;позиционирование курсора
    mov ah,02h
    mov dh,row
    mov dl,col
    int 10h
 
;Вывод на экране цветом (опредееляется содержимым bl)
;символов в коничестве side (определяется cx), код которого помещается в регистр al
;Выбрана нулевая видеостраница
    mov ah,09h
    mov bh,00h
    mov bl,07h
    mov al,symbol
    mov cx,1
    int 10h
    pop cx
    add col,2
    loop @b
ret
printfs endp
 
 
;Подпрограмма для вывода на экран последней строки - полной стороны квадрата
printls proc
    mov cx,10
    @@:
    push cx
;позиционирование курсора
    mov ah,02h
    mov dh,row
    mov dl,col
    int 10h
 
;Вывод на экране цветом (опредееляется содержимым bl)
;символов в коничестве side (определяется cx), код которого помещается в регистр al
;Выбрана нулевая видеостраница
    mov ah,09h
    mov bh,00h
    mov bl,07h
    mov al,symbol
    mov cx,1
    int 10h
    pop cx
    add col,2
    loop @b
ret
printls endp
 
;Подпрограмма печати промежуточных строк
printos proc
    mov col,30
;выведем первый символ
;позиционирование курсора
    mov ah,02h
    mov dh,row
    mov dl,col
    int 10h
;Вывод на экране на бордовом фоне синим цветом (опредееляется содержимым bl)
;символов в количестве 1 (определяется cx), код которого помещается в регистр al
;Выбрана нулевая видеостраница
    mov ah,09h
    mov bh,00h
    mov bl,07h
    mov al,symbol
    mov cx,1
    int 10h 
    
    add col,18
;позиционирование курсора
    mov ah,02h
    mov dh,row
    mov dl,col
    int 10h
;Вывод на экране на бордовом фоне синим цветом (опредееляется содержимым bl)
;символов в количестве 1 (определяется cx), код которого помещается в регистр al
;Выбрана нулевая видеостраница
    mov ah,09h
    mov bh,00h
    mov bl,07h
    mov al,64  ;выводим пустые символы
    mov cx,1
    int 10h
    ret
printos endp
end prog
Добавлено через 11 минут


У меня ASM ругается на loop @b строка 73 и дальше по программе.
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
16.06.2011, 19:38 43
Метки переименуйте.
0
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 14
17.06.2011, 06:26 44
Цитата Сообщение от Vadimych Посмотреть сообщение
Метки переименуйте.
А можно по точнее, какие метки переименовать?
0
17.06.2011, 06:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2011, 06:26
Помогаю со студенческими работами здесь

Как правильно сформировать задержку?
Суть: имею сигнал с индукционного датчика. Снимаю его, усиливаю компаратором, завожу на таймер T0...

Сформировать задержку при выводе результата
Доброго времени суток Очень тупой вопрос : как сделать задержку при выводе значений на монитор? ...

Рассчитать задержку распространения сигнала и задержку передачи данных
Здравствуйте. Рассчитайте задержку распространения сигнала и задержку передачи данных для...

Написать программную функцию
Задание: Написать программную функцию для MathCad, которая из заданного вектора Х формирует...


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

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru