微机原理14答案文档格式.docx

上传人:b****6 文档编号:8595613 上传时间:2023-05-12 格式:DOCX 页数:18 大小:34.66KB
下载 相关 举报
微机原理14答案文档格式.docx_第1页
第1页 / 共18页
微机原理14答案文档格式.docx_第2页
第2页 / 共18页
微机原理14答案文档格式.docx_第3页
第3页 / 共18页
微机原理14答案文档格式.docx_第4页
第4页 / 共18页
微机原理14答案文档格式.docx_第5页
第5页 / 共18页
微机原理14答案文档格式.docx_第6页
第6页 / 共18页
微机原理14答案文档格式.docx_第7页
第7页 / 共18页
微机原理14答案文档格式.docx_第8页
第8页 / 共18页
微机原理14答案文档格式.docx_第9页
第9页 / 共18页
微机原理14答案文档格式.docx_第10页
第10页 / 共18页
微机原理14答案文档格式.docx_第11页
第11页 / 共18页
微机原理14答案文档格式.docx_第12页
第12页 / 共18页
微机原理14答案文档格式.docx_第13页
第13页 / 共18页
微机原理14答案文档格式.docx_第14页
第14页 / 共18页
微机原理14答案文档格式.docx_第15页
第15页 / 共18页
微机原理14答案文档格式.docx_第16页
第16页 / 共18页
微机原理14答案文档格式.docx_第17页
第17页 / 共18页
微机原理14答案文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理14答案文档格式.docx

《微机原理14答案文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理14答案文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

微机原理14答案文档格式.docx

用符号标志位SF来判断,SF=1,为负数;

SF=0,为正数。

⑶两数相加后是否溢出?

用溢出标志位来判断,OF=1,产生溢出;

OF=0,没有溢出。

⑷采用偶校验方式。

判定是否要补“1”?

用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;

有奇数个“1”时,PF=0,需要补“1”。

(5)两数相减后比较大小?

●ZF=1时,说明两数是相等的;

●ZF=0时:

无符号数时,CF=0,被减数大;

CF=1,被减数小。

带符号数时,SF=OF=0或SF=OF=1,被减数大;

SF=1,OF=0或SF=0,OF1,被减数小。

(6)中断信号能否允许?

用中断标志位来判断,IF=1,允许CPU响应可屏蔽中断;

IF=0,不响应。

 

5.要完成下述运算或控制,用什么标志位判断?

将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。

用中断标志位来判断,IF=1,允许CPU响应可屏蔽中断;

6.8086系统中存储器采用什么结构?

用什么信号来选中存储体?

8086存储器采用分体式结构:

偶地址存储体和奇地址存储体,各为512k。

用A0和BHE来选择存储体。

当A0=0时,访问偶地址存储体;

当BHE=0时,访问奇地址存储体;

当A0=0,BHE=0时,访问两个存储体。

9.实模式下,段寄存器装入如下数据,写出每段的起始和结束地址。

a)1000H10000H~1FFFFH

b)1234H12340H~2233FH

c)2300H23000H~32FFFH

d)E000HE0000H~EFFFFH

e)AB00HAB000H~BAFFFH

10.在实模式下对下列CS:

IP的组合,求出要执行的下一条指令的存储器地址。

a)CS:

IP=1000H:

2000H12000H

b)CS:

IP=2000H:

1000H21000H

c)CS:

IP=1A00H:

B000H25000H

d)CS:

IP=3456H:

AB09H3F069H

11.实模式下,求下列寄存器组合所寻址的存储单元地址:

a)DS=1000H,DI=2000H12000H

b)SS=2300H,BP=3200H26200H

c)DS=A000H,BX=1000HA1000H

d)SS=2900H,SP=3A00H2CA00H

12.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?

若再出栈6个字节,SP为什么值?

堆栈段的物理地址范围:

35000H~44FFFH

当前栈顶的物理地址为:

35000H+0800H=35800H

入栈10个字节以后:

SP=0800H-000AH=07F6H

出栈6个字节以后:

SP=07F6H+0006H=07FCH

13.某程序数据段中存放了两个字,1EE5H和2A8CH,已知DS=7850H,数据存放的偏移地址为3121H及285AH。

试画图说明它们在存储器中的存放情况。

若要读取这个两个字,需要对存储器进行几次操作?

