经典汇编语言教程:例11.10 从键盘上读入一个带小数的数字字符串,然后把它转换成单精度浮点数,并存入内存单元DATA中

例11.10 从键盘上读入一个带小数的数字字符串,然后把它转换成单精度浮点数,并存入内存单元DATA中

例11.10 从键盘上读入一个带小数的数字字符串,然后把它转换成单精度浮点数,并存入内存单元DATA中。

解:
.MODEL SMALL
.386
.387
.DATA

DATA

DD 0

TEN

DD 10.0

TEMP

DW ?

SIGN

DB ?
.CODE
GETCHMACRO;宏GETCH的功能是从键盘读入一个字符
MOVAH, 1
INT21H
ENDM
.STARTUP
FLDZ;ST=0
GETCH
.IF AL == '+';判定是否输入正号'+'

MOV

SIGN, 0
GETCH
.ENDIF
.IF AL == '-'

MOV

SIGN, 1;判定是否输入负号'-'
GETCH
.ENDIF
.REPEAT

FMUL

TEN

MOV

AH,0

SUB

AL, 30H

MOV

TEMP, AX

FIADD

TEMP;部分数×10.0+(字符-'0')
GETCH
.UNTIL AL<'0' || AL>'9';完成整数部分的处理
CMPAL, '.'
JNEexit
FLD1;开始处理小数部分
.WHILE1

FDIV

TEN
GETCH
.BREAK  .IF AL<'0' || AL>'9'

MOV

AH, 0

SUB

AL, 30H

MOV

TEMP, AX

FILD

TEMP

FMUL

ST, ST(1)

FADD

ST(2), ST
FCOMP
.ENDW
FCOMP
exit:
.IFSIGN == 1;如果是负数,那么需要改变符号
FCHS
.ENDIF
FSTPDATA;保存最终转换的结果
.EXIT 0
END

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号