gpt4 book ai didi

assembly - 为什么存在 REP LODS AL 指令?

转载 作者:行者123 更新时间:2023-12-03 21:50:50 24 4
gpt4 key购买 nike

换句话说,在任何情况下我可能需要这个指令吗?

从英特尔说明手册中,这是指令的作用:

Load (E)CX bytes from DS:[(E)SI] to AL.



以 NASM 中的以下示例为例:
section .data
src: db 0, 1, 2, 3

section .code
mov esi, src
mov ecx, 4
rep lodsb ; mov al, byte[esi + ecx -1]; ecx++

而指令 rep lodsb正在执行,我无法控制 al 中加载的值.我所能做的就是等待,直到指令终止以获取 al 的最后一个值。 ,当然我可以直接得到,没有循环。

其他家庭成员也有同样的问题: REP LODS AX , REP LODS EAXREP LODS RAX .

最佳答案

在某些情况下,从内存中读取可能会产生副作用。例如,如果内存映射到硬件寄存器,就会发生这种情况。确切的副作用将取决于硬件。所以rep lodsb在需要副作用发生但不需要读取的值的极少数情况下可能很有用。

关于assembly - 为什么存在 REP LODS AL 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44486459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com