汇编语言FPU寄存器栈(register stack)

  • 内容
  • 评论
  • 相关

FPU 不使用通用寄存器 (EAX、EBX 等等)。反之,它有自己的一组寄存器,称为寄存器栈 (register stack)。数值从内存加载到寄存器栈,然后执行计算,再将堆栈数值保存到内存。

FPU 指令用后缀 (postfix) 形式计算算术表达式,这和惠普计算器的方法大致相同。比如,现有一个中缀表达式 (infix expression):(5*6)+4,其后缀表达式为:

5 6 * 4 +

中缀表达式 (A+B)*C 要用括号来覆盖默认的优先级规则(乘法在加法之前)。与之等效的后缀表达式则不需要括号:

A B + C *

表达式堆栈

在计算后缀表达式的过程中,用堆栈来保存中间结果。下图展示了计算后缀表达式 56*4- 所需的步骤。堆栈条目被标记为 ST(0) 和 ST(1),其中 ST(0) 表示堆栈指针通常所指位置。

计算后缀表达式56*4-

本文标题:汇编语言FPU寄存器栈(register stack)

本文地址:https://www.hosteonscn.com/5583.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注