请各大虾帮忙看看下面宏定义有什么问题

[复制链接]
3588|8
 楼主| 22724787 发表于 2007-9-26 12:37 | 显示全部楼层 |阅读模式
    MOVI MACRO Mx,IBIT ;传送指令:将常数IBIT送到寄存器MX 
    if((Mx>>7)&07H)
        LDI TEMP,IBIT
        STA Mx,(Mx>>7)&07H
    else
        LDI Mx,IBIT
    endif
    ENDM
程式编译后,在汇编上看编译出来是对的,但是不能正常仿真!请各位大虾指教,谢谢
 楼主| 22724787 发表于 2007-9-26 12:44 | 显示全部楼层

测试程式如下

         TEST_R   EQU 30H

         LDI    TEMP,    0
    STA    TEST_R,(TEST_R>>7)&07H
    MOVI    TEST_R,        12
 编译后在汇编上看到是
         ldi      30h,  12
    
 楼主| 22724787 发表于 2007-10-24 10:06 | 显示全部楼层

没人知道原因吗

没人知道原因吗
warm_ice 发表于 2007-10-26 12:14 | 显示全部楼层

这样的结果是正确的

看了一下,宏没什么问题,你调试的结果也是对的啊,你的程序就是要把12赋值给30H.不知道您有什么疑问?
 楼主| 22724787 发表于 2007-12-3 10:57 | 显示全部楼层

不能正常仿真

不能正常仿真
warm_ice 发表于 2007-12-3 11:57 | 显示全部楼层

这样

我用这个程序试过,没有问题。您能把不能仿真的具体情况说明一下么??例如编译时报什么错误,仿真时有什么问题等。
 楼主| 22724787 发表于 2007-12-3 13:50 | 显示全部楼层

编译时没有问题

编译时没有问题,但仿真时程式不能正常运行.我用编译器版本是4.3的,IC用的是66P13A
warm_ice 发表于 2007-12-3 14:19 | 显示全部楼层

这样

建议您升级编译软件,现在最新的仿真软件叫做IDE66,最新版本为2.0版.可在中颖网站上下载.
 楼主| 22724787 发表于 2007-12-7 09:56 | 显示全部楼层

编译软件

谢谢!是编译软件的问题!前几天已经更新了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部