Ассемблер (ASM) для AVR в вопросах и ответах
Пытливый расейский ум...
"Пробьет он крышку люка или нет? " ©
- Реклама
Пробьет! Без прерываний работает.
Недокументированного ничего не использую.
Недокументированного ничего не использую.
вы хоть расскажите, что за задачу решаете и на каком МК, что таким способом боретесь с нехваткой стека... а то догадостности не хватает додуматься самому, зачем это нужно...trofim2 писал(а):Без прерываний работает.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Вообще-то надо...ARV писал(а):господа, а вот оно вам нужно - ковыряние в неприличном? ну для какой цели эти "исследования"? неужели вы всерьез собираетесь использовать недокументированные возможности, которые по определению противоречат здравому смыслу, а именно использование области РОН под стек?! лучше посоветовать пожелавшему такое сделать лизнуть провода, торчащие из розетки, чем так писать программы...
...
Ибо
1. чтоб не было в дальнейшем попыток использовать некорректные комбинации команд/адресного пространства
2. несмотря на имеющиеся в системе команд MOV rd,rr и MOVW rd,rr при преимущественной обработке массивов с размещением данных в ОЗУ имеется также интерес к обработке коротких массивов с размещением данных в регистрах РОН (до 16 байт) при косвенном указателе в Z/X/Y.
Это при компиляции, а мой скрин касается работы дебаггераtrofim2 писал(а):У меня ошибок не выдает
вот это ваше "ибо" очень напоминает вырезание аденоидов через задний проход...BOB51 писал(а):Вообще-то надо...
Ибо
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Ну уж "когда КОТУ делать нечего..." можно и такими вопросами поинтересоваться.
Мало ли чего и когда потребуется...

Мало ли чего и когда потребуется...
Действительно работает в железе только при однократном PUSH/POP!!!trofim2 писал(а):Самое интересное, что Push/Pop тоже работает, (правда проверял с одной парой Push/Pop), но не нашел, куда складывает.
Спойлер
Код: Выделить всё
.INCLUDE "tn2313def.inc"
.cseg
.org 0
RESET:
LDI R16,0x05
OUT SPL,R16
CLR R0
DEC R0
IN R14,SREG
MOV R4,R14
PUSH R14
; LDI R17,0x44
; MOV R7,R17
; PUSH R17
CLR R14
; CLR R17
OUT DDRB,R0
OUT PORTB,R0
LDI R16,1
OUT TCCR1B,R16
TST R16
; POP R17
POP R14
OUT SREG,R14
CP R14,R4
; CP R17,R7
BREQ WAIT
RJMP PC
WAIT:
IN R16,TIFR
SBRS R16,TOV1
RJMP WAIT
OUT TIFR,R16
OUT PINB,R0
RJMP WAIT
.EXIT
Почитал, врубаюсь, но так и не понял до сих пор. А какое практическое применение может быть в использовании SP не по прямому назначению?
Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
- Сообщения: 31
- Зарегистрирован: Сб сен 17, 2016 18:56:30
Тут просто парни хотят накопать на Нобелевскую премию (или Шнобелевскую) в номинации "Особо извращенный изврат".
Если нельзя, но очень хочется, значит можно.
Практическое применение - в нестандартном мышлении и принятии решения.
Практическое применение - в нестандартном мышлении и принятии решения.
Для указателя стека - определение/подтверждение границ действия. Ибо в техдокументации нет явного утверждения границ адресов ОЗУ для применения указателя стека, а область РСФ/РОН также заявлена производителем как "отображение на ОЗУ".ptr128 писал(а):Почитал, врубаюсь, но так и не понял до сих пор. А какое практическое применение может быть в использовании SP не по прямому назначению?
Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
Для косвенной адресации РОН - практическая обработка малых массивов с максимальным быстродействием и/или косвенной адресацией. Дополнительная "плюшка" - возможность модификации обрабатываемого регистра в ходе обработки.
В принципе то же и для работы через память выполнимо, однако массивчик как область "сверхбыстрой" передачи параметров имеет некоторые преимущества.
Вобщем - дополнительный анализ рамок применения системы команд и способов адресации "на когда делать нечего".
Ну это-то работает без проблем, многократно проверено. Например, в 1200 ОЗУ вообще нет, но косвенная адресация имеется. Правда, только через Z. Тут главное - косвенной адресацией сам регистр-указатель не задеть. Как говорил врач из фильма "Экипаж", вправляя пациенту вывихнутую челюсть: "Тут главное - руку вовремя отдернуть"BOB51 писал(а): Для косвенной адресации РОН - практическая обработка малых массивов
хорошо сказано, прямо в тему последних сообщений!Jack_A писал(а):Правда, только через Z
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Я же не сказал "через Ж"
В 1200 Z-регистр (R30) один, там нет ZH, вот через него и адресуем ячейку в регистровом файле.
мелочные нюансы не меняют сути. через то самое - оно и есть через то самое 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
clz
clc
cp EncD_Plus, EncD_Minus ; сравнить две переменные
breq Ravno ; если равны, то переходим
brlo Menshe ; а если первая меньше, чем вторая, то переходим в другое место
nop ; иначе выполняем другой код.
Последний раз редактировалось СКАЗОЧНИК Вс окт 16, 2016 14:38:49, всего редактировалось 2 раза.
Станислав
Почему оно должно не работать? Сброс флагов только тут лишнее.
Почему сброс лишнее?
Я же не знаю, какие они были до этого... 
Станислав
CPI установит флаги в по результаты операции, не важно что было перед этим. Щаззз ссылку найду как флаги устанавливаются для нее.
Да, только я подправил свой код. )))
Не CPI, а CP (хотя, для флагов не принципиально, они одинаково ставят)
Но и у меня в шпаргалке написано, что эта команда ставит все флаги. Но не написано, что она их сбрасывает....
Не CPI, а CP (хотя, для флагов не принципиально, они одинаково ставят)
Но и у меня в шпаргалке написано, что эта команда ставит все флаги. Но не написано, что она их сбрасывает....
Станислав




