当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

汇编语言在键盘上输入两个不超过32位的无符号正整数求和后输出

更新:01-13 整理:39baobao.com
字体:

[4利用函数的嵌套调用实现三个整数的求和]#include<stdio.h> void math(int x, int y, int z) { printf("三个整数的和为: %d\n", x+y+z); } int main() { int x,y,z; scanf("%d %d %d",&x,&y,&z); math(x,y,z); getchar();...+阅读

; 相加的两个数以及其和不得超过6.5亿,否则出现除法溢出 ; 输入的两个数存入数组x 中 (输入时,两个数以空格间隔,以回车结束输入) ; 相加的结果存入y 中,或dx、ax中 code segment assume cs:code org 100h START: JMP BBB X DD 2 dup(?) num dw ? Y DD ? cc db 10 dup(' '),10,13,'$' lfcr db 10,13,'$' ; =================== bbb: push cs pop ds push cs pop es lea si,x mov word ptr num,0 m0: mov ax,0 mov dx,0 push ax push dx m1: mov ah,1 int 21h cmp al,20h je mexit1 cmp al,13 je mexit2 sub al,30h mov bh,0 mov bl,al mov di,bx ; ============== pop dx pop ax shl ax,1 rcl dx,1 mov bx,ax mov cx,dx shl ax,1 rcl dx,1 shl ax,1 rcl dx,1 add ax,bx adc dx,cx ; =============== mov bx,di add ax,bx adc dx,0 push ax push dx jmp m1 mexit1: pop dx pop ax mov [si],ax mov [si+2],dx add si,4 inc word ptr num jmp m0 mexit2: pop dx pop ax mov [si],ax mov [si+2],dx inc word ptr num ; 以上完成两个数的输入、转换为16进制数并保存 ; =================== lea si,x mov ax,[si] mov dx,[si+2] mov bx,[si+4] mov cx,[si+6] add ax,bx adc dx,cx lea si,y mov [si],ax mov [si+2],dx ; 以上完成两个数的相加 并保存到 Y中 ; =============== ; 以下将 Y (16进制)转为10进制串并输出 lea di,cc add di,9 m2: mov bx,10000 div bx ; 这里是发生溢出之处 push ax push dx ; ============ ; 以下转换10进制的低4位 pop dx mov cx,4 mov ax,dx m3: mov dx,0 mov bx,10 div bx add dl,30h mov [di],dl dec di loop m3 ; =========== ; 以下转换10进制的高5位 pop ax mov cx,5 m4: mov dx,0 mov bx,10 div bx add dl,30h mov [di],dl dec di loop m4 ; ============ ; 输出换行回车 lea dx,lfcr mov ah,9 int 21h ; ============ ; 输出两数的和的10进制串 lea dx,cc mov ah,9 int 21h ; ============ ;int 3 mov ah,4ch int 21h code ends end start

本文地址:https://www.39baobao.com/show/29_30503.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言大整数求阶乘C的语法已经比较生疏了,只能给你个算法了,见谅。 我认为用递归比较好。 factorial(int[] o){ if(最末一位 == 1 & sum(o) == 1) /*另外写个sum来求array的和,这个结果该不会超出i...

c语言问题计算请编写函数isprime用来判断一个整数a是否为#include "stdio.h" int isprime(int a) { int j; for(j=2;j<a;j++) if(a%j==0) return 0; else return 1; } void main() { int x,y; printf("请输入一个整数:"); scanf("%d",&x); y=...

C语言怎样随机生成不同的整数#include #include #include main() {int j,a[15],p,i=0; srand((unsigned)time(NULL)); for(i=0;i{p=rand()%100; for(j=0;jif(p==a[j]) //检查是否重复 break; if(j>=i) a...

在c语言中要怎么来判断整数和小数啊你看一下这个方法符不符合你的要求 12.000算整数吧,只是后面多几个零 #include<stdio.h> void main() { float num; int NB; printf("输入一个数"); scanf("%f",&num); NB=(int)num;...

整数四则混合运算教学环节有几个整数四则混合运算教学 新教材把整数四则混合运算的教学分为三个环节。 第一册到第三册是混合运算初步教学阶段,教学由百以内加减法组成的两步式题、由表内乘除法组成的两 步...

C语言分数求和//结构定义中包含两个成员,分子和分母 struct fraction { int up, down;/*分子和分母*/ }; /* 相加算法的核心是找两个分母的最小公倍数和结果分子分母的最大公约数,分别e79fa5...

下面的小数各在哪两个相邻的整数之间苏教版数学第九册小数的认识苏教数学五上:《小数乘整数、小数除以整数》复习教案 【教学内容】课本第78、79页 回顾与整理 及 练习与应用 第1-5题。 【教学目标】 1.通过回顾与整理,使学生进一步巩固已经...

汇编语言数组求和1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 5...

c语言统计正数的个数并求和void main () { int a[10]={0}; int count=0,sum=0; for(int i=0;i<10;i++){ scanf("%d",&a[i]); } for(int i=0;i<10;i++){ if(a[i]>0){ count++; sum=sum+a[i]; } } printf("...