8085程序检查给定的16位数是否为回文数


在这个程序中,我们将看到如何检查一个16位数是否为回文数。

问题陈述

编写8085汇编语言程序来检查一个16位数是否为回文数。该数字存储在8000H和8001H位置。

讨论

如果一个数字与其反向序列相同,则该数字为回文数。例如,5225是回文数,但ABCD不是回文数。

在这个问题中,我们取该数字并将其存储到HL寄存器对中。然后,我们对L的内容执行反向操作。如果H和更新后的L值相同,则该数字为回文数。为了检查这一点,我们对H和L执行异或运算。当结果为0时,它是回文数,否则不是回文数。

如果数字是回文数,我们将在8050H位置存储FFH,如果不是回文数,则在8050H位置存储00H。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输入

地址
数据


8000
25
8001
52


输入

地址
数据


8000
CD
8001
AB


流程图

 

程序

地址
十六进制代码
标签
助记符
注释
F000
2A, 00, 80
 
LHLD 8000H
将16位数从内存取到HL寄存器对
F003
7D
 
MOV A,L
将L寄存器内容送入A寄存器
F004
0F
 
RRC
累加器循环右移四次
F005
0F
 
RRC
 
F006
0F
 
RRC
 
F007
0F
 
RRC
 
F008
AC
 
XRA H
A寄存器与H寄存器进行异或运算
F009
3E, FF
 
MVI A,FFH
将FFH加载到A寄存器
F00B
CA, 0F, F0
 
JZ STORE
如果Z=1,跳转到STORE
F00E
AF
 
XRA A
否则将A设置为0
F00F
32, 50, 80
STORE
STA 8050H
将结果存储到8050H
F012
67
 
HLT
程序结束

输出

地址
数据


8050
FF


输出

地址
数据


8050
00


更新于: 2019年7月30日

390 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告