首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

求圣人指点 汇编四则运算程序除法为什么总提示溢出

2012-12-18 
求高人指点 汇编四则运算程序除法为什么总提示溢出下面是我编写四则运算程序,除法一直提示溢出(2除2都溢出

求高人指点 汇编四则运算程序除法为什么总提示溢出
下面是我编写四则运算程序,除法一直提示溢出(2除2都溢出),想编出带余数的,求高人指点啊!!(由于刚刚开始学,问题可能比较幼稚,请不要见笑!)



str00macrost
leadx,st
movah,09h
int21h
endm
;============================
datasegment
xdw?
ydw?
symboldb?
zdw?
contdb?
jiemiandb'=================================',13,10
db'=          size system          =',13,10
db'=1.add 2.sub 3.mul 4.div 5.exit =',13,10
db'=================================','$'
str0db13,10,'x=$'
str1db13,10,'y=$'
str2db13,10,'input(+-*/):$'
str3db'Not a yunsuanfu'
str4db13,10,'z=$'
str5db13,10,'continue(y/n):$'
str6db13,10,'overfolw$'
str7db13,10,'yushu:$'
dataends
;===========================
codesegment
assume cs:code,ds:data
mainproc
start:
movax,data
movds,ax
str00jiemian

begin:str00str0   
calldecibin
movx,bx
str00str1
calldecibin
movy,bx

callyunsuan
exit:
movah,4ch          
int21h
mainendp
;==============================
yunsuanproc
str00str2
pushax
movah,01h
int21h
movdx,0
movdl,al
popax
movsymbol,dl
;str00str5

cmpsymbol,'+'
jejia
cmpsymbol,'-'
jejian0
cmpsymbol,'*'
jecheng
cmpsymbol,'/'
jechu
str00str3
ret
jia:
movax,x
addax,y
movz,ax
jmpjieguo
jian0:
movax,x
movbx,y
cmpax,bx
jljian1
jian1:
xchgax,bx
subax,bx
movz,ax
jmpjieguo0
jian2:
movax,x
subax,y
movz,ax
jmpjieguo
cheng:
movax,x
muly
cmpdx,0
jgerror
movz,ax
jmpjieguo
chu:
pushax
pushbx
pushdx
movax,x
divy
cmpdx,0
jnzjieguo1
movz,ax
popax
popbx
popdx
jmpjieguo
jieguo:
str00str4
movbx,z
callbinidec
jmpcontinue
jieguo0:
str00str4
movah,02h
movdl,'-'
int21h
movbx,z
callbinidec
jmpcontinue
jieguo1:
str00str4
movbx,z
callbinidec
str00str7
movdh,0
movah,02h
int21h
jmpcontinue
continue:
str00str5
pushax
movah,01h
int21h
movdx,0
movdl,al
popax
movcont,dl
cmpcont,'y'
jzbegin
cmpcont,'n'
jzexit
error:
str00str6
jmpcontinue
yunsuanendp
;==============================
decibinproc
movbx,0
rulop:
movah,01h
int21h
cmpal,30h
jlruexit
cmpal,39h
jgruexit
subal,30h
cbw
xchgax,bx
movcx,10
mulcx
addbx,ax
jmprulop
ruexit:
ret
decibinendp
;==============================
binidecproc
cmpbx,0
jnzclop0
moval,02h
movdl,'0'
adddl,30h
int21h
jmpchuexit
clop0:movcx,5
clop1:movax,bx
movdx,0
movsi,10
divsi
pushdx
movbx,ax
loopclop1

movbp,0
movcx,5
clop2:popdx
cmpdl,0
jnzclop3
cmpbp,0
jzclop4
clop3:
movbp,1
movah,02h
adddl,30h
int21h
clop4:
loopclop2
chuexit:
ret
binidecendp
;========================================


codeends
;===============================
                  end main
[解决办法]
已经解决了!!

热点排行