2012-03-24 4 views
2

Я изучаю ASM 8086 теоретически на старшей школе (MASM, x86).Инструкция по сборке mov register, [зарегистрироваться] [зарегистрироваться]

.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

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

[ebx][esi] является то, что обозначает [ebx+esi] и [] является оператором указателя.

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