注册 登录
编程论坛 汇编论坛

大家帮忙看一下我的程序,搞了半天,输出不对,帮我改改,谢谢了。

雨夜梧桐 发布于 2011-04-05 23:15, 534 次点击
题目要求:通过比较法完成8位二进制数转换为10进制数,屏幕应该显示:25+9=34
;FELE NAME:EXA131.ASM
.486
DATA SEGMENT USE16
SUM DB ?,?
MESG DB '25+9=',0DH,0AH,'$'
     DB 0,0
N1   DW 9,0F0H
N2   DW 25
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE ,DS:DATA
BEG: MOV AX,DATA
     MOV DS,AX
     MOV BX,OFFSET SUM
     MOV BX,N1
     MOV AX,N2
     MOV BX,AX
     CALL CHANG
     MOV AH,9
     MOV DX,OFFSET MESG
     INT 21H
     MOV AH,4CH
     INT 21H
     CHANG  PROC
     LAST:  CMP BYTE PTR [BX],10
     JC NEXT
     SUB BX,10
     INC BYTE PTR [BX+7]
     JMP LAST
NEXT:MOV CL,SUM
     ADD BYTE PTR [BX+8],CL
     ADD BYTE PTR [BX+7],30H
     ADD BYTE PTR [BX+8],30H
     RET
CHANG  ENDP
CODE ENDS
     END BEG
     
2 回复
#2
xiaomarn2011-04-06 09:51
DATA SEGMENT
SUM Dw ?
MESG DB '25+9=',0H,0H,'$'
     DB 0,0
N1   DW 9
N2   DW 25
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE ,DS:DATA
BEG: MOV AX,DATA
     MOV DS,AX
     MOV BX,OFFSET SUM
     MOV cX,N1
     MOV AX,N2
     add cX,Ax
     mov  word ptr sum,cx
     CALL CHANG
     MOV AH,9
     MOV DX,OFFSET MESG
     INT 21H
     MOV AH,4CH
     INT 21H
   
CHANG  PROC
LAST:  
     CMP word PTR [BX],10
     JC NEXT
     SUB word ptr [bx],10
     INC BYTE PTR [BX+7]
     JMP LAST
NEXT:MOV CL,byte ptr SUM
     mov BYTE PTR [BX+8],CL
     ADD BYTE PTR [BX+7],30H
     ADD BYTE PTR [BX+8],30H
     RET
CHANG  ENDP
CODE ENDS
     END BEG
#3
雨夜梧桐2011-07-21 18:49
回复 2楼 xiaomarn
谢谢了。刚看到一个帖子没有结贴,原来是这个帖子,后来自己改了,谢谢。
1