日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

2407的匯編存儲(chǔ)問題(匯編的)

我想在.bss上開辟一段空間,然后將結(jié)果存放到這段空間(長度為100字)放的數(shù)據(jù)放在ACC里面,我有一個(gè)問題就是怎么將結(jié)果存到存儲(chǔ)空間里面去,然后再實(shí)現(xiàn)地址積存器的自加,直到需要的所有的數(shù)據(jù)全部存儲(chǔ)完畢
我是這樣定義這個(gè)空間的

大家?guī)臀铱纯?a target="_blank">1155739655.asm
全部回復(fù)(8)
正序查看
倒序查看
youngboy
LV.2
2
2006-08-17 12:51
可以使用輔助寄存器,通過循環(huán)來實(shí)現(xiàn).數(shù)據(jù)再多也可以方便存儲(chǔ)
如:LAR    AR0,#MATRIX     ;傳送數(shù)據(jù)存儲(chǔ)的地址
            LAR    AR1,#215 ;216個(gè)數(shù)據(jù)
            LACC   #DATAS_  ;傳送數(shù)據(jù)的地址          
            MAR    *,AR0
INIT_TBL:  
          TBLR   *+,AR1           ; 下一個(gè)
            ADD    #1              ; 下一個(gè)地址
            BANZ   INIT_TBL,AR0
0
回復(fù)
kcw_2005
LV.2
3
2006-08-18 08:31
@youngboy
可以使用輔助寄存器,通過循環(huán)來實(shí)現(xiàn).數(shù)據(jù)再多也可以方便存儲(chǔ)如:LAR    AR0,#MATRIX    ;傳送數(shù)據(jù)存儲(chǔ)的地址            LAR    AR1,#215;216個(gè)數(shù)據(jù)            LACC  #DATAS_  ;傳送數(shù)據(jù)的地址                      MAR    *,AR0INIT_TBL:            TBLR  *+,AR1          ;下一個(gè)            ADD    #1              ;下一個(gè)地址            BANZ  INIT_TBL,AR0
我覺得你最好定義一個(gè)100的數(shù)組,這樣的好處是這個(gè)為初始化的數(shù)組就存放在 bss 段了,將結(jié)果放在數(shù)組中,再實(shí)現(xiàn)數(shù)組累加,應(yīng)該能作出來
0
回復(fù)
zhonggorm
LV.1
4
2006-08-18 14:33
大家好:本人現(xiàn)正在開發(fā)一種動(dòng)態(tài)LED圖形顯示方案,由于技朮問題遲遲還沒有下產(chǎn) ,希望可以和更多同行作技朮交流.它不是點(diǎn)陣型的圖型顯示,而是利用動(dòng)力與掃描時(shí)間結(jié)合為一體的和種顯示技朮,現(xiàn)只是圖型顯示這方面還有待開發(fā).LYHZHONGGO@126.COM
0
回復(fù)
2006-08-18 16:50
@youngboy
可以使用輔助寄存器,通過循環(huán)來實(shí)現(xiàn).數(shù)據(jù)再多也可以方便存儲(chǔ)如:LAR    AR0,#MATRIX    ;傳送數(shù)據(jù)存儲(chǔ)的地址            LAR    AR1,#215;216個(gè)數(shù)據(jù)            LACC  #DATAS_  ;傳送數(shù)據(jù)的地址                      MAR    *,AR0INIT_TBL:            TBLR  *+,AR1          ;下一個(gè)            ADD    #1              ;下一個(gè)地址            BANZ  INIT_TBL,AR0
有個(gè)問題想請(qǐng)教一下:我要在.bss 開辟一段長為200字的數(shù)據(jù)區(qū),使用 下面兩條條語句那條是合適的    MP/MC=1
下面那個(gè)程序可以實(shí)現(xiàn)將所采集到的值存儲(chǔ)到所開辟的 ADRESULT這段存儲(chǔ)空間里面去,還是兩個(gè)都不可以,需要怎么修改一下.麻煩你幫我看看了:)
.bss   ADRESULT    200(這個(gè)數(shù)據(jù)段是不是在b1里面?)

