回 帖 发 新 帖 刷新版面

主题:[讨论]谢谢~`我只要这段代码!

[size=3][size=2]谢谢,谁能给我个结果以十进制输出的代码????
我要做的题是:
 [/size][/size]
在DOS下出入两个两位数,以十进制显示它们的和!!!其实主程序实现加法在简单不过了`~`不过后面以十进制显示结果我就头昏了~~

DSEG SEGMENT
X   DB  ?
Y   DB  ?
SUM DW  ?
DSEG ENDS
CSEG SEGMENT
     ASSUME CS:CSEG,DS:DSEG
START:
     MOV  AX,DSEG
     MOV  DS,AX
     MOV  AX,X
     ADD  AX,Y
     MOV  SUM,AX
     
注:谁可以给我这里所缺的代码段?我缴尽脑汁了!谁让我菜也~~

     MOV  AH,1
     INT  21H
     MOV  AH,2
     INT  21H
     MOV  AH,4C00H
     INT  21H
CSEG ENDS
     END  START
 
     


[color=00FFFF][color=FF0000][color=0000FF][color=008080][color=0000FF][color=FF0000][color=C0C0C0][color=FF00FF]谢谢请给我一个帮助,我需许那段代码!!![/color][/color][/color][/color][/color][/color][/color][/color]

回复列表 (共2个回复)

沙发

给你一个程序主要实现的是50一下的两位数相加,做这类题的思路已经包含其中,你看看啊!

code1 segment
  main proc far
    assume cs:code1

start:
      push  ds
      sub ax,ax
      push ax

      mov ah,1
      int 21h
      sub al,30h
      mov bl,10
      mul bl
      mov bx,ax
      mov ah,1
      int 21h
      sub al,30h
      cbw
      mov cx,ax
      add bx,cx
      mov dl,0ah
      mov ah,2
      int 21h
      mov dl,0dh
      mov ah,2
      int 21h
      
      mov ah,1
      int 21h
      sub al,30h
      mov cl,10
      mul cl
      mov cx,ax
      mov ah,1
      int 21h
      sub al,30h
      cbw
      mov dx,ax
      add cx,dx

      mov dl,0ah
      mov ah,2
      int 21h
      mov dl,0dh
      mov ah,2
      int 21h


      add bx,cx
      
      
      mov ax,bx
      mov ch,10
      div ch
      cmp al,0
      ja  again
      add bl,30h
      mov dl,bl
      mov ah,2
      int 21h
      ret
again: mov bl,ah 
       mov dl,al
       add dl,30h
       mov ah,2
       int 21h
       add bl,30h
       mov dl,bl
       mov ah,2
       int 21h
       ret


main endp
code1 ends
   end start
  

板凳

BTOD  PROC      NEAR
              PUSH      SI
              PUSH      CX
              PUSH      DX
              MOV       CX,0
              MOV       DX,0
              MOV       SI,10
       NEXT:  DIV       SI
              ADD       DL,30H
              PUSH      DX
              INC       CX
              MOV       DX,0
              CMP       AX,0
              JNZ       NEXT
              MOV       AH,2
       DISP:  POP       DX
              INT       21H
              LOOP      DISP
              MOV       DL,'D'
              INT       21H
              POP       DX
              POP       CX
              POP       SI
              RET
        BTOD  ENDP
二进制转十进制的子程序,直接加在后面,然后在需要的地方使用CALL BTOD就可以了
入口参数AX=要转换的数

我来回复

您尚未登录,请登录后再回复。点此登录或注册