В программе сравнения двух строк символов для МП 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
|
0А
|
|
00
|
OB
|
CMPA $10, X
|
А1
|
ОС
|
|
10
|
0D
|
BNE DONE
|
26
|
0Е
|
|
07
|
0F
|
INX
|
08
|
10
|
DECB
|
5А
|
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
.jpg)