接口与汇编程序设计作业答案.docx

上传人:b****1 文档编号:2298757 上传时间:2022-10-28 格式:DOCX 页数:19 大小:109.59KB
下载 相关 举报
接口与汇编程序设计作业答案.docx_第1页
第1页 / 共19页
接口与汇编程序设计作业答案.docx_第2页
第2页 / 共19页
接口与汇编程序设计作业答案.docx_第3页
第3页 / 共19页
接口与汇编程序设计作业答案.docx_第4页
第4页 / 共19页
接口与汇编程序设计作业答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

接口与汇编程序设计作业答案.docx

《接口与汇编程序设计作业答案.docx》由会员分享,可在线阅读,更多相关《接口与汇编程序设计作业答案.docx(19页珍藏版)》请在冰豆网上搜索。

接口与汇编程序设计作业答案.docx

接口与汇编程序设计作业答案

习题1(教材P56)

1.8086/8088微处理器地址总线有多少位?

寻址范围是多少?

答:

20位A0-A19。

寻址范围00000H-FFFFFH

2.8086/8088微处理器分哪两部分?

各部分主要由什么组成?

答:

执行单元EU和总线接口单元BIU。

EU包括:

ALU、寄存器组、暂存器、标志寄存器、EU控制单元。

BIU包括:

指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。

4.8086/8088微处理器中有几个通用寄存器?

几个变址寄存器?

有几个指针寄存器?

几个段寄存器?

答:

8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。

2个变址寄存器SI、DI。

2个指针寄存器SP、BP。

DS、ES、SS、CS段地址寄存器。

5.8086/8088微处理器中有哪些标志位?

它们的含义和作用如何?

答:

零标志位ZF、进位标志CF、溢出标志位OF、辅助进位标志位AF、奇偶标志位PF、符号标志位SF、方向标志位DF、中断允许标志位IF、跟踪标志TF。

6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别?

1278H+3469H

答:

0001001001111000

+0011010001101001

0100011011100001

ZF=0;SF=0;CF=0;OF=0;AF=1;PF=1。

54E3H-27A0H

答:

0101010011100011

+1101100001100000(-27A0的补码)

10010110101000011

ZF=0;SF=0;CF=1;OF=0;AF=0;PF=0。

3881H+3597H

答:

0011100010000001

+0011010110010111

0110111000011000

ZF=0;SF=0;CF=0;OF=0;AF=0;PF=1。

01E3H-01E3H

答:

0000000111100011

+1111111000011101(-01E3H的补码)

10000000000000000

ZF=1;SF=0;CF=1;OF=0;AF=1;PF=1。

进位表示最高位产生进位。

溢出表示超出数的表示范围。

OF=CnCn-1

8.什么是逻辑地址?

什么是物理地址?

它们之间有什么联系?

各用在何处?

答:

逻辑地址:

产生实际地址的两个地址分量:

首地址和偏移地址。

物理地址:

内存单元地址。

用户在编写程序时只使用逻辑地址。

程序装到内存中使用物理地址。

物理地址可以通过逻辑地址求得。

9.设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?

答:

DS=B000H

11.8086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?

有何区别?

答:

最小模式只有一个CPU不需要总线控制器。

最大模式有多个微处理器,必须要总线控制器来对总线控制权进行分配。

引脚MN/MX=1工作在最小模式。

MN/MX=0工作在最大模式。

13.80486地址总线宽度为多少?

数据总线宽度为多少?

答:

80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0选择)有数据总线宽度为32位。

14.现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器中的物理地址为400A5H~400AAH,若当前的(DS)=4002H,请说明它们的偏移地址值。

如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些数据?

解:

∵物理地址=(DS)×16+偏移地址,

∴偏移地址=物理地址-(DS)×16=400A5H~400AAH-40020H=85H~8AH

至少需要访问四次存储器,每次读出一个字,即11H,3322H,5544H,66H。

(注意由于8086CPU访问内存时如果按字存储采用的是偶对齐方式),

这六个数在存储器中的存放位置如图所示。

习题2(教材P105)

1.已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12245678H,[21200H]~[21203H]依次存放2A4CB765H,说明下列每条指令执行后AX寄存器的内容。

(1)MOVAX,1200H

解:

AX=1200H

(3)MOVAX,[1200H]

解:

物理地址=DS×16+1200H=20000H+1200H=21200H,所以AX=4C2AH

(5)MOVAX,[BX+1100H]

解:

物理地址=DS×16+BX+1100H=20000H+0100H+1100H=21200H,所以AX=4C2AH

(7)MOVAX,[BX][SI+1100H]

解:

物理地址=DS×16+BX+SI+1100H=20000H+0100H+0002H+1100H=21202H,所以AX=65B7H

(2)MOVAX,BX

解:

AX=0100H

(4)MOVAX,[BX]

解:

物理地址=DS×16+BX=20000H+0100H=20100H,所以AX=2412H

(6)MOVAX,[BX][SI]

解:

物理地址=DS×16+BX+SI=20000H+0100H+0002H=20102H,所以AX=7856H

2.指出下列指令错误

