8085程序:将位块从源位置移动到目标位置
问题陈述 − 将从8050H到805FH存储的16个数据块移动到从8070H到807FH的目标位置。

| 地址 | 十六进制代码 | 标签 | 助记符 | T状态 | 注释 |
|---|---|---|---|---|---|
| 8000 | 21 50 80 |
START | LXI H, 8050H | 10 | 将HL寄存器对设置为源内存指针。 |
| 8003 | 11 70 80 |
LXI D, 8070H | 10 | 将DE寄存器对设置为目标内存指针 | |
| 8006 | 06 10 |
MVI B, 10H | 7 | 将B寄存器设置为计数器,计数16个字节 | |
| 8008 | 7E | LOOP | MOV A, M | 7 | 从源获取数据字节。 |
| 8009 | 12 | STAX D | 7 | 将数据字节存储到目标位置 | |
| 800A | 23 | INX H | 6 | 将HL指向下一个源位置 | |
| 800B | 13 | INX D | 6 | 将DE指向下一个目标位置 | |
| 800C | 05 | DCR B | 4 | 计数器减1 | |
| 800D | C2 08 80 |
JNZ LOOP | 10 | 如果计数器不为0,则返回传输下一个字节。 | |
| 8010 | 76 | HLT | 5 | 停止 | |
| 总共17个字节 | 总共69个T状态 |
总T状态 = T循环外 + T循环内
T循环外 = (10+10+7+5) = 32
T循环内 = ((7+7+6+6+4+10) * 16 - 3) = (40 * 16 - 3) = 637
所以总T状态 = 32 + 637 = 669
主程序从8000H – 8010H位置开始。
源数据块从8050H – 805FH。
目标块从8070H – 807FH
| 输入 | 输出 | ||
|---|---|---|---|
| 地址 | 值 | 地址 | 值 |
| 8050H | 00 | 8070H | 00 |
| 8051H | 11 | 8071H | 11 |
| 8052H | 22 | 8072H | 22 |
| 8053H | 33 | 8073H | 33 |
| 8054H | 44 | 8074H | 44 |
| 8055H | 55 | 8075H | 55 |
| 8056H | 66 | 8076H | 66 |
| 8057H | 77 | 8077H | 77 |
| 8058H | 88 | 8078H | 88 |
| 8059H | 99 | 8079H | 99 |
| 805AH | AA | 807AH | AA |
| 805BH | BB | 807BH | BB |
| 805CH | CC | 807CH | CC |
| 805DH | DD | 807DH | DD |
| 805EH | EE | 807EH | EE |
| 805FH | FF | 807FH | FF |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP