我希望使用 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
非常感谢, 迈克尔·恩斯特勒
最佳答案
1)以后,如果可能的话,请记得发布代码片段。它总是有帮助的:)
2) 16 位实模式 LODS* 指令始终采用 DS 、 ES 和 AX。您无法更改此设置。
3) 如果您希望使用 FS,您可能还需要“ASSUME NOTHING”指令。例如:
ASSUME FS:NOTHING
MOV EAX, FS:[0]
ASSUME FS:ERROR
'希望有帮助..PSM
PS: 如果您只是想学习汇编程序,我强烈建议您尝试 32 位保护模式。如果您有兴趣,这里有一个很好的资源:关于assembly - 来自 FS (MASM) 的 LODS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485583/