реклама на сайте
подробности

 
 
> Помогите с макросом...
Склихасовский
сообщение Apr 25 2008, 11:31
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



Здравствуйте..
Первый опыт в написании макроса...
Код
.macro    cpw
.if        @0='X'
    .if    @1='Y'
        cp    xl,yl
        cpc    xh,yh
    .elif    @1='Z'
        cp    xl,zl
        cpc    xh,zh
    .endif
.elif    @0='Y'            
    .if    @1='X'
        cp    yl,xl
        cpc    yh,xh
    .elif    @1='Z'
        cp    yl,zl
        cpc    yh,zh
    .endif
.elif    @0='Z'
    .if    @1='X'
        cp    zl,xl
        cpc    zh,xh
    .elif    @1='Y'
        cp    zl,yl
        cpc    zh,yh
    .endif
.endif
.endm

только не работает.. в чем собака..
макрос вида
CPW X,Y
сравнить 2 пары регистров (x,y,z)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tazik
сообщение Apr 25 2008, 13:52
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Код
.include "2313def.inc"    
.macro    cpw  
.if        @0=='X'      
     .if    @1=='Y'
         cp    xl,yl
         cpc    xh,yh
    .elif    @1=='Z'
        cp    xl,zl
        cpc    xh,zh
    .endif  
.elif    @0=='Y'
    .if    @1=='X'
        cp    yl,xl
        cpc    yh,xh
    .elif    @1=='Z'
        cp    yl,zl
        cpc    yh,zh
    .endif
.elif    @0=='Z'
    .if    @1=='X'
        cp    zl,xl
        cpc    zh,xh
    .elif    @1=='Y'
        cp    zl,yl
        cpc    zh,yh
    .endif  
.endif  
.endm

.org 0x00
    ldi YL,0x10
    ldi YH,0x40
    ldi ZL,0x05
    ldi ZH,0x04
    cpw 'Z','Y'


Вроде, вот так работает

AVR001 Conditional Assembly and portability macros
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 10:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016