它们的物理地址分别是:

78500H+3121H=7B621H,78500H+285AH=7AD5AH。

1EE5H的偏移地址是3121H,是奇地址,需要进行两次操作;

2A8CH的偏移地址是285AH,是偶地址,需要一次操作。

15.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?

最小模式为单机系统,系统中所需要的控制信号由CPU提供,实现和存储器及I/O接口电路的连接。

最大模式可以构成多处理器/协处理器系统,即一个系统中存在两个以上微处理器,每个处理器执行自己的程序。

系统中所需要的控制信号由总线控制器8288提供,8086CPU提供信号控制8288,以实现全局资源分配及总线控制权传递。

在两种模式中,CPU的24~31引脚意义不同。

最小模式中引脚MN/MX接+5V,最大模式中该引脚接地。

16.8086系统中为什么要用地址锁存器?

8282地址锁存器与CPU如何连接?

CPU与存储器(或者I/O端口)进行数据交换时,CPU首先要送出地址信号,然后再发出控制信号及传送数据。

由于8086引脚的限制,地址和数据分时复用一组总线,所以要加入地址锁存器,先锁存地址,使在读/写总线周期内地址稳定。

8282是三态缓冲的8位数据交换锁存器,由选通信号STB与CPU的地址锁存允许信号ALE相连,当STB端选通信号出现,8位输入数据锁存到8个D触发器中。

17.哪个标志位控制CPU的INTR引脚?

中断允许标志位IF控制INTR引脚的中断输入。

18.什么叫总线周期?

在CPU读/写总线周期中,数据在哪个机器状态出现在数据总线上?

总线周期:

BIU完成一次访问存储器或I/O端口操作所需要的时间。

读总线周期,在T3或TW状态数据出现在数据总线上;

写总线周期,在T2状态数据出现在数据总线上。

20.8086CPU重新启动后,从何处开始执行指令?

从内存的FFFF0H开始执行指令。

21.8086CPU最小模式系统配置包括哪几部分?

包括时钟发生器、地址锁存器、数据收发器、存储器及I/O接口。

补充题1:

已知段地址和偏移地址分别为2015H和0028H,此存储单元的物理地址是什么?

存储单元的物理地址:

20150H+0028H=20178H

补充题2:

若CS=A000H,求当前代码在存储器中的物理地址范围是什么?

若数据段位于52000H到61FFFH的64K范围内,问DS=?

物理地址范围:

A0000H~AFFFFH,DS=5200H。

微机原理与接口技术

第三章作业习题课

2.

DS=1000H,BX=0200H,SI=0002H

(10200H~10205H)依次存有10H,2AH,3CH,46H,59H,6BH

(1)MOVAX,0200H;

AX=0200

(2)MOVAX,[200H]

物理地址=1000H×

10H+0200H=10200H,AX=2A10H

(3)MOVAX,BX;

AX=0200H

(4)MOVAX,3[BX]

10H+0200H+3H=10203H,AX=5946H

(5)MOVAX,[BX+SI]

10H+0200H+2H=10202H,AX=463CH

(6)MOVAX,2[BX+SI]

10H+200H+2H+2H=10204H,AX=6B59H

3.

DS=1000H,ES=2000H,SS=3500H,

SI=00A0H,DI=0024H,BX=0100H,BP=0200H,VAL=0030H

(1)MOVAX,[100H]直接寻址方式,10100H

物理地址=DS×

10H+100H=10000H+0100H=10100H

(2)MOVAX,VAL直接寻址方式,10030H

10H+VAL=10000H+0030H=10030H

(3)MOVAX,[BX]寄存器间接寻址,10100H

10H+BX=10000H+0100H=10100H

(4)MOVAX,ES:

[BX]寄存器间接寻址,20100H

物理地址=ES×

10H+BX=20000H+0100H=20100H

(5)MOVAX,[SI]寄存器间接寻址,100A0H

物理地址=DS×

10H+SI=10000H+00A0H=100A0H

(6)MOVAX,[BX+10H]寄存器相对寻址,10110H

10H+BX+10H=10000H+0100H+10H=10110H

(7)MOVAX,[BP]寄存器间接寻址,35200H

物理地址=SS×

10H+BP=35000H+0200H=35200H

(8)MOVAX,VAL[BP][SI]相对基址变址寻址,352D0H

