欢迎来到天天文库
浏览记录
ID:55710610
大小:13.00 KB
页数:3页
时间:2020-05-26
《汇编语言实现2个任意数相加.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、DATASSEGMENT XDB100DUP(?) YDB100DUP(?) ZDB100DUP(?),'$';此处输入数据段代码 DATASENDSSTACKSSEGMENT ;此处输入堆栈段代码STACKSENDSCODESSEGMENT ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART: MOVAX,DATAS MOVDS,AX MOVBX,0DATAX: MOVAH,01H ;01回显,将数据存放在AL中 INT21H CMPAL,'+'
2、 ;"+"与输入的数据相减是否为0,即用“+作为X的结束标志”JZA1 ;判断,为0时,跳转A1,不为0,执行下一条语句 PUSHAX ;将AX整个16位(包括AH,AL)一起进栈 INCBX ;计数 JMPDATAX ;循环将X的每个位依次输入 A1: MOVCX,BX MOVSI,0A11: POPAX ;将AX内的数据出栈 MOVX[SI],AL;将AL的数据保存到X段中 INCSI LOOPA11 ;依次循环保存 MOVBX,0DATAY: MOVA
3、H,01H INT21H CMPAL,'=' JZA2 PUSHAX INCBX JMPDATAY A2: MOVCX,BX MOVSI,0A12:POPAX MOVY[SI],AL INCSI LOOPA12 ;同理,此处是以"="作为Y值的结束标志,输入Y值并保存在Y段 RESULT: CLC PUSHF ;CF先进栈 MOVCX,100 MOVSI,0 MOVDI,99 A3:MOVAL,X[SI];将X段数据放在AL中 MOVDL,Y[SI];将X
4、段数据放在DL中 POPF ADCAL,DL ;考虑进位运算,AL+DL+CF AAA PUSHF ADDAL,30H ;转换成ASCII码 MOVZ[DI],AL;将结果从第99位倒着保存到Z段中 INCSI DECDI LOOPA3 ;依次循环将结果保存到Z段 MOVSI,0A4:CMPZ[SI],30H JNZA5 INCSI JMPA4 ;从第0位开始判断,看Z[SI]中的数据是否为0 A5: LEADX,Z[SI] MOVAH,09H
5、;直到不为0的数据那一位是开始显示到第99位 INT21H MOVAH,4CH INT21HCODESENDSENDST
此文档下载收益归作者所有