2012-10-15 271 views
3

我試圖瞭解這些說明的MSP 430處理器做:MSP430彙編指令

(1) MOV.w #0x0055,R5 
(2) BIC.w #0xFFEE,R5 
(3) BIS.w #0x1144,R5 

我一直沒能找到很多解釋的彙編指令,很想找出這些指令在每條指令後執行並存儲在r5寄存器中。有人可以解釋嗎?

+9

真的嗎? [你什麼也沒找到?](https://www.google.com/search?q=msp430+instruction+set) –

+1

維基百科頁面有完整的指令集,不難找到wikipedia.org。 –

回答

12

MOV值移動到目的地。在這種情況下,R5將包含值0x0055。

BIC清除目標值中的位。如果R5在指令之前包含0x0055,它將包含值0x0011。 (將此視爲反轉的指令)。

BIS設置位 - 這實際上與操作相同。在這條指令之後,R5將具有值0x1155。

5

MOV.w #0x0055,R5執行以下操作:src → dst

BIC.w #0xFFEE,R5做以下not.src .and. dst → dst

BIS.w #0x1144,R5執行以下操作:src .or. dst → dst

試想一下,在MSP 430 User Guide

BIS [.W]設置目標BIS.B中的位在目的地

語法BIS SRC,DST或
BIS.W SRC,DST BIS.B SRC,DST

操作SRC .OR 的位。 dst - > dst

說明源操作數和目標操作數在邏輯上是「或」的。結果被放入 目的地。源操作數不受影響。

狀態位狀態位不受影響。

模式位OSCOFF,CPUOFF和GIE不是 受影響。

示例RAM字TOM的六個LSB是 集。

BIS#003Fh,TOM;將六個LSB設置在RAM位置TOM

示例設置RAM字節TOM的三個MSB。

BIS.B#0E0h,TOM;設置3個MSB在RAM位置 TOM

當然:

BIC [.W]在目的地BIC.B在目的地

語法BIC SRC
清除位清除比特, dst或
BIC.W src,dst BIC.B src,dst

操作.NOT.src .AND。 dst - > dst

描述反向源操作數和目標操作數邏輯與。結果被放入 的目的地。源操作數不受影響。

狀態位狀態位不受影響。

模式位OSCOFF,CPUOFF和GIE不是 受影響。

示例RAM單詞LEO的六個MSB清零了 。

BIC#0FC00h,LEO;在 中清除6個MSB MEM(LEO)

示例RAM字節LEO的五個MSB清零。

BIC.B#0F8h,LEO;清除5個MSB在 拉姆的位置LEO

我能找到相關的鏈接本用戶手冊上這個very website

+1

有什麼可能的原因可以讓任何人不得不投票回答這個問題? –

+0

也許他們反對用勺子餵養那些提出壞問題的人,或者認爲將那麼多文獻複製成答案是過度的。我認爲有些人只是對他們認爲不應該存在的問題回答了問題和大部分答案。 –

1

現有答案中缺少的一條信息是.W和.B的重要性。

從56它指定頁面上的MSP430F24x用戶指南(SLAU144J)的第3.4節,

乙/ W:

字節或字操作:

0:字操作

1:字節操作

它我值得注意的是,默認情況下指令是對單詞進行操作的。

+0

這個信息很難找到。 Thankyou – Jered

+0

這不是相同的指令集或語法,但是該鏈接描述了在許多彙編語言(不是全部)中通用的後綴。 https://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax#Operation_Suffixes – AKstat