8085 编程2024年8月29日 | 阅读 8 分钟 让我们看一些简单的例子来演示 8085 的一些重要指令的用法。 程序中给出的内存地址用于特定的微处理器套件。 这些地址可以更改以适应您系统中可用的微处理器套件。 在内存中存储 8 位数据程序 使用直接寻址在内存中存储 8 位数据 使用间接寻址在内存中存储 8 位数据 添加两个 8 位数字示例 (2501 H) = 99H (2502 H) = 39H Result (2503 H) = 99H + 39H = D2H Since, 1 0 0 1 1 0 0 1 (99H) + 0 0 1 1 1 0 0 1 (39H) 1 1 0 1 0 0 1 0 (D2H) 程序 减去两个 8 位数字示例 (2501 H) = 49H (2502 H) = 32H Result (2503 H) = 49H - 32H = 17H 程序 添加两个 16 位数字将内存位置 2501H 和 2502H 中的 16 位数字添加到内存位置 2503H 和 2504H 中的 16 位数字。 要相加的两个数字的最高有效八位字节位于内存位置 2502H 和 4004H。 将结果存储在内存位置 2505H 和 2506H 中,最高有效字节位于内存位置 2506H 中。 示例 (2501H) = 15H (2502H) = 1CH (2503H) = B7H (2504H) = 5AH Result = 1C15 + 5AB7H = 76CCH (2505H) = CCH (2506H) = 76H 程序 使用 ADD 和 ADC 指令添加两个 16 位数字 使用 DAD 指令添加两个 16 位数字 减去两个 16 位数字示例 (2500H) = 19H (2501H) = 6AH (2504H) = 15H (2503H) = 5CH Result = 6A19H ? 5C15H = OE04H (2504H) = 04H (2505H) = OEH 程序 添加两个内存位置的内容示例 (2500H) = 7FH (2501H) = 89H Result = 7FH + 89H = lO8H (2502H) = 08H (2503H) = 01H 程序 查找数字的 1 的补码要获得数字的 1 的补码,其 0 位替换为 1,1 替换为 0。 示例 1 (2501H) = 96 H = 1001 0110 (9) (6) One's complement = 0110 1001 = 69 H Result = (2502H) = 69H 示例 2 (2501H) = E4H Result = (2502H) = 1BH 程序 该数字放置在内存位置 2501 H 中。 结果存储在内存位置 2502 H 中。 查找数字的 2 的补码通过将 1 添加到数字的 1 的补码来获得数字的 2 的补码。 示例 To find the two's complement of 96. 96 = 1001 0110 1's complement = 0110 1001 = 69 + 0000 0001 2's complement = 0110 1010 = 6A 程序 该数字放置在内存位置 2501 H 中。 结果要存储在内存位置 2502 H 中。 计算数字中 1 的个数示例 2501 H = 04 2502 H = 34 H 2503 H = A9H 2504 H = 78H 2505 H = 56H Result = 2503 H = A9H 程序 计算寄存器 D 的内容中 1 的个数,并将计数存储在寄存器 B 中。 找到两个数字中较大的一个示例 2501H = 98 H 2502H = 87H Result = 98H (2503H) 程序 第一个数字 98H 放置在内存位置 2501 H 中。 LXI H, 2501H : "Address of first number in H-L pair" MOV A, M : "1stt number in accumulator" INX H : "Address of 2nd number in H-L pair" CMP M : "compare 2nd number with 1st number" JNC AHEAD : "No, larger is in accumulator. Go to AHEAD" MOV A, M : "Yes, get 2nd number in the accumulator" STA 2503 H : "Store larger number in 2503H" HLT : "Stop" 找到两个数字中较小的一个示例 2501H = 84 H 2502H = 99 H Result = 84 H(2503H) 程序 第一个数字 84H 放置在内存位置 2501 H 中。 第二个数字 99H 放置在内存位置 2502H 中。 结果存储在内存位置 2503 H 中。 LXI H, 2501H : "Address of first number in H-L pair" MOV A, M : "1stt number in accumulator" INX H : "Address of 2nd number in H-L pair" CMP M : "compare 2nd number with 1st number" JC AHEAD : "Yes, smaller number is in accumulator. Go to AHEAD" MOV A, M : "No, get 2nd number in the accumulator" STA 2503 H : "Store smaller number in 2503H" HLT : "Stop" 计算一系列偶数的总和示例 2500 H = 4H 2501 H = 20H 2502 H = 15H 2503 H = 13H 2504 H = 22H Result = 2505 H = 20+22= 42H 程序 这些数字放置在内存位置 2501 到 2504H 中。 总和要存储在内存位置 2450H 中。 由于该系列中有 4 个数字,因此 count = 04 总和的初始值设为 00。该系列中的偶数逐个取出并添加到总和中。 计算一系列奇数的总和示例 2500 H = 4H 2501 H = 9AH 2502 H = 52H 2503 H = 89H 2504 H = 3FH Result = 2505 H = 89H + 3FH= C8H 程序 这些数字放置在内存位置 2501 到 2504H 中。 总和要存储在内存位置 2450H 中。 由于该系列中有 4 个数字,因此 count = 04 总和的初始值设为 00。该系列中的奇数逐个取出并添加到总和中。 求给定数字的平方程序 使用查找表技术找到 07(十进制)的平方。 数字 07 D 在内存中。 结果要存储在内存位置 2501H 中。 平方的表从 2600 到 2609 H 存储。 从给定的数字中分离偶数程序 让我们看一下程序,从给定的 50 个数字列表中分离偶数,并将它们存储在从 2600H 开始的另一个位置。 50 个数字列表的起始位置是 2500H。 下一个主题微处理器应用 |
我们请求您订阅我们的新闻通讯以获取最新更新。