8085微处理器检查回文程序


在这里,我们将看到一个8085微处理器程序,它可以检查一个数字是否为回文。

问题陈述

编写一个8085汇编语言程序来检查一个位模式是否为回文。

讨论

在这个程序中,我们从8000H位置获取数字。如果数字不是回文,程序将返回00H,否则将返回FFH。

例如,输入为18H,则二进制值为(0001 1000),这是一个回文。数字52H (0101 0010)则不是回文。

在这个问题中,我们将第一个数字放入累加器,然后将其左移。当它左移时,MSB将被放置到LSB,并且也会在进位标志中。这个进位标志通过右移插入D寄存器。因此,位模式将被反转,现在通过检查实际数字和反转数字的值,我们可以确定它是否为回文。

输入

第一个输入

地址
数据


8000
BD



第二个输入

地址
数据


8000
52


第三个输入

地址
数据


8000
18


流程图

程序

地址
十六进制代码
标签
助记符
注释
F000
3A, 00, 80
 
LDA 8000H  
将数字加载到A
F003
67
 
MOV H,A
将Acc移到H
F004
0E, 08
 
MVI C,08H  
初始化计数器
F006
7C
LOOP
MOV A,H
将H加载到Acc
F007
07
 
RLC
左移
F008
67
 
MOV H,A
将Acc移回H
F009
7A
 
MOV A,D
将D内容加载到Acc
F00A
1F
 
RAR
带进位的右移
F00B
57
 
MOV D,A
将Acc移回D
F00C
0D
 
DCR C  
递减C
F00D
C2, 06, F0
 
JNZ LOOP  
如果Z=0,则跳转到LOOP
F010
7C
 
MOV A,H
将H数据加载到Acc
F011
BA
 
CMP D  
将D与Acc比较
F012
CA, 1A, F0
 
JZ TRUE
如果两者相同,则为回文
F015
3E, 00
 
MVI A, 00H
将00H加载到A
F017
C3, 1C, F0
 
JMP EXIT  
跳转到Exit
F01A
3E, FF
TRUE
MVI A,FFH  
将FFH加载到A
F01C
32, 50, 80
EXIT
STA 8050H  
将结果存储到内存中
F01F
76
 
HLT
终止程序

 

输出

第一个输出

地址
数据


8050
FF


第二个输出

地址
数据


8050
00


第三个输出

地址
数据


8050
FF


 

更新于: 2019年10月5日

1K+浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告