初学汇编请教
时间: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中值
主程序:
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
我想应该是这里吧,不知道对不对
CLR C
SUBB A,@R1
JNC LP3
MOV A,@R1
SJMP LP4
LP3: ADD A,@R1
我想应该是这里吧,不知道对不对
作者: WJN92 发布时间: 2011-07-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28