8085程序:反转16位数
在本程序中,我们将学习如何使用8085反转16位数的数字。
问题陈述
编写8085汇编语言程序,反转存储在8000H-8001H位置的16位数。并将结果存储在8050H-8051H。
讨论
这里的任务很简单。8085中有一些旋转指令。RRC、RLC分别用于将累加器内容向右和向左旋转,不带进位。我们可以使用RRC或RLC来执行此任务。在最终结果中,H和L的每一位都反转了,H和L的值也反转了。因此完成了全部反转操作。
输入
地址 | 数据 |
---|---|
… | … |
8000 | AB |
8001 | CD |
… | … |
流程图
程序
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
F000 | 2A, 00, 80 | | LHLD 8000H | 将数字放入HL寄存器对 |
F003 | 7D | | MOV A,L | 将L加载到A |
F004 | 0F | | RRC | 向右旋转四次,不带进位 |
F005 | 0F | | RRC | |
F006 | 0F | | RRC | |
F007 | 0F | | RRC | |
F008 | 6F | | MOV L,A | 将反转后的数字再次存储到L |
F009 | 7C | | MOV A,H | 将H加载到A |
F00A | 0F | | RRC | 向右旋转四次,不带进位 |
F00B | 0F | | RRC | |
F00C | 0F | | RRC | |
F00D | 0F | | RRC | |
F00E | 65 | | MOV H,L | 将L的值赋给H |
F00F | 6F | | MOV L,A | 将反转后的数字存储到L |
F010 | 22, 50, 80 | | SHLD 8050H | 将结果存储到内存 |
F013 | 76 | | HLT | 终止程序 |
输出
地址 | 数据 |
---|---|
… | … |
8050 | DC |
8051 | BA |
… | … |
广告