汇编二进制双精度加法实验程序

来源:互联网 发布:京东品类销售数据 编辑:程序博客网 时间:2024/05/16 04:46

;计算X+Y=Z

;X=001565A0H,Y=0021B79EH,运算的结果Z=00371D3EH。

DATA SEGMENT

MES DB  'The result is:$'

XL  DW 65A0H

XH  DW 0015H

YL  DW 0B79EH

YH  DW 0021H

DATA ENDS

 

CODE SEGMENT

   ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

  MOV DS,AX

  MOV  DX,OFFSET MES  ;显示信息

  MOV  AH,09H

  INT   21H

  MOV   AX,XL   

  ADD   AX,YL  ;Y低位数值与X低位数值相加  

  MOV   BX,AX   ;BX中存放结果的低16位

  MOV   AX,XH

  ADC   AX,YH   ;Y高位数值与X高位数值相加

  MOV  CX,AX    ;CX中存放结果的高16位

   ;显示结果

    MOV DH,CH

    CALL SHOW

    MOV DH,CL

    CALL SHOW

    MOV DH,BH

    CALL SHOW

    MOV DH,BL

    CALL SHOW 

    MOV AX,4C00H

    INT  21H 

SHOW PROC NEAR

      PUSH DX

      PUSH AX

       MOVAL,DH

  ANDAL,0F0H

  ;取高4位

  SHRAL,4

  CMPAL,0AH;是否是A以上的数

  JBC2

  ADDAL,07H

C2:   ADDAL,30H

  MOVDL,AL;show character 

  MOVAH,02H

  INT21H

 

  MOVAL,DH

  ANDAL,0FH;取低4位

  CMPAL,0AH

  JBC3

  ADD AL,07H

C3:   ADDAL,30H

  MOVDL,AL;show character 

  MOVAH,02H

  INT21H

  POP AX

  POP DX

  RET

SHOW   ENDP

CODE ENDS

       END   START