使用查找表查找数字的平方值的8085程序
现在让我们来看一个Intel 8085微处理器的程序。这个程序主要是为了求一个数字的平方。
问题陈述
编写8085汇编语言程序,使用查找表查找数字的平方。
讨论
在这个例子中,我们使用查找表来查找数字的平方。这个程序的主要限制是它只能找到0-F范围内的平方。当输入大于F时,它将失败。我们将平方结果存储到内存中。当数字大于F时,我们将FFH存储到内存中以指示错误。
我们从8000H位置获取数字,查找表存储在9000H位置。
查找表如下所示。
| 数字 | 平方值 |
|---|---|
| 00 | 00 |
| 01 | 01 |
| 02 | 04 |
| 03 | 09 |
| 04 | 10 |
| 05 | 19 |
| 06 | 24 |
| 07 | 31 |
| 08 | 40 |
| 09 | 51 |
| 0A | 64 |
| 0B | 79 |
| 0C | 90 |
| 0D | A9 |
| 0E | C4 |
| 0F | E1 |
输入
第一个输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | 06 |
| . . . | . . . |
第二个输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | 0C |
| . . . | . . . |
第三个输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | 25 |
| . . . | . . . |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21,00, 90 | LXIH, 9000H | 指向查找表地址 | |
| F003 | 3A,00, 80 | LDA 8000H | 获取数据 | |
| F006 | FE,0F | CPI 0FH | 检查输入是否> 15D | |
| F008 | DA,13, F0 | JC AFTER | 检查数字是否大于0A | |
| F00B | 3E, FF | MVIA, FFH | 将FFH加载到A | |
| F00D | 32,50, 80 | STA 8050H | 为大于15D的数字存储FFH | |
| F010 | C3,1B, F0 | JMP DONE | 结束程序 | |
| F013 | 4F | AFTER | MOVC, A | 添加所需的地址 |
| F014 | 06,00 | MVIB,00H | 清除寄存器B | |
| F016 | 09 | DAD B | 将BC与HL对相加 | |
| F017 | 7E | MOVA, M | 从查找表中获取结果 | |
| F018 | 32,50, 80 | STA 8050H | 存储结果 | |
| F01B | 76 | DONE | HLT | 终止程序 |
输出
第一个输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | 24 |
| . . . | . . . |
第二个输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | 90 |
| . . . | . . . |
第三个输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | FF |
| . . . | . . . |
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP