6800的编程示例
现在,在本节中,我们将看到如何使用MotorolaM6800微处理器添加多字节数字。
添加多字节编号
在此示例中,我们使用4字节数字(562F7A89)16和(21FBA9AF)16
首先,在内存中,我们存储字节计数,然后存储不同段中的数字(从最低有效字节到最高有效字节)。因此,在存储数据之后,内存结构将如下所示
。
。
。
。
。
现在,我们正在编写一个程序,将这两个4字节数字相加并将结果存储在5090H及以后的位置。
程序
CLC LDX#$5050 LOOP: LDAA $0, X ADCA $20, X STAA $40, X INX DEC$5000 BNELOOP CLR$40, X BCCDONE INC$40, X DONE: WAI
输出结果
。
。
。
。
。
。
BlockExchange程序
现在,我们将看到如何使用M6800微处理器交换来自两个不同块的每个元素的内容。
每个块的项目数在位置5000H处给出,而块在位置5050H和5070H处给出。
因此,在交换内存中的项目之前,看起来像这样
。
。
。
。
。
。
现在,我们正在编写一个程序来交换块内容。
程序
LDX#$5050 LOOP: LDAA 0, X LDAB $20 X STAA $20, X STAB $0, X INX DEC$5000 BNELOOP WAI
输出结果
。
。
。
。
。
。
移动数据块
让我们看看M6800微处理器程序的另一个示例。这里的程序是将数据块移动到另一个位置。有一个假设,即源和目标之间有足够的距离。因此,块不重叠。基本上,块移动不是完全移动,而是将数据复制到其他位置。
块中的项目数在位置5000H处给出,而块在位置5050H处给出。
因此,在移动之前,内存中的项目看起来像这样。
。
。
。
。
现在,我们正在编写一个程序,将块内容移动到其他位置。
程序
LDX#$5050 LOOP: LDAA 0, X STAA $20, X INX DEC$5000 BNELOOP WAI
输出结果
。
。
。
。
。
。