NAND2Тетрис Хак

Как мне пропустить 2 команды в хаке, если я не знаю точную строку нет. из которого код я хочу перейти к.

например.

30.@33
31.D;JGT
32.M=M-1
33.M=M+1

Но я не знаю, линия нет. Сейчас я нахожусь на (30), я просто хочу пропустить следующую строку кода (2 шага вперед вместо 1), если D;JGT выполнен.

1 ответ

Решение

Используйте символическую метку:

    @your_label
    D;JGT
    M=M+1
    M=M+1

(your_label)

Ассемблер выяснит адрес your_label и вставит его в @-op. Вам не нужно отслеживать, по какому адресу вы находитесь.

Другие вопросы по тегам