Целевой адрес найден по TA = PC + 4(offset)
Итак, offset = (TA - PC)/4
0x00401200 - ваш целевой адрес. Мы видим, что это идет назад, поэтому мы должны убедиться, что наш ответ отрицательный. В этом случае я предпочитаю делать PC - TA, а затем найти дополнение 2s.
PC - TA : 0x0040122C - 0x00401200 = 0x002C
Мы можем найти дополнение 2s, выполнив
0xFFFF(16)-0x002C = 0xFFFD4
Теперь мы можем разделить на 4, чтобы найти ТА, сделав правильный сдвиг на 2 места
1111 1111 1111 1101 0100 -> 11 1111 1111 1111 0101
The offset = 0xFFF5
Я закончил со смещением = -11 (0xFFF5). Однако, если я подключу это обратно в
TA = PC + 4 (смещение), я получаю 0x401200.