I’m studying ASM 8086 theoretically on highschool (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
I ran that program and after that EDX == 000001BBh == 443
What’s the meaning of last line in that code? What does it do?
esipoints 4 bytes after var, which is422.ebxis 4.[ebx][esi]is something which denotes[ebx+esi]and the[]is a pointer operator.All this together will make
[ebx][esi]point yet 4 bytes farther than422and obviously443can be found there.