UM10398 LPC111x/LPC11Cxx User manual启12.3 - 10 2014年6月说LPC111x系列是否支持带有高寄存器的MOV指令?
在这些指令中,Rd和Rm必须只在“28.5指定 “28.5.5.5.3限制” R0-R7
。 5.5 MOV和MVN“。
在另一方面, “实施例28.5.5.5.5” 在UM10398说
MOVS R0, #0x000B ; Write value of 0x000B to R0, flags get updated MOVS R1, #0x0 ; Write value of zero to R1, flags are updated MOV R10, R12 ; Write value in R12 to R10, flags are not updated MOVS R3, #23 ; Write value of 23 to R3 MOV R8, SP ; Write value of stack pointer to R8 MVNS R2, R0 ; Write inverse of R0 to the R2 and update flags
在这个例子中,R10
,R12
,R8
和SP
是尽管它们不使用似乎R0-R7
。 (SP
似乎相当于R13
,根据UM10398 28.4.1.3内核寄存器)
一件事是,当我读,我发现
MOV路,RM 0 1 0 0 0 1 1 0 H1 H2 _ Rm _ _ Rd _
并且此建议高寄存器可用于MOV
指令。该文件还表示,
路或Rm必须是*高*登记
这个MOV Rd, Rm
指令。
虽然与S
指令(标志更新)不是这份文件上(在无S
这个文件的说明更新标志表示)和本文件应该是另一个CPU(也许有在GBA使用,根据网址路径),我用这个文档作为参考,希望LPC111x的指令集与本文档中描述的类似。
最后,我可以做
MOV R0, R1
(低寄存器低寄存器)MOV R8, R1
(低寄存器高寄存器)MOV R0, R9
(高寄存器低寄存器)MOV R8, R9
(高寄存器到高寄存器)
在LPC111x(或LPC1114FN28/102,如果您需要指定特定的CPU)?