8085程序查找数字的n次幂
在本程序中,我们将了解如何查找数字的n次幂。
问题陈述
编写8085汇编语言程序以查找数字的n次幂。底数存储在8000H位置,指数存储在8001H。将结果存储在8002H。
讨论
在8085中,我们不能直接执行乘法运算。这里我们正在编写一个子程序,通过重复加法来执行乘法。要执行数字的n次幂,我们必须将数字乘以n次。n值用作计数器。如果底数为03H,指数为05H,则结果为F3H (243D)
输入
| 地址 | 数据 |
|---|---|
| … | … |
| 8000 | 03 |
| 8001 | 05 |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | | LXI H,8000H | 初始化HL对 |
| F003 | 46 | | MOV B,M | 将底数取到B |
| F004 | 23 | | INX H | 指向下一个位置 |
| F005 | 4E | | MOV C,M | 将指数取到C |
| F006 | 16, 01 | | MVI D, 01H | 用01H初始化D |
| F008 | CD, 12, F0 | LOOP | CALL MUL | 调用子程序进行乘法 |
| F00B | 0D | | DCR C | 将C减1 |
| F00C | C2, 08, F0 | | JNZ LOOP | 跳转到Loop |
| F00F | 23 | | INX H | 指向下一个位置 |
| F010 | 72 | | MOV M,D | 将D存储到内存中 |
| F011 | 76 | | HLT | 终止程序 |
| F012 | 58 | MUL | MOV E,B | 将B加载到E |
| F013 | AF | | XRA A | 清除累加器以存储结果 |
| F014 | 82 | ML | ADD D | 将D加到A |
| F015 | 1D | | DCR E | 递减E |
| F016 | C2, 12, F0 | | JNZ ML | 如果Z = 0,则跳转到ML |
| F019 | 57 | | MOV D,A | 将A的内容传输到D |
| F01A | C9 | | RET | 返回结果 |
输出
| 地址 | 数据 |
|---|---|
| 8002 | F3 |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP