Z-80 中的块交换
在本节中,我们将了解如何使用 Zilog Z-80 微处理器交换两个不同块中每个元素的内容。
每个块中的项目数量在 5000H 位置给出,块位于 5050H 和 5070H 位置。
因此,在交换内存中的项目之前,看起来像这样
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | AFH |
| 5071H | A9H |
| 5072H | FBH |
| 5073H | 21H |
| . . . |
现在,我们正在 8000H 位置编写一个程序来交换块内容。
程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| 8000 | 21 00 50 | LD HL, 5000H | 将 HL 对加载为 5000H | |
| 8003 | DD 21 50 50 | LD IX, 5050H | 将索引寄存器设置为 5050H | |
| 8007 | DD 7E 00 | LD A, (IX+00H) | 将累加器加载为 IX + 00H | |
| 800A | DD 46 20 | LD B, (IX+20H) | 将 B 加载为 IX + 20H | |
| 800D | DD 70 00 | LOOP | LD (IX+00H), B | 将 B 寄存器内容加载到 IX + 00H |
| 8010 | DD 77 20 | LD (IX+20H), A | 将累加器内容加载到 IX + 20H | |
| 8013 | DD 23 | INC IX | 增加 IX 寄存器 | |
| 8015 | 35 | DEC (HL) | 减少内存内容,由 HL 对指向的指针 | |
| 8016 | C2 07 80 | JP NZ, LOOP | 当零标志关闭时,跳转到循环 | |
| 8019 | 76 | HALT | 停止程序 |
输出
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | AFH |
| 5051H | A9H |
| 5052H | FBH |
| 5053H | 21H |
| . . . | |
| 5070H | 89H |
| 5071H | 7AH |
| 5072H | 2FH |
| 5073H | 56H |
| . . . |
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP