汇编语言读写浮点数值

  • 内容
  • 评论
  • 相关

本教程链接库有两个浮点数输入输出过程,如下所示:

  • ReadFloat:从键盘读取一个浮点数,并将其压入浮点堆栈。
  • WriteFloat:将 ST(0) 中的浮点数以阶码形式写到控制台窗口。

ReadFloat 接收各种形式的浮点数,示例如下:

35
+35.
-3.5
.35
3.5E5
3.5E005
-3.5E+5
3.5E-4
+3.5E-4

ShowFPUStack 另一个有用的过程,能够显示 FPU 堆栈。调用该过程不需要参数:

call ShowFPUStack

【示例】下面的示例程序把两个浮点数压入 FPU 堆栈并显示,再由用户输入两个数,将它们相乘并显示乘积:

; 32位浮点数 I/O 测试      (floatTest32.asm)
INCLUDE Irvine32.inc
INCLUDE macros.inc

.data
first  REAL8 123.456
second REAL8 10.0
third  REAL8 ?

.code
main PROC
    finit                    ; 初始化 FPU

; 两个浮点数入栈,并显示 FPU 堆栈.
    fld    first
    fld    second
    call    ShowFPUStack

; 输入两个浮点数,并显示它们的乘机
    mWrite "Please enter a real number: "
    call    ReadFloat
   
    mWrite "Please enter a real number: "
    call    ReadFloat
   
    fmul    ST(0),ST(1)            ; 相乘
   
    mWrite "Their product is: "
    call    WriteFloat
    call    Crlf

    exit
main ENDP
END main

示例输入/输出(用户输入显示为粗体)如下:

本文标题:汇编语言读写浮点数值

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

评论

0条评论

发表评论

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