2012-11-06 117 views
0

我在裝配此簡單的代碼:功課彙編語言

1000 Add  R3,R2,#20 
1004 Susbtract R5,R4,#3 
1008 And  R6,R3,#0x3A 
1012 Add  R7,R2,R4 

我的問題是什麼是「和」做......我真搞不清楚了,我做我的功課,我米卡住了。

非常感謝。

+2

http://en.wikipedia.org/wiki/Bitwise_operation – Mysticial

回答

0

0x3A = 00111010b對於8位機器。這看起來像一個64位的機器,所以要加上56個零。

它將屏蔽R3中除[從0開始](第1,第3,第4,第5和第6)從右側開始的所有數字位。所有其它位將被無效,並存儲在R6

例如,如果R 3含有0x5848然後,(0x5848(和)0x3A)= 0x08的(將被存儲在R6寄存器)

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0101 1000 0100 1000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0011 1010 (AND) 
-------------------------------------------------------------------------------------- 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 
-------------------------------------------------------------------------------------- 

的真值表AND運算=

A B A(and)B 
----------------- 
0 | 0 | 0 
0 | 1 | 0 
1 | 0 | 0 
1 | 1 | 1 
----------------- 
4

它完成兩個源操作數之間的按位and,並把結果在目標操作數。要詳細可視化結果,請將每個數字轉換爲二進制數,然後執行and。例如,如果R0 = 0×1234和R1 = 0×8765,則:

R0 = 0x1234 = 0001 0010 0011 0100 
R1 = 0x8765 = 1000 0111 0110 0101 

Result  = 0000 0010 0010 0100 
Hex result = 0x0224 

即在結果每個位是1當且僅當在兩個輸入操作數該位置的位都爲1的。