弱!!ARM汇编的问题

lqshui0501 2008-11-14 10:22:38
小弟在看ARM的汇编的时候,发现里面的指令用法不明白!!
如:
MOVEQ R0,#1
BEQ POW_END
这里的执行条件EQ,什么意思?
MOVHS R0,#0
这条语句中HS什么意思?
望大侠赐教!!!
...全文
957 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gooogleman 2008-11-15
  • 打赏
  • 举报
回复
用chm的格式功能==用chm的搜索功能
打错了
gooogleman 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lqshui0501 的回复:]
不明白!!
我都有ARM指令的书,但是上面讲的一点都不详细
我也找了宛城布衣写的
但是和书上的一样,有的指令说的不详细
还是不明白!!!
我现在主要是问前面,,,如果相当,这里的前面是什么意思?
Gooogleman
请具体点!!
[/Quote]
哎!你找的指令不对啊。那些不够全面,在google输入“ARM 指令 chm”下载chm格式的,这些比较好,我就在上面找到的(用chm的格式功能)

MOVEQ 就是前面的两个数相等才执行这个 EQ就是相等的意思啊。
那个chm格式的ARM指令,都有的。
一本chm格式的ARM指令闯天涯。还是不明白就自己再找几个实例程序看看。
lqshui0501 2008-11-15
  • 打赏
  • 举报
回复
不明白!!
我都有ARM指令的书,但是上面讲的一点都不详细
我也找了宛城布衣写的
但是和书上的一样,有的指令说的不详细
还是不明白!!!
我现在主要是问前面,,,如果相当,这里的前面是什么意思?
Gooogleman
请具体点!!
lqshui0501 2008-11-15
  • 打赏
  • 举报
回复
还是不明白,不过挺感谢GOOOLGMAN的热情和帮助1!
gooogleman 2008-11-14
  • 打赏
  • 举报
回复
语句MOVEQ R0,#1
前边....如果相等,就把1放到R0中
BEQ POW_END
如果.....相等 就跳转到POW_END执行

=====================================
楼主,不是建议你看汇编手册吗?CSDN就有下载啊
这些都有的啊。


chm格式的比较好查找。
-------你这么问下去也不是办法。
lqshui0501 2008-11-14
  • 打赏
  • 举报
回复
以上是我在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又是什么意思?
请各位大侠赐教!!

hzdysymbol 2008-11-14
  • 打赏
  • 举报
回复
HS我也不知道是什么意思,学习了
gooogleman 2008-11-14
  • 打赏
  • 举报
回复
在多数汇编器中,插入条件代码到紧随在助记符根代码(stub)的后面;省略条件代码缺省为使用 AL。

在一些汇编器中把 HS (高于或同于) 和 LO (低于) 分别用做 CS 和 CC 的同义词。

条件 GT、GE、LT、LE 被成为有符号比较,而 HS、HI、LS、LO 被称为无符号比较。

----------找到了。有的。楼主弄个汇编手册,就OK了
gooogleman 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzqccc 的回复:]
EQ 的含意是相等
HS 的含意是无符号数等于

去下载个常用ARM指令集及汇编看看

CMP r0, #num ; Treat function code as unsigned integer
MOVHS pc, lr ; If code is >= num then simply return
[/Quote]
从以上看书zzqccc 数的对。

怎么我的汇编手册没有找到这个MOVHS呢,奇怪了。
gooogleman 2008-11-14
  • 打赏
  • 举报
回复
这个指令我也是第一次见到
奇怪我找遍了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

楼主你的代码从哪里弄下来的?什么开发环境?
zzqccc 2008-11-14
  • 打赏
  • 举报
回复
EQ 的含意是相等
HS 的含意是无符号数等于

去下载个常用ARM指令集及汇编看看
gooogleman 2008-11-14
  • 打赏
  • 举报
回复
2. HS is conditional code in instruction.
you can read help documents from ads.

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