單片機匯編語言指令問題 求解
MOV A, #28H
MOV R0, #20H
MOV @R0, A
ANL A, #0FH
ORL A, #80H
XRL A, @R0
最后A的內容為什么是28H. ?
uj5u.com熱心網友回復:
我算的A的最終內容是A0H,28H是怎么得出來的。
uj5u.com熱心網友回復:
單片機匯編語言指令問題 求解MOV A, #28H //A暫存器里面的值為0x28
MOV R0, #20H //R0暫存器里面的值為0x20
MOV @R0, A //將A的值賦給R0為地址的RAM單元,前一條陳述句里R0=0x20,此陳述句執行以后,RAM中地址為20H的地方為0x28。
ANL A, #0FH //A中的值和0x0F與計算,保留的低四位,所以A的新值為0x08
ORL A, #80H //A的值和0x80做或計算,所以A的新值為0x88
XRL A, @R0 //A的值與0x20單元的值異或。0x88^0x28 = 0xA0.
uj5u.com熱心網友回復:
我算的也是A0. . . 然后看答案是28H
那這樣八成是答案錯了
uj5u.com熱心網友回復:
單片機匯編語言指令問題 求解
MOV A, #28H
MOV R0, #20H
MOV @R0, A
ANL A, #0FH
ORL A, #80H
XRL A, @R0
最后A的內容為什么是28H. ?
我算的A的最終內容是A0H,28H是怎么得出來的。
我算的也是A0. . . 然后看答案是28H
那這樣八成是答案錯了
0x88^0x28 = 0xA0.
10001000 ^ 0010 1000 = 0101 0000 = 0xA0
是答案錯啦,答案錯啦有時候真要誤匯入呀!
uj5u.com熱心網友回復:
對不起呀,剛才輸錯啦!0x88^0x28 = 0xA0.
10001000 ^ 0010 1000 = 1010 0000 = 0xA0
是答案錯啦,答案錯啦有時候真要誤匯入呀!
uj5u.com熱心網友回復:
不是,資料一直在a中處理,然后剛開始28H資料保存在r中,。最后A處理完了沒用又拿回r資料,當然還是28uj5u.com熱心網友回復:
運行結果是A=0xA0, 看答案是28H那是答案錯了。

uj5u.com熱心網友回復:
不是,資料一直在a中處理,然后剛開始28H資料保存在r中,。最后A處理完了沒用又拿回r資料,當然還是28
注意最后一句是:XRL A, @R0
XRL是異或,不是簡單chuansong
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/71049.html
標籤:單片機/工控
上一篇:IAR8.30除錯8051單片機遇到的優先級問題。使用low優先級程式仿真打斷點不會有問題,反倒優先級降為none,程式就跳過了,斷點也不停。
下一篇:51暫存器 計數器 TMOD
