С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Каким образом использование стека подпрограммой может принести хоть какой-то вред? Что же программист полный идиот, чтобы ставить стек на область в которой хранятся нужные данные?
Может быть Вы имеете в виду случай когда стеком делается ролик экрана. В мониторе Орлова ролик тормозной без стека, а вот в ленинградском мониторе ролик делается стеком. Естественно, когда стек используют не по назначению, то прерывания запрещают.
Последний раз редактировалось barsik; 12.03.2018 в 23:27.
это вы сейчас по незнанию да неопытности сказали
вред будет нанесен если ктото по незнанию внесет изменения в программу
например включит прерывания или воткнет свою собственную процедуру прерывания
во время освежения экрана через стек
вот вам кусок кода для вывода графики на экран.
правда под спектрум и Z80 но нам это без разницы совершенно
данный код работает с включенными прерываниями и специальным обработчиком прерывания
если внезапно там окажется другой обработчик то вся графика будет минут за 10 полностью уничтожена.
Код:rend_line dup 32 push hl ;11 ld l,(hl) ;6 ld h,a ;bg_font/2048 ;7 add hl,hl ;11 add hl,hl ;11 add hl,hl ;11 ld c,(hl) ;7 inc l ;4 ld b,(hl) ;7 inc l ;4 ld sp,hl ;6 ld l,e ;4 ld h,d ;4 dup 3 ld (hl),c ;7 inc h ;4 ld (hl),b ;7 inc h ;4 pop bc ;10 edup ;96 ld (hl),c ;7 inc h ;4 ld (hl),b ;7 ld sp,ix ;10 pop hl ;10 inc e ;4 inc l ;4 ; ;236 edup rend_size equ ($-rend_line)/32 org $-1 ld bc,-31 add hl,bc jp rend_line
в том числе и ролик экранаМожет быть Вы имеете в виду случай когда стеком делается ролик экрана. В мониторе Орлова ролик тормозной без стека, а вот в ленинградском мониторе ролик делается стеком. Естественно, когда стек используют не по назначению, то прерывания запрещают.
когда программист что-то пишет он твердо знает обычно где и как будет работать его программа
освежение экрана через стек дает значительное ускорение по сравнению с другими способами.
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)