屈子行舟
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 94 點
下載積分: 781 分
在線時間: 10(小時)
注冊時間: 2014-11-02
最后登錄: 2023-04-05
查看屈子行舟的 主題 / 回貼
樓主  發(fā)表于: 2015-07-23 17:50
有這么一段STL語言編的程序,看不懂,求高人指點,先謝謝了。!
       L     P##VISU_2                   // Load VisONarameter address
      TAR2                              // Load offset instance DB
      SLD   8                           //
      SRD   8
      +D    
      LAR1                              // Prepare address register AR1

      L     0
      T     D [AR1,P#0.0]               // First clear Visu bits
      T     #DummyDword

      L     #Stat_Stopper.VISU_2
      T     #DummyDword
現(xiàn)在我就是看不懂 SLD   8, SRD   8,為什么剛向左移8位,怎么又向有移8位,這樣一左一右,不等于沒移嗎?還有 +D 是什么相加?希望前輩們指點下。
[ 此帖被屈子行舟在2015-07-23 17:57重新編輯 ]
king_king2
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 92 個
工控威望: 218 點
下載積分: 537 分
在線時間: 66(小時)
注冊時間: 2014-03-29
最后登錄: 2024-07-31
查看king_king2的 主題 / 回貼
1樓  發(fā)表于: 2015-07-25 11:47
一個32位數(shù) 先左移8位,后右移8位怎么會相同呢?左移8位后高8位會用0填充。再右移0位那么低8位就會用0填充。你說能一樣么?其實原作者的意圖只是低8位清零!像
A & 0xFFFF_FF00。 +D是32位操作沒錯。 對ACC1 ACC2進行操作 .