打印

反汇编时选择了bank1,却用了bank0的寄存器会发生什么事....

[复制链接]
1774|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
兮兮松摇|  楼主 | 2016-7-15 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如程序,大神们求教
CLRF   FSR
        MOVLW  1FH
        ANDWF  STATUS, 1
        MOVLW  0AH
        BSF    STATUS, RP0
        MOVWF  TXREG
        MOVLW  22H
沙发
XIEYUANBIN| | 2016-7-15 20:51 | 只看该作者
并非用了BANK0的寄存器,在PIC 的8位机中,内存寻址是不管最高位的。最高位和第9位由页面(BANK)位决定。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
兮兮松摇 + 1 很给力!
板凳
XIEYUANBIN| | 2016-7-15 20:51 | 只看该作者
你是否在**别人的程序

使用特权

评论回复
地板
NE5532| | 2016-7-15 21:39 | 只看该作者
访问不在本页面的寄存器,实际操作了本页面该地址上的寄存器。PIC搞反汇编,够弄死人的,楼主不如自己写算了。

使用特权

评论回复
5
兮兮松摇|  楼主 | 2016-7-16 12:02 | 只看该作者
XIEYUANBIN 发表于 2016-7-15 20:51
并非用了BANK0的寄存器,在PIC 的8位机中,内存寻址是不管最高位的。最高位和第9位由页面(BANK)位决定。 ...

请你说得再详细一些呢?

使用特权

评论回复
6
XIEYUANBIN| | 2016-7-16 13:52 | 只看该作者
在汇编中,直接寻址只关心低7位,其余的有两位BANK位管理

使用特权

评论回复
7
兮兮松摇|  楼主 | 2016-7-18 09:00 | 只看该作者
XIEYUANBIN 发表于 2016-7-16 13:52
在汇编中,直接寻址只关心低7位,其余的有两位BANK位管理

那么如果说是这样
        BSF    STATUS, RP1
        MOVWF  PIR2
        BSF    STATUS, RP0
        BCF    PIR1, PSPIF
        BSF    PIR1, TMR1IF
已经是bank3了,但是在bank3中对应的PIR1那又是什么情况啊

使用特权

评论回复
8
兮兮松摇|  楼主 | 2016-7-18 09:00 | 只看该作者
兮兮松摇 发表于 2016-7-18 09:00
那么如果说是这样
        BSF    STATUS, RP1
        MOVWF  PIR2

bank3中没有对应PIR1的

使用特权

评论回复
9
XIEYUANBIN| | 2016-7-19 08:41 | 只看该作者
你这是反汇编过来的,反汇编的程序识别是没办法区分你的程序在BANK多少。你自己去看看BANK0 和 BANK3 对应位置内存的地址,去掉最高位都是一样的

使用特权

评论回复
10
zhanzr21| | 2016-7-21 13:41 | 只看该作者
你可能沒有搞清楚PIC的詢址模式
SFR只存在於最後一個BANK 和 ACCESS BANK
如果用好的反匯編器, 會顯示出你現在用哪種尋址模式的
比如:
        MOVWF 0x9F, BANKED

        BTFSC PORTA, 6, ACCESS

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

9

帖子

0

粉丝