;算法描述: 1)我们可先判断data的值的正负,若为负,则显示“-”。 取其整数部分给变量whoe,;取其小数部分给变量 fract。 ;2)取其整数部分,采用除10取余数的方法,求出整数数 码(先低位后高位),加30H;压入堆栈,然后通过出 栈显示,以达到先显示高位的目的。 ;3)取其小数部分,把阶码变为原码,采用乘10取整法, 求出小数部分(先高后低),;加30H变为ASC显 小 退出 4.1.2
4.1.2 ;算法描述: ;1)我们可先判断data的值的正负,若为负,则显示“-” 。 取其整数部分给变量whole, ;取其小数部分给变量 fract。 ;2)取其整数部分,采用除10取余数的方法,求出整数数 码(先低位后高位),加30H ;压入堆栈,然后通过出 栈显示,以达到先显示高位的目的。 ;3)取其小数部分,把阶码变为原码,采用乘10取整法, 求出小数部分(先高后低), ;加30H变为ASCII码显 示。 退 出
disp子模块源程序: MODEL SMALL .386 .387 STACK 128 DATA PUBLIC dada dada DD status DW whole DD ???? fract DD CODE 退出 4.1.2
4.1.2 disp子模块源程序: .MODEL SMALL .386 .387 .STACK 128 .DATA PUBLIC dada dada DD ? status DW ? whole DD ? fract DD ? .CODE 退 出
disps PROC AH.02 MOV DAL INT 21H RET disps ENDP PUBLIC disp disp FNINIT MO∨ AX, @data MOV DS. AX FSTCW status 退出 4.1.2
4.1.2 disps PROC MOV AH,02 MOV DL,AL INT 21H RET disps ENDP PUBLIC disp disp: FNINIT MOV AX,@data MOV DS,AX FSTCW status 退 出
OR status. OC00H FLDCW status FLD dada FTST FSTSW AX AND AX. 4500h CMP AX.0100h UNZ positive MOV al CALL disps FABS 退出 4.1.2
4.1.2 OR status,0C00H FLDCW status FLD dada FTST FSTSW AX AND AX,4500h CMP AX,0100h JNZ positive MOV al,'-' CALL disps FABS 退 出
positive FLD ST FRNDINT FIST Whole FSUBR FABS FSTP fract MOV EAX. Whole MO∨EBX10 MOV CX. 0 PUSH BX 退出 1.2
4.1.2 positive: FLD ST FRNDINT FIST whole FSUBR FABS FSTP fract MOV EAX,whole MOV EBX,10 MOV CX,0 PUSH BX 退 出