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 |
| … | … |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP