8085程序,用于获取数组中介于3CH和64H之间的所有数字
在这里,我们将了解如何使用8085从数组中获取所有介于3CH和64H之间的数字。
问题陈述
编写8085程序,从数组中获取所有大于或等于3CH且小于64H的数字。数字从8001开始存储,8000存储数组的大小,结果将从9000开始存储。
讨论
为了解决这个问题,我们将从内存中获取数字。然后将其与3C进行比较。如果进位标志被设置,则表示该数字小于3C,因此只需跳过它。否则将其与64H进行比较,现在如果进位标志未设置,则表示该数字较大,因此跳过它,否则我们将数字存储到正确的位置。
输入
| 地址 | 数据 |
|---|---|
| … | … |
| 8000 | 0A |
| 8001 | 89 |
| 8002 | 56 |
| 8003 | 23 |
| 8004 | 48 |
| 8005 | 3D |
| 8006 | 2A |
| 8007 | 4F |
| 8008 | 59 |
| 8009 | 67 |
| 800A | 72 |
| … | … |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | | LXI H,8000 | 加载数组的大小 |
| F003 | 4E | | MOV C,M | 将大小存储到C中 |
| F004 | 11, 00, 90 | | LXI D,9000 | 加载目标地址 |
| F007 | 23 | LOOP | INX H | 指向下一个位置 |
| F008 | 7E | | MOV A,M | 将内存中的数字取到A中 |
| F009 | FE, 3C | | CPI 3CH | 与3C进行比较 |
| F00B | DA, 15, F0 | | JC SKIP | 如果数字小,则跳过 |
| F00E | FE, 64 | | CPI 64H | 否则与64H进行比较 |
| F010 | D2, 15, F0 | | JNC SKIP | 如果数字大,则跳过 |
| F013 | 12 | | STAX D | 否则将A存储到DE指向的内存中 |
| F014 | 13 | | INX D | 指向下一个位置 |
| F015 | 0D | SKIP | DCR C | 将计数器减1 |
| F016 | C2, 07, F0 | | JNZ LOOP | 如果c不为0,则跳转到LOOP |
| F019 | 76 | | HLT | 终止程序 |
输出
| 地址 | 数据 |
|---|---|
| … | … |
| 9000 | 56 |
| 9001 | 48 |
| 9002 | 3D |
| 9003 | 4F |
| 9004 | 59 |
| … | … |
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP