标题:
请问下面两段程序有什么区别程序 菜鸟求教51系列编程
[打印本页]
作者:
13163340127
时间:
2017-6-16 15:19
标题:
请问下面两段程序有什么区别程序 菜鸟求教51系列编程
请问下面两段程序有什么区别程序1,
ORG 0200H MOV A, 40H
MOV R0, 41H
CJNE A, 41H, GP2
GP1:MOV 50H, A
MOV 51H, R0
SJMP GP3
GP2: JNC GP1
MOV 51H, A
MOV 50H, R0
GP3:SJMP GP3
END
程序2,ORG 0200H
MOV A,40H
CJNE A , 41H, GP2
GP1:MOV 50H, A
MOV 51H, 41H
SJMP GP3
GP2:JNC GP1
MOV 51H, A
MOV 50H, 41H
GP3:SJMP GP3
END
我想知道这两段程序都是正确的吗?它们的功能是否一样?,有错误的话 是那个地方?为什么?
作者:
不倒翁.WZT
时间:
2017-6-17 07:34
标题:
RE: 请问下面两段程序有什么区别程序 菜鸟求教51系列编程
单从这两段程序看,结果完全一样,第一段程序多了一个R0,这里的R0只起过渡作用。
ORG 0200H ;程序起始地址为0200H
MOV A, 40H ;将地址为40H的寄存器中数据传送给累加器A
MOV R0, 41H ;将地址为41H的寄存器中数据传送给工作寄存器R0
CJNE A, 41H, GP2 ;将累加器A中数据与工作寄存器R0进行比较,如果不等跳转到GP2执行
GP1:MOV 50H, A ;将累加器A中数据传送给地址为40H的寄存器
MOV 51H, R0 ;将工作寄存器R0中数据传送给地址为51H的寄存器
SJMP GP3 ;跳转到GP3 执行
GP2: JNC GP1 ;进位标志位Cy中数据等于0,则跳转到GP1执行
MOV 51H, A ;将累加器A中数据传送给地址为51H的寄存器
MOV 50H, R0 ;将工作寄存器R0中数据传送给地址为41H的寄存器
GP3:SJMP GP3 ;跳转到GP3 执行
END ;程序结束
程序2
ORG 0200H ;程序起始地址为0200H
MOV A,40H ;将地址为40H的寄存器中数据传送给累加器A
CJNE A , 41H, GP2 ;将累加器A中数据与工作寄存器R0进行比较,如果不等跳转到GP2执行
GP1:MOV 50H, A ;将累加器A中数据传送给地址为40H的寄存器
MOV 51H, 41H ;将地址为41H中数据传送给地址为51H的寄存器
SJMP GP3 ;跳转到GP3 执行
GP2:JNC GP1 ;进位标志位Cy中数据等于0,则跳转到GP1执行
MOV 51H, A ;将累加器A中数据传送给地址为51H的寄存器
MOV 50H, 41H ;将地址为41H中数据传送给地址为50H的寄存器
GP3:SJMP GP3 ;跳转到GP3 执行
END ;程序结束
作者:
shuisheng60
时间:
2019-2-8 01:33
不倒翁.WZT 发表于 2017-6-17 07:34
单从这两段程序看,结果完全一样,第一段程序多了一个R0,这里的R0只起过渡作用。
ORG 0200H ...
不错,还有汇编玩的溜的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1