昏昏暗暗 2023-03-17 10:38 采纳率: 81%
浏览 21
已结题

11111111111111111111111

img


请问这种浮点型汇编指令怎么理解的?
比如 操作数的none是什么意思?
麻烦将这几个指令的操作数都解答一下,不知道怎么理解浮点型的指令,要怎么读他呢?总不能是fadd是浮点型加法指令,然后none,在往后就不知道怎么读出来理解了?给我一个fadd汇编指令,都不知道怎么相加,什么是实型数,麻烦多给几个例子,并且说下怎么读他,谢谢了,

  • 写回答

5条回答 默认 最新

  • MarkHan_ 2023-03-17 10:55
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    汇编指令中的操作数表示指令所需要的参数,它们告诉CPU执行什么样的操作。在浮点型汇编指令中,操作数通常表示浮点数或存储器中的数据。下面是对各个操作数的解释:

    • (none):指令不需要操作数,例如fadd指令。这表示要将堆栈上的两个值相加并将结果推回堆栈。
    • st(num):表示堆栈中第num个浮点数寄存器。num的取值范围是0~7,因为x87浮点栈共有8个寄存器st(0)到st(7)。
    • memory(real):表示存储器中的实型数。real表示实型数在存储器中的地址。
    • memory(integer):表示存储器中的整型数。integer表示整型数在存储器中的地址。

    下面是一些例子:

    • fadd:将堆栈上的st(0)和st(1)相加,并将结果推回堆栈。
    • fadd st(3), st(0):将堆栈上的st(3)和st(0)相加,并将结果存储到st(3)。
    • fadd mem32:将存储器中的单精度实型数与堆栈上的st(0)相加,并将结果存储到st(0)。
    • fiadd mem16:将存储器中的16位整型数与堆栈上的st(0)相加,并将结果存储到st(0)。
    • faddp st(1), st(0):将堆栈上的st(0)和st(1)相加,并将结果存储到st(1),然后将st(0)出栈。

    读取浮点型指令的关键是理解堆栈上的操作。x87浮点栈是一个后进先出的堆栈,它可以存储8个浮点数。指令通常涉及到将一个或多个浮点数从堆栈上弹出,执行操作,然后将结果推回堆栈。在堆栈上的每个浮点数都有一个对应的寄存器st(num),可以通过st(num)来引用它。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 修改了问题 3月18日
  • 创建了问题 3月17日