发表于:2015/8/13 11:06:17
#0楼
本人想写一个双整数转十六进制数的程序,使用LOOP指令不能实现循环
双整数范围0----999999
声明:INPUT IN1 DINT
OUTPUT OUT1 DWORD
TEMP TEMP1 DINT
TEMP2 DINT
TEMP3 DINT
LIMIT INT
OUTFU DWORD
具体程序如下:
L #IN1
T #TEMP1
L 0
<=D
JCN M001
L 0
T #TEMP1
M001: TAK
L 999999
>=D
JCN M002
L 999999
T #TEMP1
M002: L 6
NEXT: T #LIMIT
L #TEMP1
T #TEMP2
L #TEMP1
L 16
MOD
T #TEMP3
L #LIMIT
L 6
<I
JC M005
L #TEMP3
T #OUTFU
JU M006
M005: L #TEMP3
SLD 4
L #OUTFU
OD
T #OUTFU
M006: L #TEMP2
L 16
/D
T #TEMP1
L 16
<D
JC M003
L #LIMIT
LOOP NEXT
M003: L #TEMP1
SLD 4
T #TEMP1
L #OUTFU
OD
T #OUT1
BE
程序执行到LOOP NEXT 是,显示LIMIT值为5 ,但下面就不执行了
双整数范围0----999999
声明:INPUT IN1 DINT
OUTPUT OUT1 DWORD
TEMP TEMP1 DINT
TEMP2 DINT
TEMP3 DINT
LIMIT INT
OUTFU DWORD
具体程序如下:
L #IN1
T #TEMP1
L 0
<=D
JCN M001
L 0
T #TEMP1
M001: TAK
L 999999
>=D
JCN M002
L 999999
T #TEMP1
M002: L 6
NEXT: T #LIMIT
L #TEMP1
T #TEMP2
L #TEMP1
L 16
MOD
T #TEMP3
L #LIMIT
L 6
<I
JC M005
L #TEMP3
T #OUTFU
JU M006
M005: L #TEMP3
SLD 4
L #OUTFU
OD
T #OUTFU
M006: L #TEMP2
L 16
/D
T #TEMP1
L 16
<D
JC M003
L #LIMIT
LOOP NEXT
M003: L #TEMP1
SLD 4
T #TEMP1
L #OUTFU
OD
T #OUT1
BE
程序执行到LOOP NEXT 是,显示LIMIT值为5 ,但下面就不执行了