21ic电子技术开发论坛 单片机与嵌入式系统 中颖MCU 请教中颍工程师关于清楚ram问题
发新帖我要提问
返回列表
打印

请教中颍工程师关于清楚ram问题

[复制链接]
2272|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fanhui2002|  楼主 | 2007-3-1 23:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 我想清楚20h-11fh里的内容,看下面三种方式
第一种:
    clr_ram:
           ldi  dph,02h
           ldi  dpm,01h
           ldi  dph,0fh
   clr_ram1:
           ldi  inx,00h
           sbim dpl,01h
           bc   clr_ram1
           sbim dpm,01h
           sbi  dpm,02h
           bc   clr_ram1
         rtni
第二种:
clr_ram:
              ldi  dph,02h   
              ldi  dpm,01h
              ldi  dph,0fh
clr_ram1:
             ldi   inx,00h
            sbim dpl,01h
            bc   clr_ram1
           sbi  dph,00h
           baz  clr_ram2
           sbim dpm,01h
          bc  clr_ram1
          jmp  clr_ram3
clr_ram2:
         sbim  dpm,01h
         sbi      dpm,02h
         bc       clr_ram1
clr_ram3:
         sbim  dph,01h
          bc     clr_ram1
          rtni
第三种:
clr_ram:  
         ldi   dph,00h
         ldi   dpm,02h
         ldi   dpl,00h
clr_ram1:
         ldi   inx,00h
        adim  dpl,01h
        ldi   temp,00h
        adcm  dpm,00h
         ldi  temp,00h
        adcm dph,00h
        sbi   dpl,0fh
        ldi   temp,00h
        sbc  dpm,01h
        ldi  temp,00h
       sbc dph,02h
       bnc   clr_ram1
        rtni
对于上面几个程序,请您看看有什么问题,另外,请问,在inx的三个中,低位为4位的,其他中间和高位为三位的,当我们做减的时候是看成四位来做,还是看成三位来做,也就是说,当dpm=0时,sbim dpm,01h执行后dpm是0fh还是07h,上面三个肯定是有问题的,请各位大侠也看看问题在那里
   
沙发
lanfanglee| | 2007-3-2 09:44 | 只看该作者

出题了 楼下的快上阿!

RT

使用特权

评论回复
板凳
agency1980| | 2007-3-2 17:22 | 只看该作者

问人不如自己试

用软件仿真自己试!

使用特权

评论回复
地板
george001| | 2007-3-2 17:37 | 只看该作者

清RAM的问题

请试试看下面这段程序:

clr_ram:
           ldi  dph,02h
           ldi  dpm,01h
           ldi  dpl,0fh
   clr_ram1:
           ldi  inx,00h
           sbim dpl,01h
           bc   clr_ram1
           sbim dpm,01h
           ldi  tmp,00h
           sbcm dph,0 
           sbi  dpm,01h
           bnz  clr_ram1
           rtni

使用特权

评论回复
5
fanhui2002|  楼主 | 2007-3-2 19:37 | 只看该作者

那个问题是我是试过的,不知道怎么试

楼上那位大哥好象没有考虑00-20h是系统的,都给清掉了,我只是想清20-11fh
而且我主要是想知道,那三个dpm dph,dpl计算的时候是按几位来的 ,有人告诉我吗?
   是0fh还是07h呢

使用特权

评论回复
6
第五生産隊| | 2007-3-5 14:54 | 只看该作者

這樣的。

我一般不對3位的寄存器做算術運算的,這樣不可靠。在中穎的資料説明中有明確説明。

使用特权

评论回复
7
cscm007| | 2007-3-7 15:11 | 只看该作者

应该不能用!

算法是按4位的来运行,但空间只有三位,说是有一位没有存储功能,所以不能用来计算

使用特权

评论回复
8
fanhui2002|  楼主 | 2007-3-7 20:03 | 只看该作者

哦,这样啊

   太感谢了哈

使用特权

评论回复
9
neutronlmk| | 2007-3-14 10:14 | 只看该作者

不能用来计算的

RT

使用特权

评论回复
10
rqiang| | 2007-3-22 16:14 | 只看该作者

这个是6955的CLEARRAM

ClearRam:                                          ;;; clear ram, 000H-3AFH=111, 000, 1100B
        LDI    DPH, 07H            ;;; x111B=07H
        LDI        DPM, 02H            ;;; x010B=02H
    LDI        DPL, 0FH            ;;; 1111B=0FH
        ANDIM    WDT, 1000B        ;;; hellodog
Clear_Loop:                ;;;
        LDI        INX, 00H            ;;;
        SBIM        DPL, 01H            ;;;
        EOR         DPL, 00h            ;;; 
        SBCM        DPM,  00h            ;;;
        EOR         DPM,  00h            ;;;
        SBCM        DPH,  00h            ;;;
        LDA        DPH,  00h            ;;;
        OR         DPM,  00h            ;;; 
        BNZ        Clear_Loop        ;;;

使用特权

评论回复
11
river1972| | 2007-4-5 14:06 | 只看该作者

我是这样来做的

   ldi   rambnk, 0h
   call  clear_ram
   ldi   rambnk, 1h
   call  clear_ram
   ldi   rambnk, 2h
   call  clear_ram
   .....
   .....
clear_ram:
   ldi   dpl, 0h
   ldi   dpm, 3h
   ldi   dph, 0h
clear_ram10:
   ldi   inx, 0h
   adim  dpl, 1h
   bnc   clear_ram10
   adim  dpm, 1h
   ba3   clear_ram20
   jmp   clear_ram10
clear_ram20:
   adim  dph, 1h
   ba3   clear_ram30
   jmp   clear_ram10
clear_ram30:
   .....

使用特权

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

本版积分规则

2

主题

4

帖子

0

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