小弟在看ARM的汇编的时候,发现里面的指令用法不明白!!
如:
MOVEQ R0,#1
BEQ POW_END
这里的执行条件EQ,什么意思?
MOVHS R0,#0
这条语句中HS什么意思?
望大侠赐教!!!
2. HS is conditional code in instruction.
you can read help documents from ads.
EQ 的含意是相等
HS 的含意是无符号数等于
去下载个常用ARM指令集及汇编看看
这个指令我也是第一次见到
奇怪我找遍了ADS的guide只找到如下代码
arithfunc ; Label the function
CMP r0, #num ; Treat function code as unsigned integer
MOVHS pc, lr ; If code is >= num then simply return
ADR r3, JumpTable ; Load address of jump table
LDR pc, [r3,r0,LSL#2] ; Jump to the appropriate routine
楼主你的代码从哪里弄下来的?什么开发环境?
引用: 引用 2 楼 zzqccc 的回复:
EQ 的含意是相等
HS 的含意是无符号数等于
去下载个常用ARM指令集及汇编看看
CMP r0, #num ; Treat function code as unsigned integer
MOVHS pc, lr ; If code is >= num then simply return
从以上看书zzqccc 数的对。
怎么我的汇编手册没有找到这个MOVHS呢,奇怪了。
在多数汇编器中,插入条件代码到紧随在助记符根代码(stub)的后面;省略条件代码缺省为使用 AL。
在一些汇编器中把 HS (高于或同于) 和 LO (低于) 分别用做 CS 和 CC 的同义词。
条件 GT、GE、LT、LE 被成为有符号比较,而 HS、HI、LS、LO 被称为无符号比较。
----------找到了。有的。楼主弄个汇编手册,就OK了
以上是我在S3C2140的汇编指令实验一和实验二的代码中的几句
全部内容如下:实验一
COUNT EQU 0x30003100
AREA Example,CODE,READONLY
ENTRY
CODE32;代码是32位ARM指令
START LDR R1,=COUNT
MOV R0,#0
STR R0,[R1]
LOOP LDR R1,=COUNT
LDR R0,[R1]
ADD R0,R0,#1
CMP R0,#10
MOVHS R0,#0
STR R0,[R1]
B LOOP
END
还是请各位大侠说说MOVHS R0,#0的含义
实验二:
X EQU 9
n EQU 8
AREA Example3,CODE,READONLY
ENTRY
CODE32
START LDR SP,=0x30003F00
LDR R0,=X
LDR R1,=n
BL POW
HALT B HALT
POW STMFD SP!,{R1-R12,LR};寄存器入栈保护
MOVS R2,R1;R2=R1,影响状态位
MOVEQ R0,#1
BEQ POW_END
MOV R1,R0
SUB R2,R2,#1
POW_L1 BL DO_MUL
SUBS R2,R2,#1
BNE POW_L1
POW_END LDMFD SP!,{R1-R12,PC}
DO_MUL MUL R0,R1,R0
MOV PC,LR
END
语句MOVEQ R0,#1和BEQ POW_END又是什么意思?
请各位大侠赐教!!
语句MOVEQ R0,#1
前边....如果相等,就把1放到R0中
BEQ POW_END
如果.....相等 就跳转到POW_END执行
=====================================
楼主,不是建议你看汇编手册吗?eeworld就有下载啊
这些都有的啊。
chm格式的比较好查找。
-------你这么问下去也不是办法。
不明白!!
我都有ARM指令的书,但是上面讲的一点都不详细
我也找了宛城布衣写的
但是和书上的一样,有的指令说的不详细
还是不明白!!!
我现在主要是问前面,,,如果相当,这里的前面是什么意思?
Gooogleman
请具体点!!
引用: 引用 9 楼 lqshui0501 的回复:
不明白!!
我都有ARM指令的书,但是上面讲的一点都不详细
我也找了宛城布衣写的
但是和书上的一样,有的指令说的不详细
还是不明白!!!
我现在主要是问前面,,,如果相当,这里的前面是什么意思?
Gooogleman
请具体点!!
哎!你找的指令不对啊。那些不够全面,在google输入“ARM 指令 chm”下载chm格式的,这些比较好,我就在上面找到的(用chm的格式功能)
MOVEQ 就是前面的两个数相等才执行这个 EQ就是相等的意思啊。
那个chm格式的ARM指令,都有的。
一本chm格式的ARM指令闯天涯。还是不明白就自己再找几个实例程序看看。
还是不明白,不过挺感谢GOOOLGMAN的热情和帮助1!