10H+BP+SI+VAL

=35000H+0200H+00A0H+0030H=352D0H

(9)MOVAX,VAL[BX][DI]相对基址变址寻址,10154H

10H+BX+DI+VAL

=10000H+0100H+0024H+0030H=10154H

(10)MOVAX,[BP][DI]基址变址寻址,35224H

10H+BP+DI

=35000H+0200H+0024H=35224H

6.

(1)MOVDL,AX

错,寄存器寻址方式中,目的操作数与源操作数长度必须一致

(2)MOV8650H,AX

错,目的操作数不可以是立即数

(3)MOVDS,0200H

错,MOV指令不允许将立即数传入段寄存器

(4)MOV[BX],[1200H]

错,MOV指令的两个操作数不能同时为存储器

(5)MOVIP,0FFH

错,IP不能作为MOV指令的目的操作数

(6)MOV[BX+SI+3],IP

错,IP不能作为MOV指令的源操作数

(7)MOVAX,[BX][BP]

错,BX与BP不可以同时出现在源操作数当中

(8)MOVAL,ES:

[BP]对

(9)MOVDL,[SI][DI]

错,SI与DI是两个变址寄存器,不可以同时出现在源操作数中。

(10)MOVAX,OFFSET0A20H

错,OFFSET后面跟的应该是符号地址,再把符号地址的值作为操作数。

(11)MOVAL,OFFSETTABLE

错,TABLE的偏移地址是16位,目的与源长度不一致

(12)XCHGAL,50H

错,交换指令可以在寄存器之间,寄存器和存储器之间进行,不可以是立即数。

(13)INBL,05H

错,BL不能作为IN指令的目的操作数,只能用AL或AX

(14)OUTAL,0FFEH

错,端口地址0FFEH>

FFH,应用DX间接寻址,同时源操作数和目标操作数的位置颠倒了,应改为OUTDX,AL。

10.ARRAYDB…………

