【发布时间】:2019-06-13 11:20:58
【问题描述】:
据我所知,intel 8086 pipelining 是技术
即在执行当前指令时获取下一条指令。
This 文章说流水线的优势之一是
消除欧盟的等待时间并加快处理速度。
我认为,像lea 0x7(%eax), %ecx 这样的指令可以分成几条指令,
喜欢add $0x7, %eax; lea %eax, %ecx。
我的想法)
所以,根据定义,
我认为上面的例子符合intel 8086 pipelining
的定义
因为它在一个时隙执行几条指令并且
所以像这样的操作加快了处理速度。
问题)
我很好奇下面的说明可以是流水线的例子。
main:
mov $0x2, %eax
mov $0x3, %esi
lea (%eax), %ecx # result: 2. Pipeling?
lea 0x7(%eax), %ecx # result: 9. Pipeling?
lea 0x7(%eax,%esi,), %ecx # result: 12. Pipeling?
lea 0x7(,%esi,4), %ecx # result: 19. Pipeling?
lea 0x7(%eax,%esi,4), %ecx # result: 21. Pipeling?
【问题讨论】:
-
流水线是CPU的一个特性,它不适用于单条指令。
-
并不特定于 intel 或 x86,它被广泛使用。
-
虽然我认为 8086 没有使用它,但它有一个小的预取缓冲区......
标签: assembly intel x86-16 disassembly pipelining