dword ptr беспорядок использования

после еще нескольких экспериментов я обнаружил, что это зависит от порядка реализации, поэтому я переместил ** DEPS ** вверх и теперь он работает.

Таким образом, решение легко:

dependencies {
 implementation fileTree(dir: 'libs', include: ['*.jar'])
**DEPS**
 def room_version = "1.1.1"

 implementation "android.arch.persistence.room:runtime:$room_version"
 annotationProcessor "android.arch.persistence.room:compiler:$room_version"
 implementation 'com.google.code.gson:gson:2.8.2'
 implementation 'com.android.support:appcompat-v7:28.0.0'
 implementation 'com.android.support:support-v4:28.0.0'

 implementation "android.arch.lifecycle:extensions:1.1.1"
 implementation "android.arch.lifecycle:viewmodel:1.1.1"
 annotationProcessor "android.arch.lifecycle:compiler:1.1.1"

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
 implementation 'com.facebook.android:facebook-android-sdk:4.41.0'
}

Надеюсь, что это кому-нибудь поможет.

18
задан sharptooth 27 March 2009 в 17:58
поделиться

1 ответ

В обоих случаях Вы просите, чтобы процессор переместил значение от указанного адреса. Это - один уровень абстракции. В первом случае Вы просите, чтобы это взяло адрес от указанного регистра. Во втором случае Вы указываете смещение непосредственно.

процессоры x86 не поддерживают двойную косвенность уровня, таким образом, не возможно запросить загрузить значение из адреса, указанного где-нибудь в памяти - необходимо загрузить адрес на регистр.

Под многими ассемблерами (MASM и встроенный в VC ++ ассемблер, например) Вы могли также записать просто

mov eax, dword ptr some_variable

без скобок это означало бы то же.

Вы могли записать

move eax, dword ptr [variable][ebx]

это сообщило бы, чтобы взять адрес "переменной", затем добавленная стоимость ebx и использовать сумму в качестве адреса, из которого можно загрузить значение. Это часто используется для доступа к элементам массива индексом.

Во всех этих случаях процессор сделал бы, то же - загружает значение из указанного адреса. Это - один уровень абстракции каждый раз.

12
ответ дан 30 November 2019 в 09:28
поделиться
Другие вопросы по тегам:

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