- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理作业及答案
微机原理作业
汇编语言程序设计 题3.1A
在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:
MOV AL,10H M
MOV CX,1000H BL
MOV BX,2000H 1000H
MOV [CX],AL BH
XCHG CX,BX
MOV DH,[BX] CL
MOV DL,01H
XCHG CX,BX CL
MOV [BX],DL 2000H
HLT DL
AL=1OH
BL=OOH
BH=2OH
CL=OOH
CH=1OH
DH=1OH
(10O0H)=lOH
(200OH)=0lH
题 3.1B DL
要求同题 3.1A程序如下;
MOV AL,50H AL
MOV BP,1000H
MOV BX,2000H
MOV [BP],AL
MOV DH,20H
MOV [BX],DH
MOV DL,01H
MOV DL,[BX]
MOV CX,3000H
HLT
AL=5OH
BL=OOH
BH=20H
CL=OOH
CH=30H
DL=20H
DH=2OH
BP=100OH
(10OOH)=5OH
(20OOH)=20H
题3.2, 如在自1000H单元开始有一个100个数的数椐块。要把它传送到自2000H开始的存储区中去,用以下三种方法,分别编制程序;
1;不用数据块转送指令;
2;用单个转送的数据块转送指令;
3;用数据块成组转送指令;
(1) LEA SI, 1OOOH
LEA DI, 200OH
MOV CX, 100
L1: MOV AX, [SI]
MOV[DI],AX
LOOPLl
HLT
(2) LEASI,100OH
LEADI,2000H
MOVCX,100
CLD
L1: MOVSB
LOOP L1
HLT
(3) LEASI, 100OH
LEADI, 200OH
MOVCX, 100
CLD
REP MOVSB
HLT
题3.3A 利用变址寄存器遍一个程序,把自1000H单元内开始的100个数转送到自1070H开始的存储区中去,
LEASI,100OH
LEADI,1070H
MOVCX,100
CLD
REP MOVSB
HLT
题3.3B 要求用3.3A,源地址为2050H,目的地址为2000H,数据块长度为50,
LEASI,205OH
LEADI,200OH
MOVCX,50
CLD
REPMOVSB
HLT
题3.4 编一个程序,把自 1000H单元开始的100个数转送至1050H开始的存储区中(注意数据区有重叠)。
LEASI, 100OH
LEADI,1050H
ADDSI, 63H
ADDDI, 63H
MOVCX, 100
STD
REPMOVSB
HLT
题3.5A 在自0500H单元开始,存有100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零就停止传送。
LEA SI, 050OH
LEA DI, 10OOH
MOV CX, 100
N1: MOV AL, [SI]
CMP AL, 0
JZ N2
MOV[DI],AL
INC SI
INC DI
LOOPN1
N2: HLT
题3.5B 条件同题3.5A,但在传送过程中检查数的值,零不传送,不是零则传送至目的区。
题3.6 把在题3.5A中指定的数据块中的正数,传送到自1000H开始的存储区。题3.7 把在题3.5A中指定的数据块中的正数,传送到自1000H开始的存储区;而把其中的负数,传送到自1100H开始的存储区。且分别统计正数和负数的个数,分别存入1200H和1201H单元中。
HLT
题3.8A 自0500H单元开始,有10个无符号数,编一个程序求10个数的和(用8个位数运算指令),把和放到050A及050B单元中(和用两个字节表示),且高位在
文档评论(0)