.data
myBytes BYTE 15h, 25h, 35h, 55h
myWords WORD 8Ch, 6Bh, 77h, 3Ah, 52h
myDoubles DWORD 2, 4, 6, 8, 10
myPointer DWORD myDoubles
.code
mov esi, OFFSET myBytes + 2
mov ax, [esi] ; a. AX =
mov eax, DWORD PTR myWords ; b. EAX =
mov esi, myPointer
mov ax, [esi + 6] ; c. AX =
mov ax, [esi – 4] ; d. AX =
这个[esi – 4]是什么意思?类似的还有[myWords-4],怎么会有减号?
还有mov ax, [esi + 6]的结果AX是多少?0400h?
a. 5535h
b. 006B 008Ch
c. 0000h
d. 003Ah
汇编 [esi – 4] 是什么意思?
答案:3 悬赏:50
解决时间 2021-02-04 18:18
- 提问者网友:花之森
- 2021-02-04 04:30
最佳答案
- 二级知识专家网友:短发女王川岛琦
- 2021-02-04 05:29
mov ax, [esi – 4]
注意不是mov ax, esi – 4
mov ax, [esi – 4] esi-4 内存地址指向的值给ax
mov ax, esi – 4 esi-4的值给ax
注意不是mov ax, esi – 4
mov ax, [esi – 4] esi-4 内存地址指向的值给ax
mov ax, esi – 4 esi-4的值给ax
全部回答
- 1楼网友:有钳、任性
- 2021-02-04 06:42
这个是编译器生成的吧,高级语言中的auto变量,用汇编语言表示就是用一个指针指向堆栈,-4,-6区分几个不同的变量
例如,c语言的变量类型static,auto,register,extern
默认的auto类型的变量就是处于栈内存里面
- 2楼网友:年轻没有失败
- 2021-02-04 05:39
mov [esi+000002f0],ecx是将ecx的值送入ds:[esi+000002f0]指向的内存。
16位中这样写:mov [si+2f0],cx
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