DATAS SEGMENT
STR1 DB 'Please input the first number(10-99) a:$'
STR2 DB 'Please input the second number(10-99) b:$'
STR3 DB 'The anwser a+b=$'
STR4 DB 'a=$'
STR5 DB 'b=$'
D1 DB 10
DB
D11 DB 10 DUP()
D2 DB 10
DB
D22 DB 10 DUP()
N1 DW
N2 DW
DATAS ENDS
STACKS SEGMENT
STA DB 100 DUP()
TOP EQU LENGTH STA
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV DX,OFFSET STR1 ;输入第一个个数
MOV AH,9
INT 21H
MOV DX,OFFSET D1
MOV AH,0AH
INT 21H
MOV DL,0DH ;回车换行
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR2 ;输入第二个数
MOV AH,9
INT 21H
MOV DX,OFFSET D2
MOV AH,0AH
INT 21H
MOV DX,0DH
MOV AH,2
INT 21H
MOV DX,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR4
MOV AH,9
INT 21H
LEA SI,D1 ;第一个数放在D1
LEA DI,D11
CALL SLZSJZ ;调用子程序,将字符串D1转换为真正的两位数
MOV N1,AX
MOV DX,0DH
MOV AH,2
INT 21H
MOV DX,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR5
MOV AH,9
INT 21H
LEA SI,D2 ;第二个数放在D2
LEA DI,D22
CALL SLZSJZ ;调用子程序,将字符串D2转换为真正的两位数
MOV N2,AX
MOV DX,0DH
MOV AH,2
INT 21H
MOV DX,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR3
MOV AH,9
INT 21H
CALL JGTZ
XOR DX,DX
XOR CH,CH
XOR AH,AH
XOR BH,BH ;输出结果,先输出百位,如为0,则不输出;在输出十位和个位
CMP CL,30H
JZ DEW
PUSH AX
MOV DL,CL
MOV AH,2
INT 21H
POP AX
DEW:MOV DL,AL
MOV AH,2
INT 21H
XOR DX,DX
MOV DL,BL
MOV AH,2
INT 21H
JMP EXIT
JGTZ PROC
MOV BX,N1
MOV DX,N2
XOR CX,CX
ADD DX,BX
MOV AX,DX
XOR DX,DX
MOV DL,100
DIV DL
ADD AL,30H
MOV CL,AL ;结果的第一位放在CL
MOV AL,AH
XOR AH,AH
MOV DL,10
DIV DL
ADD AL,30H ;结果的第二位放在AL
MOV BL,AH
ADD BL,30H ;结果的第三位放在BL
XOR AH,AH
RET
JGTZ ENDP
SLZSJZ PROC
MOV [SI+4],'$'
MOV DX,DI ;输出输入的两位数
MOV AH,9
INT 21H
XOR CX,CX ;将输入的字符串每位的ASCII码转为真正的数字
MOV CX,2
SUB [SI+2],30H
SUB [SI+3],30H
XOR AX,AX ;计算出输入的两位数
XOR BX,BX
MOV AL,10
MOV BL,[SI+2]
MUL BL
ADD AL,[SI+3]
RET
SLZSJZ ENDP
EXIT:MOV AH,4CH
INT 21H
CODES ENDS
END START
下面是C语言中的一个最简单的求和程序:
Copy code
#include <stdioh>
int main()
{
int num1 = 1, num2 = 2, sum;
sum = num1 + num2;
printf("两数之和为:%d", sum);
return 0;
}
在这个程序中,我们定义了两个整型变量num1和num2,并将它们相加得到sum。最后输出了sum的值。
这个程序是最简单的求和程序之一,只涉及到两个数字的相加 *** 作,非常易于理解和 *** 作。但是,需要注意的是,在实际编写复杂的程序时,还需要学习更多的C语言知识和技巧。
model small
stack 100H
code
laa:mov ah,1;从键盘输入两个数,本程序采用分离式bcd码
int 21H
mov ch,al
mov ah,1
int 21H
mov ah,0
mov cl,al
add al,ch
aaa
add ax,3030H
mov dh,al
mov dl,ah
mov ah,2
int 21H
mov dl,dh
mov ah,2
int 21H
exit 0
end laa;从键盘输入的数求和
第二个在第一个基础上输入七八即可;如果还不满足要求的话,有空在给你弄。满足第二个方法很多!
下午终于解决了你的7加8问题,程序代码如下
model small
stack 100H
data
x db 7,8
code
start:mov ax,@data
mov ds,ax
mov dh,x
mov bh,x+1
add dh,bh
if(dh>=10)
mov ah,2
mov dl,31H
int 21H
sub dh,10
add dh,30H
mov dl,dh
int 21H
elseif
add dh,30H
mov dl,dh
mov ah,2
int 21H
endif
mov ah,4cH
int 21H
end start
#include <stdioh>
main()
{
int i,sum;
sum=0;
for(i=1;i<=10000;i++)
sum+=i;
printf("%d",sum);
}
以上就是关于两个数相加的汇编语言程序全部的内容,包括:两个数相加的汇编语言程序、c语言跪求 最简单的 求和程序 代码、汇编程序 两数相加等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)