这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教有关asm的问题

共3条 1/1 1 跳转至

请教有关asm的问题

菜鸟
2006-11-21 18:45:38     打赏

实现1--100相加

N EQU 100
AREA Example5,CODE,READONLY
ENTRY
CODE32

ARM_CODE
LDR SP,=0x40003F00
ADR R0,THUMB_CODE+1
BX R0


LTORG

CODE16

THUMB_CODE
LDR R0,=N
BL SUM_N
B THUMB_CODE

SUM_N
PUSH {R1-R7,LR}
MOVS R2,R0
BEQ SUM_END

????请问,这个地方的EQ它是怎么判断的? 它是怎么影响标志位的,是不是只有当R2为零的时候才可以呢?

CMP R2,#1
BEQ SUM_END
MOV R1,#1
MOV R0,#0

SUM_L1
ADD R0,R1
BCS SUM_ERR

????请问,上句命令中的条件CS是怎么去判断的,怎样影响标志位的 ?
CMP R1,R2
BHS SUM_END
ADD R1,#1
B SUM_L1

SUM_ERR

MOV R0,#0

SUM_END

POP {R1-R7,PC}
END




关键词: 请教     有关     问题    

院士
2006-11-21 19:00:00     打赏
2楼

难了~~

等待正解


菜鸟
2006-11-21 20:34:00     打赏
3楼

1. 是。MOVS自己会设置Z Flag.
2. CS判断的是前一条指令是否有进位。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]