(1)MOVCX,DL

答:

数据类型不匹配,CX是16位,DL是8位。

(2)MOVIP,AX

答:

指令指针不能直接修改。

(3)MOVES,1234H

答:

段地址寄存器不能直接置数。

(4)MOVES,DS

答:

段地址DS不能做源操作数。

(5)MOVAL,300

答:

300大于255,AL是8位的,最多只能存255

(6)MOV[SP],AX

答:

SP不能做间接寻址寄存器。

(7)MOVAX,BX+DI

答:

基址变址寻址必须打[]。

(8)MOV20H,AH

答:

立即数不能做目的地址单元。

3.已知数字0~9对应的格雷码依次为:

18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存放在于以TABEL为首地址(设为200H)的连续区域中。

对如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。

LEABX,TABLE;取表的首地址送BX,执行后(BX)=200H

MOVAL,8;立即数8送AL,执行后,(AL)=8

XLAT;查表,将表首地址+8((BX)+(AL))所对应单元内容送AL,

;执行后,(AL)=12H(8所对应的格雷码)

4.什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?

答:

堆栈是在内存中开的一个特殊的数据区,堆顶有堆栈指针SP与SS共同决定。

原则是:

先进后出,

两个操作:

入栈、出栈,对应指令:

PUSH(入栈)、POP(出栈)。

5.已知SS=FFA0H,SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?

MOVAX,8075H

PUSHAX

MOVAX,0F79H

PUSHAX

POPBX

POP[BX]

解:

8.请分别用一条汇编语言指令完成如下功能:

(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。

解:

ADDDX,BX

(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送AL中。

解:

ADDAL,[BX+SI]或ADDAL,[BX][SI]

(3)用寄存器BX和02BH的寄存器相对寻址方式,把存储器的一个字和CX寄存器的内容相加,并把结果送回存储器中。

解:

ADD[BX+02BH],CX或ADD02BH[BX],CX

(4)把数0A0H与AL寄存器内容相加,并把结果送AL中。

解:

ADDAL,0A0H

10.指出下列指令错误

(1)XCHG[SI],30H

答:

立即数不能作为单元地址来保存数据,所以交换指令中的两个操作数必须是地址操作数。

(2)POPCS

答:

CS不能作为寻址寄存器使用

(3)SUB[SI],[DI]

答:

算术运算指令中的两个操作数不能同时都在内存中

(4)PUSHAH

答:

PUSH指令中的操作数必须是16位操作数,AH是8位

(5)ADCAX,DS

答:

DS不能做源操作数,

(6)OUTDX,AH

答:

只能使用AL(当端口数据位是8位)或AX(端口数据位是16位)与端口交换数据

(7)INAL3FCH

答:

端口地址大于255时,必须有DX寄存器间接寻址。

20.假设DS=2000H,BX=1256H,SI=528FH,位移量TABLE=20A1H,[232F7H]=3280H,[264E5H]=2450H,试问执行下列段内间接转移指令后,转移的目的地址是什么?

(1)JMPBX

(2)JMPTABLE[BX]

(3)JMP[BX][SI]

解:

(1)JMPBX,目标地址的偏移量在BX中,所以转移的目的地址是CS:

1256H(也可以直接写成有效地址IP=1256H)。

(2)JMPTABLE[BX],目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+TABLE中,所对应的物理地址=DS×16+(BX)+TABLE=20000H+1256H+20A1H=232F7H,该单元存放的内容为3280H,所以JMPTABLE[BX]转移的目的地址是CS:

3280H(也可以直接写成有效地址IP=3280H)

(3)JMP[BX][SI]目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+(SI)中,所对应的物理地址=DS×16+(BX)+(SI)=20000H+1256H+528FH=264E5H,该单元存放的内容为4500H,所以JMPTABLE[BX]转移的目的地址是CS:

4500H(可以直接写成有效地址IP=4500H)。

23.假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断:

(1)若DX>DI,转到ABOVE执行;

(2)若AX>SI,转到GREATER执行;

(3)若CX=0,转到ZERO执行;

(4)若AX-SI产生溢出,转到OVERFLOW执行;

(5)若SI≤AX,转到LESS_EQ执行;

(6)若DI≤DX,转到BELOW_EQ执行。

解:

(1)CMPDX,DI

JAABOVE

(2)CMPAX,SI

JGGREATER

(3)CMPCX,0

JEZERO

(4)CMPAX,SI

JOOVERFLOW

(5)CMPSI,AX

JLELESS_EQ

(6)CMPDI,DX

JBEBELOW_EQ

选做题

14题(P107).已知数据段500H~600H中存放了一字符串,说明下列程序段执行后的结果。

MOVSI,600H

MOVDI,601H

MOVAX,DS

MOVES,AX

MOVCX,256

STD

REPMOVSB

24题(P108).有一个首地址为ARRAY的20个字的数组,说明下列程序的功能。

MOVCX,20

MOVAX,0

MOVSI,AX

SUM_LOOP:

ADDAX,ARRAY[SI]

ADDSI,2

LOOPSUM_LOOP

MOVETOTAL,AX

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1