Project

General

Profile

Ошибки и их устранение (ASM) » History » Version 2

krufter_multiclet, 04/02/2013 03:23 PM

1 1 krufter_multiclet
h1. Ошибки и их устранение (ASM)
2 1 krufter_multiclet
3 1 krufter_multiclet
1) Ошибка перехода по индексному регистру
4 1 krufter_multiclet
5 1 krufter_multiclet
h3. Описание:
6 2 krufter_multiclet
7 1 krufter_multiclet
При переходе на следующий параграф по значению индексного регистра происходит неверный переход в
8 1 krufter_multiclet
случае, если параграф имеет адрес, который занимает более 1 байта.
9 1 krufter_multiclet
Ошибка появляется при переходе по любому индексному регистру (32-47) при помощи команд перехода,
10 1 krufter_multiclet
таких как "jmp", "jne", "je", "js", "jns" и т.п.
11 1 krufter_multiclet
Например ошибка может возникнуть в следующей конструкции(при условии адрес параграфа больше 1 байта):
12 1 krufter_multiclet
<pre>
13 1 krufter_multiclet
14 1 krufter_multiclet
.text
15 1 krufter_multiclet
16 1 krufter_multiclet
pre:
17 1 krufter_multiclet
    setl #32, paragraph2
18 1 krufter_multiclet
    jmp paragraph
19 1 krufter_multiclet
complete
20 1 krufter_multiclet
21 1 krufter_multiclet
paragraph:
22 1 krufter_multiclet
    jmp #32
23 1 krufter_multiclet
complete
24 1 krufter_multiclet
25 1 krufter_multiclet
paragraph2:
26 1 krufter_multiclet
    getl 0xABCDEF12
27 1 krufter_multiclet
complete
28 1 krufter_multiclet
29 1 krufter_multiclet
</pre>