8085程序用于统计小于0A的元素个数
在本节中,我们将使用8085统计小于0AH的元素个数。
问题陈述
存在一个包含一些元素的数组。编写8085汇编语言程序,统计小于0AH的元素个数。
讨论
数组从F051H开始存储。F050存储数组的大小。逻辑很简单。首先,我们将数组大小加载到B寄存器中。C寄存器将统计小于0AH的元素个数。我们将从内存中逐个读取数字,然后将其与0A进行比较。如果CY标志被置位,则表示累加器中存储的值较小,因此将C加1,否则忽略它。
输入
地址 | 数据 |
---|---|
F050 | FE |
F051 | 02 |
F052 | 07 |
F053 | A5 |
F054 | 48 |
F055 | 08 |
流程图
程序
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
8000 | 21, 50, F0 | | LXI H,F050 | 指向内存位置F050 |
8003 | 46 | | MOV B,M | 将数组大小加载到B寄存器 |
8004 | 0E, 00 | | MVI C,00H | 清零C寄存器,用于计数 |
8006 | 23 | LOOP | INX H | 指向数组的第一个元素 |
8007 | 7E | | MOV A,M | 将内存元素加载到累加器 |
8008 | FE, 0A | | CPI 0AH | 比较累加器和0AH |
800A | D2, 0E, 80 | | JNC SKIP | 如果数字较大,则跳过 |
800D | 0C | | INR C | 将C加1 |
800E | 05 | SKIP | DCR B | 将B减1 |
800F | C2, 06, 80 | | JNZ LOOP | 如果数组未完成,则跳转到Loop |
8012 | 79 | | MOV A,C | 将C中的数字移动到A |
8013 | 32, 50, 51 | | STA F150 | 将结果存储在F150H |
8016 | 76 | | HLT | 终止程序。 |
输出
地址 | 数据 |
---|---|
F150 | 03 |
广告