查找只出现一次的元素的8085程序


在这个程序中,我们将学习如何在元素数组中查找只出现一次的数字。

问题陈述

编写8085汇编语言程序,查找元素数组中只出现一次的数字。数组大小存储在F100地址;数字从F101地址开始存储。结果将存储在F150。

讨论

这个问题背后的逻辑很简单。尽管在某些情况下可能会找到一些错误的结果。如果只有一个数字出现一次,而其余数字出现偶数次,则可以找到该数字。

我们对数字进行异或运算。如果一个数字已经存在,并且我们用相同的数字对其进行异或运算,则结果为0。因此,如果相同的数字出现偶数次,我们可以得到0。在累积异或运算之后,最终数字将是频率为一的那个数字。

输入

地址
数据

.

.

.

.

.

.

F100
05
F101
0C
F102
0A
F103
01
F104
01
F105
0C

.

.

.

.

.

.

 

流程图

 

程序

地址
十六进制代码
标签
助记符
注释
F000
21, 00, F1
 
LXI H,F100
指向获取数字计数的地址
F003
AF
 
XRA A
清零累加器
F004
4E
 
MOV C,M
将计数从内存加载到C寄存器
F005
23
 
INX H
指向下一个位置
F006
46
LOOP:
MOV B,M
将内存内容加载到B寄存器
F007
A8
 
XRA B
将B寄存器与累加器进行异或运算
F008
23
 
INX H
指向下一个位置
F009
0D
 
DCR C
C寄存器减1
F00A
C2, 06, F0
 
JNZ LOOP
如果Z标志位为0,则跳转到LOOP
F00D
32, 50, F1
 
STA F150
将数字存储到F150
F010
76
 
HLT
结束程序

 

输出

地址
数据

.

.

.

.

.

.

F150
0A

.

.

.

.

.

.

 

 

 

 

 

 

 

 

 

更新于:2019年7月30日

382 次查看

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.