Ошибки и их устранение (ASM)¶
1) Ошибка перехода по индексному регистру
Описание:¶
При переходе на следующий параграф по значению индексного регистра происходит неверный переход в
случае, если параграф имеет адрес, который занимает более 1 байта.
Ошибка появляется при переходе по любому индексному регистру (32-47) при помощи команд перехода,
таких как "jmp", "jne", "je", "js", "jns" и т.п.
Например ошибка может возникнуть в следующей конструкции(при условии адрес параграфа больше 1 байта):
.text pre: setl #32, paragraph2 jmp paragraph complete paragraph: jmp #32 complete paragraph2: getl 0xABCDEF12 complete
Способ устранения ошибки:¶
Для того, чтобы осуществить переход по индексному регистру необходимо заменить конструкцию перехода,
например "jmp #32" нужно заменить на строки "rdl #32" и "jmp @1":
.text pre: setl #32, paragraph2 jmp paragraph complete paragraph: rdl #32 jmp @1 complete paragraph2: getl 0xABCDEF12 complete