+ -
当前位置:首页 → 问答吧 → 初学汇编请教

初学汇编请教

时间:2011-07-16

来源:互联网

求两个无符号数据块的最大值。数据块的首地址分别为60H和70H,每个数据块的第一个字节都存放数据块的长度,结果存入5FH单元。
主程序:
ORG 2000H
MOV SP,#2FH
MOV R1,#60H
ACALL QMAX
MOV 40H,A
MOV R1,#70H
ACALL QMAX
CJNE A,40H,NEXT
NEXT: JNC LP
  MOV A,40H
LP: MOV 5FH,A
  SJMP $
子程序:
ORG 2200H
QMAX: MOV A,@R1
  MOV R2,A
  CLR A
LP1: INC R1
  CLR C
  SUBB A,@R1
  JNC LP3
  MOV A,@R1
  SJMP LP4
LP3: ADD A,@R1
LP4: DJNE R2,LP1
  RET
我对红色的那一行不是很明白,子程序部分是用来实现找出数据块中的最大值给累加器A,为什么要用ADD A,@R1呢。。。如果是A大,A不变不就可以了么。。。求指点。。书上对那一行的注释是:恢复A中值

作者: guohaoqing   发布时间: 2011-07-16

LP1: INC R1
  CLR C
SUBB A,@R1
  JNC LP3
  MOV A,@R1
  SJMP LP4
LP3: ADD A,@R1

我想应该是这里吧,不知道对不对

作者: WJN92   发布时间: 2011-07-16