NEWDB7DUP(?

SUMDW0

AVERAGEDB0

(1)MOVCX,07H

MOVBX,00H

NEXT:

MOVAL,ARRAY[BX]

ADDAL,5

DAA

MOVNEW[BX],AL

INCBX

LOOPNEXT

HLT

(2)MOVCX,06H

MOVBX,01H

MOVAH,00H

MOVAL,ARRAY

L1:

ADDAL,ARRAY[BX]

ADCAH,00H;

将进位加到AH中

LOOPL1

MOVSUM,AX

(3)MOVDX,SUM;

DX=0×

×

H(BCD码)

MOVBL,07H

MOVAX,DX;

取千位、百位数

ANDAL,0F0H

MOVCL,04H

ROLAL,CL;

AX=0×

H

AAD;

AL←AH×

10+AL,AH←00

DIVBL;

十位商在AL中,余数在AH中

MOVAVERAGE+1,AL;

存平均成绩十位

MOVAL,DL;

取个位和数

ANDAL,0FH

AAD;

个位商在AL中,余数在AH中

MOVAVERAGE,AL;

存平均成绩个位

MOVAVERAGE+2,AH;

存余数

11.AX=2508H,BX=0F36H,CX=0004H,DX=1864H

(1)ANDAH,CL

AH=04H,CF=0;

(00100101B与00000100B)

(2)ORBL,30H

BL=36H,CF=0;

(00110110B或00110000B)

(3)NOTAX

AX=DAF7H,CF无影响;

(0010010100001000B取反后1101101011110111B)

(4)XORCX,0FFF0H

CX=FFF4H,CF=0;

(0000000000000100B和1111111111110000B异或后1111111111110100B)

(5)TESTDH,0FH

TEST操作并不修改结果,CF=0;

(6)CMPCX,00H

CMP操作并不修改结果,CF=0;

(7)SHRDX,CL

DX=0186H,CF=0;

(8)SARAL,1

(9)SHLBH,CL

BH=F0H,CF=0;

(10)SALAX,1

AX=4A10H,CF=0;

(0010010100001000B左移)

(11)RCLBX,1

若程序执行之前CF=0,BX=1E6CH,CF=0;

若程序执行之前CF=1,BX=1E6DH,CF=0。

(12)RORDX,CL

DX=4186H,CF=0。

12.DATASEGMENT

STRINGDB‘Thepersonalcomputer&

TV’

DATAENDS

EDATASEGMENT

GET_CHARDB26DUP(?

NEW_STRDB‘Thecomputer’

EDATAENDS

(1)MOVSI,OFFSETSTRING

MOVDI,OFFSETGET_CHAR

MOVCX,001AH

CLD

REPMOVSB

(2)MOVSI,OFFSETSTRING

MOVDI,OFFSETNEW_STR

MOVCX,001AH

CLD

REPZCMPSB;

DS:

SI-ES:

DI

JNECLR_AL

MOVAL,1

JMPSET_BL

CLR_AL:

MOVAL,0

SET_BL:

MOVBL,001AH

SUBBL,CL

(3)MOVDI,OFFSETSTRING

MOVAL,‘&

L1:

SCASB;

AL-ES:

JZFIND

NEXT:

FIND:

MOVBL,‘’

MOV[DI-1],BL;

用空格替换&

JMPNEXT

(4)MOVSI,OFFSETSTRING;

数据段,源串

MOVDI,OFFSETCAPS;

附加段,大写字符

MOVBX,OFFSETCHART;

附加段,其它字符

MOVCX,001AH

LODSB;

AL←DS:

SI

MOV[SI-1],00H;

取出字符后该单元清零

CMPAL,‘A’

JBOTHER

CMPAL,‘Z’

JAOTHER

STOSB;

存大写字符

JMPL2

OTHER:

XCHGBX,DI;

存其它字符

STOSB

XCHGBX,DI

L2:

LOOPL1

HLT

13.

(1)JMPPROG_N

段内直接近转移,目的地址为1200H:

0278H(或12278H)

(2)JMPBX

段内寄存器间接转移,目的地址为1200H:

0300H(或12300H)

(3)JMP[BX]

物理地址=DS×

10H+BX=2000H×

10H+0300H=20300H

(20300H)=4800HIP

段内存储器间接转移,目的地址为1200H:

4800H(或16800H)

(4)JMPFARPROG_F

段间立接转移,目的地址为3400H:

0ABCH(或34ABCH)

(5)JMPDWORDPTR[BX]

(20300H)=4800HIP,(20302H)=00FFHCS

段间存储器间接转移,目的地址为00FFH:

4800H(或057F0H)

JMP改为CALL后,目的地址与JMP相同。

(1)CALLPROG_N

段内直接调用,3字节指令,0103H入栈

(2)CALLBX

段内寄存器间接调用,2字节指令,0102H入栈

(3)CALL[BX]

段内存储器间接调用,2字节指令,a0102H入栈

(4)CALLFARPROG_F

段间直接调用,5字节指令,1200H和0105H分别入栈

(5)CALLDWORDPTR[BX]

段间间接调用,2字节指令,1200H和0102H分别入栈

15.

(1)LOOPNEXT

(2)LOOPENEXT

(3)LOOPNENEXT

START:

MOVAX,01H

MOVBX,02H

MOVDX,03H

MOVCX,04H

INCAX

ADDBX,AX

SHRDX,1

()

程序运行前DX=00000011B

(1)AX=05HBX=10HCX=00HDX=00H

(2)AX=02HBX=04HCX=03HDX=01H

(3)AX=03HBX=07HCX=02HDX=00H

第四章作业习题课

1.下列变量各占多少字节?

A1DW23H,5876H

A2DB3DUP(?

),0AH,0DH,‘$’

A3DD5DUP(1234H,567890H)

A4DB4DUP(3DUP(1,2,‘ABC’))

解:

A1变量占4个字节;

A2变量占6个字节;

A3变量占5×

8=40个字节;

A4变量占4×

5=60个字节;

3.有符号定义语句如下:

BUFDB3,4,5,‘123’

ABUFDB0

LEQUABUF-BUF

求L的值为多少?

BUF共定义了6个字节,则ABUF的地址为ABUF+6,因此L的值为6。

19.应考虑数组中可能出现多个0的情况

程序如下:

EDATASEGMENT;

定义数据段

BUFFDBN,XXH,……

MEQU0

EDATAENDS

;

STACKSEGMENTSTACK;

定义堆栈段

DW50HDUP(?

TOPLABELWORD

STACKENDS

CODESEGMENT;

定义代码段

ASS

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2