6800的编程示例

现在,在本节中,我们将看到如何使用Motorola M6800微处理器添加多字节数字。

  • 添加多字节编号

在此示例中,我们使用4字节数字(56 2F 7A 89)16和(21 FB A9 AF)16

首先,在内存中,我们存储字节计数,然后存储不同段中的数字(从最低有效字节到最高有效字节)。因此,在存储数据之后,内存结构将如下所示

地址

5000小时
04小时




5050小时
89小时
5051H
7AH
5052H
2FH
5053H
56小时




5070小时
美国空军
5071H
A9H
5072H
跳频
5073H
21小时





现在,我们正在编写一个程序,将这两个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

输出结果

地址

5000小时
04小时




5050小时
89小时
5051H
7AH
5052H
2FH
5053H
56小时




5070小时
美国空军
5071H
A9H
5072H
跳频
5073H
21小时




5090小时
38小时
5091H
24小时
5092H
2BH
5093H
78小时
5094H
00小时


  • BlockExchange程序

现在,我们将看到如何使用M6800微处理器交换来自两个不同块的每个元素的内容。

每个块的项目数在位置5000H处给出,而块在位置5050H和5070H处给出。

因此,在交换内存中的项目之前,看起来像这样

地址

 5000小时
04小时




5050小时
89小时
5051H
7AH
5052H
2FH
5053H
56小时




5070小时
美国空军
5071H
A9H
5072H
跳频
5073H
21小时





现在,我们正在编写一个程序来交换块内容。

程序

      LDX#$5050
     
LOOP: LDAA 0, X
      LDAB $20 X

      STAA $20, X
      STAB $0, X

      INX
      DEC$5000
      BNELOOP
      WAI

输出结果


地址

 5000小时
04小时




5050小时
美国空军
5051H
A9H
5052H
跳频
5053H
21小时




5070小时
89小时
5071H
7AH
5072H
2FH
5073H
56小时





  • 移动数据块

让我们看看M6800微处理器程序的另一个示例。这里的程序是将数据块移动到另一个位置。有一个假设,即源和目标之间有足够的距离。因此,块不重叠。基本上,块移动不是完全移动,而是将数据复制到其他位置。

块中的项目数在位置5000H处给出,而块在位置5050H处给出。

因此,在移动之前,内存中的项目看起来像这样。

地址

 5000小时
04小时




5050小时
89小时
5051H
7AH
5052H
2FH
5053H
56小时





现在,我们正在编写一个程序,将块内容移动到其他位置。

程序

LDX#$5050
LOOP: LDAA 0, X
STAA $20, X
INX
DEC$5000
BNELOOP

      WAI

输出结果

地址

 5000小时
04小时




5050小时
89小时
5051H
7AH
5052H
2FH
5053H
56小时




5070小时
89小时
5071H
7AH
5072H
2FH
5073H
56小时