⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 float.asm

📁 1.在屏幕上提示用户输入两个带符号浮点数 2.计算并显示两者之和与差。
💻 ASM
字号:
DATA       SEGMENT
X          dw  0
Y          dw  0
FLOAT1       db ' INPUT FIRST FLOAT with sign:','$'
FLOAT2       db 0ah,0dh,' INPUT SECOND FLOAT with sign:','$'
result1    db 0ah,0dh,'FLOAT1+FLOAT2: ','$'
result2    db 0ah,0dh,'FLOAT1-FLOAT2: ','$'
num        db 6 dup(0),'$'
DATA   ENDS


CODE       SEGMENT
           ASSUME DS:DATA,CS:CODE
START:    mov   AX,DATA
          mov   DS,AX
          lea dx,FLOAT1
          mov ah,09
          int 21h
          call DISBOX
          mov X,bx
          lea dx,FLOAT2
          mov ah,09
          int 21h
          call  DISBOX
          mov   Y,BX
          lea dx,result1
          mov ah,09h
          int 21h
          mov   AX,X
          add   AX,Y
          mov bx,ax
          call DISPBX
          lea dx,result2
          mov ah,09h
          int 21h   
          mov   AX,X
          SUB   AX,Y
          mov bx,ax
          call DISPBX
          mov ax,4c00h
          int 21h
          
          
DISBOX    PROC  FAR
          mov di,1
          push AX
          mov ah,01
          int 21h
          xor ah,ah
          push ax
          mov   AX,0
LOOP1:    push  AX
LOOP2:
          mov   AH,01H
          int   21H
          cmp al,'.'
          jz LOOP4
          mov   DX,0
          mov   DL,AL
          pop   AX
          cmp   DL,30H
          jb    exit1
          cmp   DL,39H
          ja    exit1
          sub   DL,30H
          mov   BX,0
          mov   BL,DL
          mov   CL,10
          mul   CL
          add   AX,BX
          jmp   Loop1
LooP3:    push ax
          inc di
Loop4:    mov   AH,01H
          int   21H
          mov   DX,0
          mov   DL,AL
          pop   AX
          cmp   DL,30H
          jb    exit1
          cmp   DL,39H
          ja    exit1
          sub   DL,30H
          mov   BX,0
          mov   BL,DL
          mov   CL,10
          mul   CL
          add   AX,BX
          jmp   LOOP3
exit1:    mov   BX,AX
          pop ax
          cmp al,'-'
          jne exit2
          neg bx
exit2: 
          POP   AX
          ret
DISBOX    ENDP

DISPBX PROC FAR
          mov cx,di
          test bx,8000h
          jz next
          mov dl,'-'
          mov ah,02
          int 21h
          neg bx
next:
          mov ax,bx
          mov si,5
          mov bx,10
lp1:
          xor dx,dx
          div bx
          add dl,'0'
          mov num[si],dl
          dec si
          dec cx
          cmp cx,1
          jnz lp2        
          mov dl,'.'
          mov num[si],dl
          dec si
lp2:
          cmp si,0
          jnz lp1              
lp3:      lea dx,num
          mov ah,09
          int 21h
          ret
DISPBX ENDP    
  
code ends 
     end start     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -