Motorola 6800 (пример 12)

В программе сравнения двух строк символов для МП Motorola 6800 предполагается, что строки расположены в памяти на расстоянии не более 256 ячеек друг от друга. Это предположение позволяет указывать расстояние между строками в виде 8 -битного смещения. На рис. 5.47 приведен результат ассемблирования программы. Следует обратить внимание на то, что в команде CLR $ 40 требуется задавать 16-битный адрес (0040), даже если ячейка 40 находится на нулевой странице. В МП Motorola 6800 для любой из команд с одним операндом ОЧИСТИТЬ, ДОПОЛНЕНИЕ, ОТРИЦАНИЕ, ЦИКЛИЧЕСКИЙ СДВИГ ВЛЕВО, ЦИКЛИЧЕСКИЙ СДВИГ ВПРАВО, АРИФМЕТИЧЕСКИЙ СДВИГ ВЛЕВО, АРИФМЕТИЧЕСКИЙ СДВИГ ВПРАВО И ТЕСТ

Шестнадцати­ричный адрес ячейки Памяти

Мнемонический код операции

Шестнадцати­ричный код содержимого памяти

00

LDAA #$SFF

86

01

 

FF

02

STAA $40

97

03

 

40

04

LDAB $41

D6

05

 

41

06

LDX #$42

СЕ

07

 

00

08

 

42

09

PATTC LDAA X

А6

 

00

OB

CMPA $10, X

А1

ОС

 

10

0D

BNE DONE

26

 

07

0F

INX

08

10

DECB

11

BNE PATTC

26

12

 

F6

13

CLR $40

7F

14

00

15

 

40

16

DONE SWI

3F

Рис. 5.47. Результат ассемблирования программы сравнения строк символов для МП Motorola 6800

нельзя использовать адресацию нулевой страницы. В МП Motorola 6800 любая из этих команд может работать с данными, находящимися в памяти (в отличие от МП Intel 8080), но при этом в команде должен быть задан 16-битный прямой адрес или индексируемое смещение. Motorola 6800 пример 12