2

我希望使用 LODS 操作码将双字节从 FS 加载到 eax。与 LODS 一起使用的默认段是 DS,我希望用 FS 覆盖它。如何使用 MASM 操作码来做到这一点?

00000000 (02) 6a30                     PUSH 0×30
00000002 (01) 5e                       POP ESI
00000003 (02) 64ad                     LODS EAX, [FS:ESI]

来自这里http://www.ragestorm.net/blogs/?p=369

非常感谢,迈克尔·恩斯特勒

4

2 回答 2

3

1)以后,如果可能的话,请记得发布代码片段。它总是有帮助的:)

2) 16 位实模式 LODS* 指令始终假定 DS、ES 和 AX。你无法改变这一点。

3) 如果你想使用 FS,你可能还需要 "ASSUME NOTHING" 指令。例如:

ASSUME FS:NOTHING
MOV EAX, FS:[0]
ASSUME FS:ERROR

'希望有帮助.. PSM

PS:如果你只是想学习汇编,我强烈建议你尝试 32 位保护模式。如果您有兴趣,这是一个很好的资源:

于 2012-07-14T17:04:01.510 回答
1

好的,我找到了答案。

lods dword ptr fs:[esi]
于 2012-07-14T17:20:59.990 回答