2012-3-28_微机课件(黄英):第4章_习题课.pptVIP

2012-3-28_微机课件(黄英):第4章_习题课.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012-3-28_微机课件(黄英):第4章_习题课

微 机 原 理 及 应 用 第四章 汇编语言及汇编程序设计 习 题 课 主讲讲师 黄英 天地万古 人生百年 踏实勤奋 任重道远 * 1.有两个32位数分别存在DAT1和DAT2开始的内存单元中,编一程序,求两数之和,结果放到SUN开始的单元。 第四章 习题课(课本P127_第3题) 解:数据段定义 DATA SEGMENT DAT1 DW 4567H, 5678H DAT2 DW 1234H, 5678H ;假设两个数 SUN DW 2DUP(?) DATA ENDS * CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX ;送段基址 LEA SI, DAT1 ;被加数DAT1有效地址送SI LEA DI, DAT2 ;加数DAT2有效地址送DI LEA BX, SUN ;和SUN的有效地址送BX MOV AX,[SI] ;被加数低字送AX ADD AX, [DI] ;被加数低字和加数低字相加 MOV [BX], AX ;被加数低字和加数低字和送SUN的低字 ADD SI, 2 ;SI指向被加数的高字 ADD DI, 2 ;DI指向加数的高字 ADD BX, 2 ;BX指向结果的高字 MOV AX,[SI] ;被加数的高字送AX ADC AX,[DI] ;被加数的高字+加数的高字+两者低字和的进位 MOV [BX],AX ;高字和送SUN的高字 MOV AH,4CH ; INT 21H ;系统功能调用,返回DOS CODE ENDS END START * 2.有3个8位二进制数连续存放在DAT0开始的内存单元中,设它们之中至少有两个数是相同的。编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到DATE0单元,若三个数都相同则送0FFFFH到单元。 第四章 习题课(课本P127_第4题) 解:算法流程图 * ;数据段如下: DATA SEGMENT DAT0 DB a1,a2,a3 ;任意3个数 DATE0 DW ? DATA ENDS * CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX ;取数据段基址 LEA SI,DAT0 ;取DATO的有效地址送SI LEA DI,DATE0 ;取DATEO的有效地址送DI MOV AL,[SI] ;第1数送AL MOV AH,[SI+1] ;第2数送AH MOV BL,[SI+2] ;第3数送AL CMP AL,AH ;第1数和第2数比较 JZ A1 ;第1数和第2数相等,转移到A1 CMP AL,BL ;因为第1 数和第2数不等,则进行:第1数再和第3数比较 JZ A2 ;第1 数和第2数不等,第1数和第3数相等,转移到A2 MOV [DI],SI ;第1 数和第2数不等,第1数和第3数不等,第1数的偏移地址送DATA0 JMP A4 ;无条件转移到A4,程序结束 A2: ADD SI,1 ;取第2数的偏移地址 MOV [DI], SI ;第2数的偏移地址送DATA0 JMP A4 ;无条件转移到A4,程序结束 A1: CMP AL,BL ;因为第1数和第2数相等,则进行:第1数和第3数比较 JZ A3 ;第1数和第2数相等,第1数和第3数相等,转移到A3 ADD SI,2 ;第1数和第2数相等,第1数和第3数不等,取第3数的偏移地址 MOV [DI],SI ;第3数的偏移地址送DATA0 JMP A4 ;无条件转移到A4,程序结束 A3: MOV [DI], 0FFFFH ;三数相等,送0FFFFH到DATA0 A4: MOV AH,4CH INT 21H ;系统功能调用,回到DOS系统 CODE ENDS END START * 3.编写一程序,将键盘输入的大写字母转换为小写字母显示。 第四章 习题课(课本P127_第7题) 解:算法思路: A~Z:ASCII码从41H~5AH a~z: ASCII码从61H~7AH (1)大于60H,表示为小写字母,直接显示; (2)不大于60H,为大写字母,则加上20H,再显示。 · 键盘输入后,字母的ASCII码值在AL中,首先判断AL是否大于

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档