两个数相加的汇编语言程序

两个数相加的汇编语言程序,第1张

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语言跪求 最简单的 求和程序 代码、汇编程序 两数相加等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9498255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存