Кто-то может объяснить этот непосредственно собранный код операции x86 JMP?

componentWillReceiveProps устарела, его следует заменить на getDerivedStateFromProps или componentDidUpdate, в зависимости от случая.

Поскольку preloadImages является асинхронным побочным эффектом, его следует вызывать как в componentDidMount, так и в componentDidUpdate:

  componentDidMount() {
    this.preloadImages(this.props.singleBlogPost.media);
  }

  componentDidUpdate() {
    this.preloadImages(this.props.singleBlogPost.media);
  }
8
задан Mr. Shickadance 13 February 2009 в 07:49
поделиться

2 ответа

0x66 указывает, что JMP (0xEA) относится к шести байтам. Значение по умолчанию относится к 64K (16 битов) в реальном режиме или к 32 битам в защищенном режиме (если я вспоминаю хорошо). Увеличивая его, он также включает дескриптор сегмента, индекс сегмента или в GDT или в LDT, что означает, что этот код делает то, что традиционно называют "прыжком в длину": переход, которые пересекаются вне сегментов в x86 архитектуре. Сегмент, в этом случае, указывает на вторую запись на GDT. Если Вы посмотрите, то прежде в той программе, Вы будете, вероятно, видеть, как GDT определяется с точки зрения начального адреса сегмента и длины (взгляд в руководстве Intel для изучения таблиц GDT и LDT, запись на 32 бита, описывающая каждый сегмент).

12
ответ дан 5 December 2019 в 12:13
поделиться

Я немного сталкиваюсь с этим. Некоторые ассемблеры переходят только к LABEL. В этом случае человек хочет совершить абсолютный переход к определенному жестко заданному смещению. jmp TARGET_ADDRESS не сработает, я предполагаю, поэтому они просто поместили его в байты, чтобы обойти эту проблему.

2
ответ дан 5 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: