微机原理与接口技术习题答案4.docxVIP

  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文档。上传文档
查看更多
第 4 章 汇编语言程序设计 已知在 BUF 的起始处保存有 N 个字符的 ASCII 码,编写汇编语言程序实现, 将这组字符串传送到缓冲区 BUFR 中,并且使字符串的顺序与原来的顺序相反。 解: BUF BUFR  DB BONJOUR_BELLE DB 100 DUP(?) MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,[SI] MOV [DI],AL INC SI DEC DI LOOP L1 利用移位、传送和相加指令实现AX 的内容扩大 10 倍。 解:将扩大后的结果放在 DX : AX 中,注意到 10× AX =8× AX +2× AX 。 XOR SHL RCL MOV MOV SHL RCL SHL RCL  DX,DX AX, 1 DX, 1 BX,AX CX,DX AX, 1 DX, 1 AX, 1 DX, 1 ADD  AX, BX ADC  DX, CX 在缓冲区 VAR 中连续存放着 3 个 16 位的无符号数, 编写程序实现将其按递增关系排列;如果 VAR 中保存的为有符号数,则再编写程序实现将其按递减关系排列。 解: VAR DW 1236 , -432, 3900 XOR SI,,SI MOV AX,V AR[SI] CMP AX, V AR[SI+2] JAE L1 XCHG AX, V AR[SI+2] L1: CMP JAE  AX, V AR[SI+4] L2 XCHG  AX, V AR[SI+4] L2: MOV MOV CMP JAE  VAR[SI], AX AX,V AR[SI+2] AX, V AR[SI+4] L3 XCHG  AX, V AR[SI+4] L3: MOV  VAR[SI+2], AX 4. 编写程序段实现将  AL  和  BL  中的每一位依次交叉,得到的  16 位字保存在  DX  中,例 如( AL )=,(BL )=,则得到的(  DX )=10011001B。 解:利用移位指令完成。 XOR DX,DX MOV CX,8 L1: SHR RCR  AL,1 DX,1 SHR BL,1 RCR DX,1 LOOP L1 5. 在变量 VAR1 和 VAR2 中分别保存有两个字节型的正整数, 编写完整的汇编语言程序实 现: ( 1)当两数中有一个奇数时,将奇数存入 VAR1 ,偶数存入 VAR2 ; 2)当两数均为奇数时,两个变量的内容不变; 3)当两数均为偶数时,两数缩小一倍后存入原处。 解:当  VAR1  为奇数时,不论  VAR2  的奇偶性,这两个单元的内容均不变;只有当  VAR1 为偶数时,如果  VAR2  为奇数,则  VAR1  与 VAR2  内容交换;如果  VAR2  为偶数,则两数缩 小一倍后存入原处。 DATA SEGMENT VAR1 DB 28 VAR2 DB 36 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DA TA START: MOV AX, DA TA MOV DS,AX MOV ES, AX MOV AL,VAR1 MOV BL,V AR2 TEST AL,1 JZ EVEN1 JMP OVER EVEN1: TEST JZ MOV  BL,1 EVEN2 VAR1,BL MOV JMP  VAR2,AL OVER EVEN2: SHR MOV SHR MOV  AL,1 VAR1,AL BL,1 VAR2,BL OVER: CODE  MOV MOV INT ENDS END  AH,4CH AL,0 21H START 已知在字变量 VAR1 、 VAR2 和 VAR3 中保存有 3 个相同的代码,但有一个错码,编写 程序段找出这个错码,并将它送到 AX ,其地址送 SI;如果 3 个代码都相同,则在 AX 中置- 1 标志。 解:在数据段中定义: VAR1 DW 5A34H VAR2 DW 5A35H VAR3 DW 3A34H 在代码段中编写程序段: MOV  AX,-1 MOV  BX,V AR1 CMP  BX,V AR2 JZ  L2 CMP  BX,V AR3 JZ  L1 MOV  AX,BX LEA  SI,VAR1 JMP  OVER L1: MOV LEA JMP  AX,V AR2 SI,VAR2 OVER L2: CMP JZ MOV LEA  BX,V AR3 OVE

文档评论(0)

137****7230 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档