汇编 两个十进制数的加法 帮我做个流程图就够了!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编 两个十进制数的加法 帮我做个流程图就够了!相关的知识,希望对你有一定的参考价值。

程序很简单,帮忙用word做个流程图,截图发上来就可以了
data segment
temp dw ?
data ends
decihex segment
assume cs:decihex,ds:data
main proc far
nexts:
call decibin
mov temp,bx
call decibin
mov ax,temp
add bx,ax
call hexibin
call crlf
call binihex
call crlf
jmp nexts
main endp
hexibin proc near
mov ax,bx
mov cx,1h
xor bx,bx
loop2:mov dl,10d
div dl

mov dl,ah
xor ah,ah
cbw
mov temp,ax

xor ax,ax
mov al,dl
cbw
mul cx
add bx,ax

mov ax,cx
mov dx,10h
mul dx
mov cx,ax

mov ax,temp
cmp ax,0d
je exit2
jne loop2
exit2:
ret
hexibin endp
binihex proc near
mov ch,4
rotate: mov cl,4
rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl printit
add al, 7h
printit: mov dl, al
mov ah, 2
int 21h
dec ch
jnz rotate
ret
binihex endp
decibin proc near
mov bx,0
newchar:mov ah,1
int 21h
sub al,30h
jl exit
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit: ret
decibin endp
crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
decihex ends
end main

不对吧!两个十进制数的加法没那么长!用C语言5个语句搞定。即使用汇编10个语句也就搞定了。哪有这么长呀。 参考技术A 好长

C语言_7运算符!看这篇就够了

一、算术运算符


1.加法运算符+

#include<stdio.h>
int main()

int a=2;
int b=3;
printf("a+b=%d\\n",a+b);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级

2.减法运算符-

#include<stdio.h>
int main()

int a=4;
int b=3;
printf("a-b=%d\\n",a-b);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级_02

3.乘法运算符*

#include<stdio.h>
int main()

int a=4;
int b=3;
printf("a*b=%d\\n",a*b);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_运算符_03

4.除法运算符/

#include<stdio.h>
int main()

int a=4;
int b=3;
printf("a/b=%d\\n",a/b);
//整型和整型相除等于整型
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级_04

#include<stdio.h>
int main()

float a=5;
float b=2;
printf("a/b=%\\n",a/b);
//浮点型相除结果为浮点型
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级_05

5.求余运算符%

#include<stdio.h>
int main()

int a=5;
int b=2;
printf("%d\\n",a%b);
return 0;

【C语言_7】运算符!看这篇就够了_优先级_06

6.自增自减运算符

(1).前缀模式

  • ++运算对象;//表示在本次使用变量前自增
  • --运算对象;//表示在本次使用变量前自减

#include<stdio.h>
int main()

int a=10;
int b=10;
printf("++a的值是:%d\\n--b的值是:%d\\n",++a,--b);
printf("a的值是:%d\\nb的值是:%d\\n",a,b);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级_07

(2).后缀模式

  • 运算对象++;//表示在本次使用变量后再自增
  • 运算对象--;//表示在本次使用变量后再自减

#include<stdio.h>
int main()

int a=10;
int b=10;
printf("a++的值是:%d\\nb++的值是:%d\\n",a++,b++);
printf("a的值是:%d\\nb的值是:%d\\n",a,b);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级_08

二、赋值运算符

运算符

用法

简单赋值=

c=a+b将把a+b的值赋给c

加法赋值+=

c+=a相当于c=c+a

减法赋值-=

c-=a相当于c=c-a

乘法赋值*=

c*=a相当于c=c*a

除法赋值/=

c/=a相当于c=c/a

求模赋值%=

c%=a相当于c=c%a

#include<stdio.h>
int main()

int a=10;
int b=2;
int c=20;
c=a;
printf("c=%d\\n",c);
c+=a;
printf("c=%d\\n",c);
c-=b;
printf("c=%d\\n",c);
c*=b;
printf("c=%d\\n",c);
c=200;
c/=a;
printf("c=%d\\n",c);
c=111;
c%=a;
printf("c=%d\\n",c);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_运算符_09

三、关系运算符

  • 大于>
  • 大于等于>=
  • 小于<
  • 小于等于<=
  • 不等于!=
  • 等于==(用于测试左右两边的运算对象是否相等)

#include<stdio.h>
int main()

printf("%d\\n",1>2);//关系不成立为假,用0表示假
printf("%d\\n",1<2);//关系成立为真,用1表示真
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_优先级_10

#include<stdio.h>
int main()

printf("%d\\n",10==10);
printf("%d\\n",10==9);
printf("%d\\n",10!=10);
printf("%d\\n",10!=9);
return 0;

运行结果:

【C语言_7】运算符!看这篇就够了_运算符_11

四、逻辑运算符

  • 逻辑与&&
  • 逻辑或||
  • 逻辑非!

//错误示例
#include<stdio.h>
int main()

printf("%d\\n",2<=3<=10);
printf("%d\\n",2<=0<=10);
return 0;

运行结果出现错误:所以引入与(&&)和非(|)

【C语言_7】运算符!看这篇就够了_优先级_12

1.逻辑与和逻辑非的应用

#include<stdio.h>
int main()

int a = 10;
int b = 20;
int c;
printf("请输入一个整数:");
scanf("%d", &c);
if (a <= c && c <= b)
printf("a<=c<=b\\n");

if (c <= a || c >= b)
printf("c的值不在ab之间");

return 0;

【C语言_7】运算符!看这篇就够了_优先级_13

【C语言_7】运算符!看这篇就够了_运算符_14

五、位运算符

1.六种位运算符

位运算符

含义

举例

&(and)

按位与

a&b

 | (or)

按位或

a|b

^ (xor)

按位异或

a^b

~ (not)

按位取反

~a

<<(shi)

左移

a<<1

>>(shr)

右移

a>>1

2.位逻辑运算规则

a

b

a&b

a|b

a^b

~a

~b

0

0

0

0

0

1

1

0

1

0

1

1

1

0

1

0

0

1

1

0

1

1

1

1

1

0

0

0

六、条件运算符(?和:)

c=(a>b)?a:b;
表示如果a大于b,那么a赋值给c,否则把b赋值给c;
//等价于:
if(a>b)
c=a;
else
c=b;

七、逗号运算符

  • 其功能是把两个表达式连接起来组成一个表达式

#include<stdio.h>
int main()

int a=2,b=3,c=4,x,y;
y=a+b,x=b+c;
printf("y=%d,x=%d",y,x);
return 0;

【C语言_7】运算符!看这篇就够了_运算符_15

八、运算符优先级

【C语言_7】运算符!看这篇就够了_运算符_16

图片来自360百科

以上是关于汇编 两个十进制数的加法 帮我做个流程图就够了!的主要内容,如果未能解决你的问题,请参考以下文章

使用 PCRE 正则表达式匹配两个二进制数的正确加法

不卷了,图像识别算法这一个就够了

汇编有符号除法运算

任意进制数的加法

汇编语言中 加法(ADD)与带进位加法(ADC)有啥区别?

2021超全大数据面试宝典,吐血总结十万字,大数据面试收藏这一篇就够了