微机原理与接口技术(楼顺天第二版)第四章习题解答.docVIP

微机原理与接口技术(楼顺天第二版)第四章习题解答.doc

  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章汇编语言程序设计

4.1、在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。

答:BUF DBBONJOUR_BELLE

BUFR DB100DUP(?)

MOVCX,N

LEASI,BUF

LEADI,BUFR

ADDDI,CX

DECDI

L1:

MOVAL,[SI]

MOV[DI],AL

INCSI

DECDI

LOOPL1

4.2、利用移位、传送和相加指令实现AX的内容扩大10倍。

答:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。

XOR DX,DX

SHL AX,1

RCL DX,1

MOV BX,AX

MOV CX,DX

SHL AX,1

RCL DX,1

SHL AX,1

RCL DX,1

ADD AX,BX

ADC DX,CX

4.3、在缓冲区VAR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果VAR中保存的为有符号数,那么再编写程序实现将其按递减关系排列。

答:VARDW1236,-432,3900

XORSI,,SI

MOVAX,VAR[SI]

CMPAX,VAR[SI+2]

JAEL1

XCHGAX,VAR[SI+2]

L1:

CMPAX,VAR[SI+4]

JAEL2

XCHGAX,VAR[SI+4]

L2:

MOVVAR[SI],AX

MOVAX,VAR[SI+2]

CMPAX,VAR[SI+4]

JAEL3

XCHGAX,VAR[SI+4]

L3:

MOVVAR[SI+2],AX

4.4、编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如〔AL〕,〔BL〕,那么得到的〔DX〕10011001B。

答:利用移位指令完成。

XORDX,DX

MOVCX,8

L1:

SHRAL,1

RCRDX,1

SHRBL,1

RCRDX,1

LOOPL1

4.5、在变量VAR1和VAR2中分别保存有两个字节型的正整数,编写完整的汇编语言程序实现:

〔1〕当两数中有一个奇数时,将奇数存入VAR1,偶数存入VAR2;

〔2〕当两数均为奇数时,两个变量的内容不变;

〔3〕当两数均为偶数时,两数缩小一倍后存入原处。

答:当VAR1为奇数时,不管VAR2的奇偶性,这两个单元的内容均不变;只有当VAR1为偶数时,如果VAR2为奇数,那么VAR1与VAR2内容交换;如果VAR2为偶数,那么两数缩小一倍后存入原处。

DATA SEGMENT

VAR1 DB28

VAR2 DB36

DATA ENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,ES:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AL,VAR1

MOV BL,VAR2

TEST AL,1

JZ EVEN1

JMP OVER

EVEN1:

TEST BL,1

JZ EVEN2

MOV VAR1,BL

MOV VAR2,AL

JMP OVER

EVEN2:

SHR AL,1

MOV VAR1,AL

SHR BL,1

MOV VAR2,BL

OVER:

MOV AH,4CH

MOV AL,0

INT 21H

CODE ENDS

ENDSTART

4.6、在字变量VAR1、VAR2和VAR3中保存有3个相同的代码,但有一个错码,编写程序段找出这个错码,并将它送到AX,其地址送SI;如果3个代码都相同,那么在AX中置-1标志。

答:在数据段中定义:

VAR1DW5A34H

VAR2DW5A35H

VAR3DW3A34H

在代码段中编写程序段:

MOVAX,-1

MOVBX,VAR1

CMPBX,VAR2

JZL2

CMPBX,VAR3

JZL1

MOVAX,BX

LEASI,VAR1

JMPOVER

L1:

MOVAX,VAR2

LEASI,VAR2

JMPOVER

L2:

CMPBX,VAR3

JZOVER

MOVAX,VAR3

LEASI,VAR3

OVER:

4.7

文档评论(0)

寒傲似冰 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档