實驗二:排序、加法(80C51單片機匯編語言編程)
匯編程序:
ORG 0000H;設置初始位置
START:MOV R0,#30H
MOV R1,#50H
MOV R3,#10H
CF:MOV A,@R0;將30H的數(shù)放在50H
MOV @R1,A
INC R0
INC R1
DJNZ R3,CF
MOV R0,#50H
MOV R1,#40H
MOV R3,#10H
CLR C
JIA:MOV A,@R0;將兩個數(shù)求和
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R3,JIA
CLR A;查看最后一個數(shù)是否有進位位
ADDC A,#00H
MOV 60H,A
MOV R0,#50H;將50H的數(shù)放到70H
MOV R1,#70H
MOV R3,#10H
ZY:MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R3,ZY
MOV DPL,#0FH;用DPL計數(shù)
AA:MOV R0,#70H
MOV R1,#71H
PUSH DPL;保護DPL
BB:CLR C
MOV A,@R0
SUBB A,@R1
JC CC;第一個數(shù)小于第二個數(shù)跳轉
MOV A,@R0
XCH A,@R1
MOV @R0,A
CC:INC R0
INC R1
DJNZ DPL,BB;減一不等于零跳轉(內循環(huán))
POP DPL
DJNZ DPL,AA;減一不等于零跳轉(外循環(huán))
SJMP $
END
START:MOV R0,#30H
CF:MOV A,@R0;將30H的數(shù)放在50H
JIA:MOV A,@R0;將兩個數(shù)求和
ZY:MOV A,@R0
AA:MOV R0,#70H
BB:CLR C
CC:INC R0
評論