Инструкция по сборке Mov регистр, [регистр] [регистр] - PullRequest
2 голосов
/ 25 марта 2012

Я изучаю ASM 8086 теоретически в старшей школе (MASM, x86).

.data
var  dd   421,422, 443, 442, 444, 217, 432

.code
; some code
mov  esi, (OFFSET var)+4
mov  ebx, 4
mov  edx, [ebx][esi]   ; that's the line I don't uderstand

Я запустил эту программу и после этого EDX == 000001BBh == 443 Что означает последняя строка в этом коде? Что это делает?

1 Ответ

1 голос
/ 25 марта 2012

esi указывает 4 байта после переменной, что составляет 422.ebx равно 4.

[ebx][esi] - это то, что обозначает [ebx+esi], а [] - оператор указателя.

Все это вместе сделает [ebx][esi] точку, но 4 байтадальше 422 и, очевидно, там можно найти 443.

...