下面的程序可以實(shí)現(xiàn)將所采集到的值存儲(chǔ)到所開辟的 ADRESULT這段存儲(chǔ)空間里面去嗎
LAR  AR0,#ADRESULT
LAR  AR1,#199
LACC #RESULT
MAR  *,AR0

INIT_TBL
  TBLR  *+,AR1
  ADD   #1
  BANZ  INIT_TBL,AR0



ADRESULT     .usect   "adresult"   200(這個(gè)數(shù)據(jù)段也是在b1里面嗎)
LAR  AR0,#ADRESULT
LAR  AR1,#199
LACC #RESULT
MAR  *,AR0

INIT_TBL
  TBLR  *+,AR1
  ADD   #1
  BANZ  INIT_TBL,AR0
0
回復(fù)
kcw_2005
LV.2
6
2006-08-19 08:32
@snoopopy415
有個(gè)問題想請(qǐng)教一下:我要在.bss開辟一段長為200字的數(shù)據(jù)區(qū),使用下面兩條條語句那條是合適的    MP/MC=1下面那個(gè)程序可以實(shí)現(xiàn)將所采集到的值存儲(chǔ)到所開辟的ADRESULT這段存儲(chǔ)空間里面去,還是兩個(gè)都不可以,需要怎么修改一下.麻煩你幫我看看了:).bss  ADRESULT    200(這個(gè)數(shù)據(jù)段是不是在b1里面?)下面的程序可以實(shí)現(xiàn)將所采集到的值存儲(chǔ)到所開辟的ADRESULT這段存儲(chǔ)空間里面去嗎LAR  AR0,#ADRESULTLAR  AR1,#199LACC#RESULTMAR  *,AR0INIT_TBL  TBLR  *+,AR1  ADD  #1  BANZ  INIT_TBL,AR0ADRESULT    .usect  "adresult"  200(這個(gè)數(shù)據(jù)段也是在b1里面嗎)LAR  AR0,#ADRESULTLAR  AR1,#199LACC#RESULTMAR  *,AR0INIT_TBL  TBLR  *+,AR1  ADD  #1  BANZ  INIT_TBL,AR0
一般的將bss段放在數(shù)據(jù)存儲(chǔ)器得外部 RAM,地址一般分配為0X8000,長度為0x7ff0,你上面的第二個(gè)程序的usect,應(yīng)該是你自己定義的段吧,那根據(jù)你的需要可以定義到B1或外部RAM,一般的將B0B1合起來用做軟件堆棧,所以你那個(gè)段放在外部RAM或者B2或者SARAM.
0
回復(fù)
kcw_2005
LV.2
7
2006-08-19 09:05
@snoopopy415
有個(gè)問題想請(qǐng)教一下:我要在.bss開辟一段長為200字的數(shù)據(jù)區(qū),使用下面兩條條語句那條是合適的    MP/MC=1下面那個(gè)程序可以實(shí)現(xiàn)將所采集到的值存儲(chǔ)到所開辟的ADRESULT這段存儲(chǔ)空間里面去,還是兩個(gè)都不可以,需要怎么修改一下.麻煩你幫我看看了:).bss  ADRESULT    200(這個(gè)數(shù)據(jù)段是不是在b1里面?)下面的程序可以實(shí)現(xiàn)將所采集到的值存儲(chǔ)到所開辟的ADRESULT這段存儲(chǔ)空間里面去嗎LAR  AR0,#ADRESULTLAR  AR1,#199LACC#RESULTMAR  *,AR0INIT_TBL  TBLR  *+,AR1  ADD  #1  BANZ  INIT_TBL,AR0ADRESULT    .usect  "adresult"  200(這個(gè)數(shù)據(jù)段也是在b1里面嗎)LAR  AR0,#ADRESULTLAR  AR1,#199LACC#RESULTMAR  *,AR0INIT_TBL  TBLR  *+,AR1  ADD  #1  BANZ  INIT_TBL,AR0
我覺得這兩個(gè)程序都有問題,問題在那個(gè)表讀指令是把定義在程序空間的一段值給200數(shù)組ADRESULT,但是你的值是采樣來的,值不應(yīng)該放在程序空間,比如我事先定義一個(gè)數(shù)據(jù)段,data.下面放200個(gè)常數(shù)值,再讀這個(gè)表是沒問題的,因?yàn)榉彩浅跏蓟亩味挤旁诔绦蚩臻g,為初始化的放在數(shù)據(jù)空間,所以你這個(gè)表讀指令有問題,除非你的數(shù)據(jù)來源就在程序空間
0
回復(fù)
2006-08-19 16:47
@kcw_2005
我覺得這兩個(gè)程序都有問題,問題在那個(gè)表讀指令是把定義在程序空間的一段值給200數(shù)組ADRESULT,但是你的值是采樣來的,值不應(yīng)該放在程序空間,比如我事先定義一個(gè)數(shù)據(jù)段,data.下面放200個(gè)常數(shù)值,再讀這個(gè)表是沒問題的,因?yàn)榉彩浅跏蓟亩味挤旁诔绦蚩臻g,為初始化的放在數(shù)據(jù)空間,所以你這個(gè)表讀指令有問題,除非你的數(shù)據(jù)來源就在程序空間
謝謝你一直這么認(rèn)真的回復(fù),其實(shí)我對(duì).usect和.bss這兩個(gè)分配弄的不是很清楚,我一直以為它們總是分配在數(shù)據(jù)存儲(chǔ)區(qū)里,和程序存儲(chǔ)區(qū)沒有什么聯(lián)系,我在一本書上看到這樣去定義一個(gè)轉(zhuǎn)換A/D的結(jié)果積存器
   .data
