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

解道题{求助}

talent0987 发布于 2007-07-05 15:01, 724 次点击



怎么把这个程序变成2个2位数相加的程序啊

DATA SEGMENT
BUF DB 3,?,3 DUP(?)
ORG 10H
BUF1 DB ?,?,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,0AH
INT 21H
MOV SI,OFFSET BUF
MOV AX,[SI+2]
SUB AX,3030H
ADD AL,AH
DAA
MOV BL,AL
AND AL,0FH
ADD AL,30H
MOV SI,OFFSET BUF1
MOV [SI+1],AL
AND BL,0F0H
MOV CL,4
SAR BL,CL
ADD BL,30H
MOV [SI],BL
MOV DX,OFFSET BUF1
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
3 回复
#2
zez26262007-07-07 22:44
低位用普通加法ADD,高位用进位加法ADC!你在试试吧!
#3
zhulei19782007-07-10 15:50

[CODE]DATA SEGMENT
BUF DB 5,?
sum1 db ?
sum2 db ?
sum3 db ?
sum4 db ?
ORG 10H
BUF1 DB ?,?,?,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,0AH
INT 21H
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
MOV Al,sum2
SUB Al,30H
mov ah,sum4
sub ah,30h
ADD AL,AH
DAA
MOV BL,AL
AND AL,0FH
ADD AL,30H
MOV SI,OFFSET BUF1
MOV [SI+2],AL
AND BL,0F0H
MOV CL,4
SAR BL,CL
mov al,sum1
sub al,30h
mov ah,sum3
sub ah,30h
add al,bl
add al,ah
daa
MOV BL,AL
AND AL,0FH
ADD AL,30H
MOV [SI+1],AL
AND BL,0F0H
MOV CL,4
SAR BL,CL
ADD BL,30H
MOV [SI],BL
MOV DX,OFFSET BUF1
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START[/CODE]


[此贴子已经被作者于2007-7-11 9:29:30编辑过]

#4
pzj_6364842007-07-10 16:44
嗯,相当不错!
不过能够再加些注释不?我是新手,所以看不太懂,
1