中易网

求助 汇编语言 32位*32位 二进制数怎么做乘法??高手帮忙啊~

答案:4  悬赏:70  
解决时间 2021-01-04 19:39
顺便介绍一下汇编现在的应用方面吧?有人说他淘汰了。。。。有什么好的参考书吗??

请顺带留下汇编语言比较好的参考书 汇编语言的应用方面 能用在嵌入式系统里面吗??会不会在嵌入式方面被淘汰了?
最佳答案
输入输出的ASC转换我想你是会是,所以就不写了。我只提供32位运算程序。以下程序是试算通过的。

1、在数据段定义4个运算变量
;===============================
;32位运算变量
;===============================
data4 dw ?
data3 dw ?
data2 dw ?
data1 dw ?

2、以下是加、减、乘、除的4个子程序
;*******************************
;32位运算
;*******************************
;===============================
;32位符号数的加法运算
;入: DXAX=32位操作数1
; CXBX=32位操作数2
;出: DXAX=两操作数的和
; OF=1: 溢出
; OF=0: 正常
;===============================
subn_add32 proc near
add ax,bx
adc dx,cx
ret
subn_add32 endp
;===============================
;32位符号数的减法运算
;入: DXAX=32位操作数1
; CXBX=32位操作数2
;出: DXAX=操作数1-操作数2的差
; OF=1: 溢出
; OF=0: 正常
;===============================
subn_sub32 proc near
sub ax,bx
sbb dx,cx
ret
subn_sub32 endp
;===============================
;32位符号数的乘法运算
;入: DXAX=32位操作数1
; CXBX=32位操作数2
;出: CXBXDXAX=两操作数积
;===============================
subn_mul32 proc near
push di
xor di,di
test dh,80h
jz sss_1
mov di,1
not dx
not ax
add ax,1
adc dx,0
sss_1:
test ch,80h
jz sss_2
not cx
not bx
add bx,1
adc cx,0
xor di,1
sss_2:
call subn_32x32
test di,1
jz sss_out
not ax
not bx
not cx
not dx
add ax,1
adc dx,0
adc bx,0
adc cx,0
sss_out:
pop di
ret
subn_mul32 endp
;===============================
;32位符号数的除法运算
;入: DXAX=32位被除数
; CXBX=32位除数
;出:DXAX=商
; CXBX=余数(绝对值)
;===============================
subn_div32 proc near
push di
xor di,di
test dh,80h
jz sss_1
mov di,1
not dx
not ax
add ax,1
adc dx,0
sss_1:
test ch,80h
jz sss_2
not cx
not bx
add bx,1
adc cx,0
xor di,1
sss_2:
call subn_32v32
test di,1
jz sss_out
not ax
not dx
add ax,1
adc dx,0
sss_out:
pop di
ret
subn_div32 endp
;*******以下是内部子程序********
;===============================
;无符号数的32位值乘32位值
;入: DXAX=被乘数
; CXBX=乘数
;出: cx=积的高64位
; bx=积的高48位
; dx=积的高32位
; ax=积的低16位
;===============================
subn_32x32 proc near
push si
push di
mov data1,0
mov data2,0
mov data3,0
mov data4,0
mov si,ax
mov di,dx
mul bx
mov data2,dx
mov data1,ax
mov ax,di
mul bx
add data2,ax
adc data3,dx
mov ax,si
mul cx
add data2,ax
adc data3,dx
adc data4,0
mov ax,di
mul cx
add data3,ax
adc data4,dx
mov cx,data4
mov bx,data3
mov dx,data2
mov ax,data1
pop di
pop si
ret
subn_32x32 endp
;===============================
;无符号数的32位值除以16位值
;入:DXAX=被除数
; CX=除数
;出:DXAX=商
; BX=余数
;===============================
subn_32v16 proc near
push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
pop ax
div cx
xchg bx,dx
ret
subn_32v16 endp
;===============================
;无符号数的32位值除以32位值
;入:DXAX=被除数
; CXBX=除数
;出:DXAX=商
; CXBX=余数
;===============================
subn_32v32 proc near
test cx,cx
jnz sss_1
mov cx,bx
call subn_32v16
xor cx,cx
ret
sss_1:
push di
xor di,di
sss_lp1:
sub ax,bx
sbb dx,cx
jc sss_out
inc di
jmp sss_lp1
sss_out:
add bx,ax
adc cx,dx
mov ax,di
mov dx,0
pop di
ret
subn_32v32 endp

汇编在PC上用的是少了,除了逆向工程,软件加解密这些。
学习汇编能够更好的理解高级语言。

王爽(汇编语言)
全部回答
去 汇编网 看王爽老师的《汇编语言》论坛里有下的,那个论坛是学汇编最好的去处。
嵌入式系统?先从8051单片机看起吧,然后可以学AVR。 汇编主要用在效率要求较高的实时控制部分。其他部分C语言可以解决。C和汇编混编的方式至少在20年内不会被淘汰。
最大位数不超过50000。 #include #include int main() { char a[50001],b[50001]; int a1[50001],b1[50001],c[100002]; int lena,lenb,i,j,flag; while(scanf("%s",a)!=eof) { scanf("%s",b); getchar(); j=0; memset(a1,0,sizeof(a1)); memset(b1,0,sizeof(b1)); memset(c,0,sizeof(c)); lena=strlen(a); lenb=strlen(b); for(i=lena-1;i>=0;i--) a1[j++]=a[i]-'0'; j=0; for(i=lenb-1;i>=0;i--) b1[j++]=b[i]-'0'; for(j=0;j=10) { c[i+1]+=c[i]/10; c[i]%=10; } } flag=0; for(i;i>=0;i--) { if(flag==1)printf("%d",c[i]); else { if(c[i]!=0) { printf("%d",c[i]);flag=1; } } } if(flag==0)printf("0\n"); else printf("\n"); } return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
赞喝的意思是什么?赞喝的释义是什么啊?
祝鸡翁的意思是什么?祝鸡翁的释义是什么啊?
H&m吊牌货号代购问题!
秋季哪些秋果不能多吃?
抱冤的意思是什么?抱冤的释义是什么啊?
贵验的意思是什么?贵验的释义是什么啊?
漏斷的意思是什么?漏斷的释义是什么啊?
悲酸的意思是什么啊?请解释下!
好大一个家同款魔金哪里买得到?
和县五显集镇中学地址在什么地方,想过去办事
詠嘲風月的意思是什么?詠嘲風月的释义是什么
青瓷源于哪里
jsp页面里的漂浮图片怎么做?
外接音响有电流声的问题
我用捷信分十期买了个2968的手机,还款三期,
推荐资讯
厉志的意思是什么啊?请解释下!
用英语写春夏秋冬的句子要有汉语
石墨的种类、价格、用途
繫連的意思是什么?繫連的释义是什么啊?
威博台球厅怎么去啊,有事要去办理
结过婚的女人该不该娶?她还没小孩。
内蒙古农村户口是国家专项还是地方专项
正弦交流电峰值与有效值之间的关系是1.414倍
小业魔的意思是什么?小业魔的释义是什么啊?
许昌到新乡的汽车一点多少发车
张裕解百纳大瓶带架子十斤装
现在中国有几个省有野生的大熊猫?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?