微机原理第五章语言程序设计及答案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
disp proc mov dx,offset message mov ah,9 int 21h mov ax,res mov dl,al or dl,30h mov ah,2 int 21h code ends end start 程序设计举例 ●前面已经介绍了程序设计的基本方法。本节将给出一些程序设计的例子,这些例子涉及一些常用程序,通过这些例子可以掌握一些程序设计的技巧和方法。 1.  算术运算程序 【例5-44】 多字节压缩型十进制数加法。 5.6.3 分析:压缩型十进制数即用压缩型BCD码表示的十进制数。 因为是多字节数,所以可以用循环程序来完成加法 运算。每次循环完成一个字节的加法。需要注意的 是, 相加之后必须使用压缩BCD码加法调整指令 DAA进行十进制调整。 程序设计举例 1.  算术运算程序 【例5-44】 多字节压缩型十进制数加法。 5.6.3 DATA SEGMENT A DB 12H,38H,63H,… B DB 88H,27H,42H,… C DB 10 DUP(?) N EQU 10 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET A MOV DI,OFFSET B MOV BX,OFFSET C MOV CX,N CLC NEXT: MOV AL,[SI] ADC AL,[DI] DAA MOV [BX],AL INC SI INC DI INC BX LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START 若考虑最高位的进位 C DB 11 DUP(?) MOV AL,0 ADC AL,0 MOV [BX], AL 非数值处理程序 ●非数值处理即处理数值以外的数据,如字符、字符串、代码、记录和表格等。非数值处理程序有很多,主要有:代码转换、字符处理、表处理等。 (1)  代码转换 1) BCD码与ASCII码间的相互转换。 2. 程序设计举例 5.6.3 【例5-45】已知从A单元开始存有10个字节的压缩BCD码,要求 编程将其转换为ASCII码并显示在CRT上。 分析:压缩型BCD码要转换为ASCII码应该首先利用SHR 指令将高4位移至低4位的位置上,然后转换为 ASCII码送入DL,用2号调用显示;其次利用AND 指令将原数的高4位清零,然后也转换为ASCII码 送入DL,用2号调用显示。 非数值处理程序 2. 程序设计举例 5.6.3 【例5-45】压缩BCD码转换为ASCII码。 DATA SEGMENT A DB 34H,68H,… N EQU $-A DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX

文档评论(0)

我是追梦人 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档