Простейший счетчик

LD A, N

LD B, N

INC A

DEC B

JR NZ, DIS

LD (NN), A

RET

62, 15

6, 38

60

5

32, -4

50,0, 64

201

N=5 начало отсчета

N=38 количество раз, которое повториться цикл

Увеличение N (начальное равно 5)

Уменьшение N=38 до 0

Вернуться на 4 байта назад (считая с –4 получим 60)

Регистр A загрузить в ячейку адресом (0, 64)=16384

Возврат в BASIC

На BASIC эквивалент будет выглядеть следующим образом:

10 LET a=15

20 FOR f=38 to 0 STEP –1

30 LET a=a+1

40 NEXT f

50 PRINT a

Если после выполнения приведенной программы на Assembler выполнить на BASIC команду PRINT PEEK 16384 то ответ будет 53. Надо помнить, что в данной таблице –4 вводится с помощью BASIC, а в памяти нет отрицательных чисел, поэтому реально –4 надо заменять на 256-4=252.

NZ – условие «не нуль» (not zero), то есть если регистр B достиг нуля, то устанавливается флаг нуля и условие «не нуль» проскакивает и программа кончается.

DEC B стремиться к нулю

A стремиться к 255

15 – начало счета

38 – длина счета

LD (NN), A выводит регистр A в ячейку с номером 16384

 

 

Используются технологии uCoz