ADRESULT  .word  00h(這是將ADRESULT放在程序存儲(chǔ)區(qū),同時(shí)其初始值為0)
然后在存儲(chǔ)轉(zhuǎn)換結(jié)果的時(shí)候是先將結(jié)果放在ACC里面再采用下面的語句
SACH   ADRESULT (A/D的采樣結(jié)果放在ACC里面的高十六位,這條語句直接取其高位放在ADRESULT)
我就試著照這樣去做了,但是在ADRESULT里面怎么也看不到采樣的結(jié)果值,這是為什么?
如果我想將這200個(gè)數(shù)組定義在b1里面該怎么去做,可以給點(diǎn)提示一下嗎?
0
回復(fù)
kcw_2005
LV.2
9
2006-08-22 08:17
@snoopopy415
謝謝你一直這么認(rèn)真的回復(fù),其實(shí)我對(duì).usect和.bss這兩個(gè)分配弄的不是很清楚,我一直以為它們總是分配在數(shù)據(jù)存儲(chǔ)區(qū)里,和程序存儲(chǔ)區(qū)沒有什么聯(lián)系,我在一本書上看到這樣去定義一個(gè)轉(zhuǎn)換A/D的結(jié)果積存器  .dataADRESULT  .word  00h(這是將ADRESULT放在程序存儲(chǔ)區(qū),同時(shí)其初始值為0)然后在存儲(chǔ)轉(zhuǎn)換結(jié)果的時(shí)候是先將結(jié)果放在ACC里面再采用下面的語句SACH  ADRESULT(A/D的采樣結(jié)果放在ACC里面的高十六位,這條語句直接取其高位放在ADRESULT)我就試著照這樣去做了,但是在ADRESULT里面怎么也看不到采樣的結(jié)果值,這是為什么?如果我想將這200個(gè)數(shù)組定義在b1里面該怎么去做,可以給點(diǎn)提示一下嗎?
我認(rèn)為在data段存是可以的,累加器的高十六位放在ADRESULT中,你應(yīng)該再看看之前的ACC中值的格式是Q多少,我給你會(huì)過了,在bss段中存200個(gè),用你以前的表讀指令好像不行
0
回復(fù)
發(fā)