您所在位置:网站首页 > 海量文档
 > 计算机 > 计算机原理
【计算机原理课件】常见程序设计举例.ppt31页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
4.5 常见程序设计举例 程序1:将≤65535的非压缩BCD数转换成2进制数。程序如下。 ;数据段定义 mydata SEGMENT decnum DB 5, 3, 0, 1, 9 ;BCD数 53019 binnum DW ? mydata ENDS prog SEGMENT ASSUME CS:prog,DS:mydata begin: MOV AX, mydata MOV DS, AX MOV SI, OFFSET decnum MOV CX, 5 ;5位BCD数 MOV BX, 10 XOR AX, AX ;中间结果初始值为0 Next: MUL BX ;中间结果*10+本位数字 ADD AL, [SI] ADC AH, 0 INC SI ;指向下位BCD数 LOOP next MOV binnum, AX ;保存结果 MOV AH, 4CH INT 21H prog ENDS END begin 程序2:把≤255的非压缩BCD数转换成2进制数 decnum DB 1,5,9 ;BCD数159 binnum DB ? …… MOV AX,decnum XCHG AH, AL ;百位在AH, 十位在AL AAD ;百位数*10 + 十位数 MOV AH, AL ;中间结果送AH MOV AL, decnum+2 AAD ;中间结果*10 + 个位数 MOV binnum, AL …… ②ASCII码→二进制数(用于输入) 程序如下: DATASEGMENT STR1DB 10,?,10 DUP(?) ;第1个数的输入缓冲区 STR2DB 10,?,10 DUP(?) ;第2个数的输入缓冲区 NUMDW ?,? ;存转换后的二进制数 SUMDW 0 ;存和 OVERDB ‘Overflow!’,13,10,’$’ DATAENDS ; CODESEGMENT ASSUME CS:CODE,DS:DATA MAINPROCFAR START: MOVAX,DATA MOVDS,AX MOVAH,0AH LEADX,STR1 INT21H ;输入第一个数字串(设为26) MOVAH,0AH LEADX,STR2 INT21H ;输入第二个数字串(设为33) LEABX,STR1 ;串1的首地址送BX LEADI,NUM ;存二进制首地址送DI CALLCHANGE ;将串1 ASCII码→二进制 LEABX,STR2 ;串2的首地址送BX LEADI,NUM+2;指向 CALLCHANGE;将串2 ASCII码→二进制 MOVAX,NUM ;(AX)=[NUM]=001AH ADDAX,NUM+2;两数相加,(AX)=003BH MOVSUM,AX;存和 JNONEXT
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论