汇编语言,求解释 a EQU 35 c EQU 27 AREA Text3,

汇编语言,求解释
a EQU 35

c EQU 27

AREA Text3,CODE,READONLY

mov R0,#a

mov R1,#c

AND R2,R1,#15

ORR R3,R2,R0,LSL #2

ldr r2,=0x30200000

str r3,[r2]

END

悬赏8小时内有效。

第1个回答  2014-11-19
看样子是ARM的指令系统的汇编。

EQU是汇编的伪指令,给常数一个符号,帮助记忆、理解的。
AREA Text3,CODE,READONLY,这段是指定代码存放位置及相关存放位置的一些特性,一般照抄即可。

mov R0,#a ; 把常数35送到寄存器R0

mov R1,#c ;把常数27送到寄存器R1

AND R2,R1,#15;R1的内容与#15 按位相与,结果送R2。R1的内容是27,16进制表示是1BH,与的结果是R1的低4位,是0BH,送R2。

ORR R3,R2,R0,LSL #2;这个麻烦点,先R0的内容左移2位,即8CH,(注意R0的内容不变),8CH和R2的内容按位相或,R2的内容是0BH,相或的结果8FH,送R3。

ldr r2,=0x30200000;这个=是取地址的伪指令,具体的生成的指令会根据地址有所不同,结果是R2的内容变成0x3020000。

str r3,[r2];str是把r3的内容送到R2所指向的地址,最终的结果是0x3020000地址单元的内容变成前面的运算结果8FH。

END 是汇编结束伪指令,告诉编译器,下面没有了,有也不用管了。本回答被提问者和网友采纳
相似回答