性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

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

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

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

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

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



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

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