yangjiejie
朝花夕拾
級別: 網絡英雄
|
各位大俠好,小弟看編程手冊。自己實習做一個練習題:就是當X1 ON時,把50 ,55,60,65.......100這11個數據,用循環指令傳送到D10到D20中去。 編寫的程序如下: 可是,我用模擬軟件監控,為什么,循環的V是1,也只能傳送50,55,60,小弟很納悶,不知是什么地方出了問題,請各位同仁大俠,指導指導。 |
|
---|---|---|
|
yangjiejie
朝花夕拾
級別: 網絡英雄
|
百度查了一下,如下列1加到10,可能是缺少條件判,如大于10次,就不執行循環指令 有點明白了 |
|
---|---|---|
|
detect
小心慎言,莫走邪道
級別: 略有小成
|
我電腦上現在無法模擬,但從程序分析,最初的程序的確是沒考慮到v0到10以后的問題,換句話說,也就是x0接通給D10賦值之后的第二第三及至更后掃描周期,原賦值循環程序將繼續無限制執行,直到出錯 V0是16位寄存器,當V0的賦值數據超過其數據容量時將溢出, 同樣,D寄存器的允許使用地址也存在限制, 當V0和D的內容超過其允許值時,出錯在所難免啊 因此,在賦值循環程序之前加上跳轉完全有必要。 而二樓的程序應該能達到樓主的要求,但是存在無效的反復循環 個人見解,僅供借鑒 如有理解不當之處,請指正 [ 此帖被detect在2011-02-15 22:37重新編輯 ] |
---|---|
本帖最近評分記錄: |
yangjiejie
朝花夕拾
級別: 網絡英雄
|
2樓的我在線模擬,在X0不為ON時,D10 ,D11,D12 .......都有數據,且當XO為ON時,不僅傳送了D10到D20,還有D21等的數據。三樓思路正確的,但我怎么看下面的程序不要調用或跳轉也能正確的執行循環加指令次數 程序如下: 請高手繼續解答,謝謝.... 這個程序是1+2+3+.......100的程序 |
|
---|---|---|
本帖最近評分記錄:
|
gk1234
有反饋,才控制
級別: 論壇先鋒
|
主要因為INCP只能運行一次,用INC就好了,必須加上循環完成后將V0清零,否則會一直加下去 [ 此帖被hnyyl12在2011-02-16 11:12重新編輯 ] |
---|---|
本帖最近評分記錄: |