微机原理与接口技术复习题.docx

上传人:b****7 文档编号:11473072 上传时间:2023-03-01 格式:DOCX 页数:42 大小:37.85KB
下载 相关 举报
微机原理与接口技术复习题.docx_第1页
第1页 / 共42页
微机原理与接口技术复习题.docx_第2页
第2页 / 共42页
微机原理与接口技术复习题.docx_第3页
第3页 / 共42页
微机原理与接口技术复习题.docx_第4页
第4页 / 共42页
微机原理与接口技术复习题.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术复习题.docx

《微机原理与接口技术复习题.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术复习题.docx(42页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术复习题.docx

微机原理与接口技术复习题

微机原理复习题

一、填空题

1.在8086CPU中,由于BIU和EU分开,所以_取指___和_执指___可以重叠操作,提高了CPU的利用率;

2.8086CPU从偶地址访问内存1个字时需占用1个总线周期,而从奇地址访问内存1个字操作需占用2个总线周期。

3.IBM-PC机中的内存是按段存放信息的,一个段最大存贮空间为64K字节。

4.8086微处理机在最小模式下,用M/

来控制输出地址是访问内存还是访问I/O。

5.假设(DS)=2000H,(BX)=1256H,(SI)=528FH;位移量TABLE=20A1H,(232F7H)=3280H,(264E5H)=2450H,则

执行指令JMPBX后,(IP)=1256H;

执行指令JMPTABLE[BX]后,(IP)=3280H;

执行指令JMP[BX][SI]后,(IP)=2450H。

6.数据段中有以下定义:

ARRAY1EQU16H

ARRAY2DW16H

请指出下面两条指令的寻址方式:

MOVAX,ARRAY1;寻址方式立即数寻址方式。

MOVAX,ARRAY2;寻址方式直接寻址方式。

7.指令“ANDAX,STR1ANDSTR2”中,STR1和STR2是两个已赋值的变量,两个AND的区别是前一个AND是一个命令、后一个AND是一个运算符。

8.指令LOOPZ/LOOPE是结果相等或零发生转移的指令。

而指令LOOPNZ/LOOPNE则是结果不相等或不为零发生转移的指令。

9.串处理指令规定源寄存器使用SI,源串在DS段中;目的寄存器使用DI,目的串必须在ES段中。

10.8086CPU的9个标志位中,属状态标志的有___CF,PF,AF,SF,OF,ZF______。

11.中断类型码为6的中断向量一定存放在___4___个连续单元中,若其入口地址为3040:

2010,则这四个单元中的具体内容依次为__10,20,40,30______。

12.用2k×8的SRAM芯片组成16K×16的存储器,共需SRAM芯片__16___片,片内地址和产生片选信号的地址分别为__A0-A10和A12-A16__位。

13.8086的中断向量表位于内存的__0~1kB_区域,它可以容纳__256__个中断向量,每一个向量占__4__个字节;

14.8086CPU中典型总线周期由__4__个时钟周期组成,其中T1期间,CPU输出__地址__信息;如有必要时,可以在____T3和T4____两个时钟周期之间插入1个或多个TW等待周期。

15.阅读程序回答问题:

1)源程序如下:

MOVCL4

MOVAX[2000H]

SHLAL,CL

SHRAX,CL

MOV[2000H],AX

试问:

若程序执行前,数据段内(2000H)=09H,(2001H)=03H,

则执行后有(2000H)=__39H,(2001H)=__00H__。

本程序段的功能__将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0(2001H)___。

2)源程序如下:

MOVAL,0B7H

ANDAL,0DDH

XORAL,81H

ORAL,33H

JPLAB1

JMPLAB2

试问:

执行程序后AL=__37H__;程序将转到哪一个地址执行:

_LAB2__。

3)源程序如下:

MOVCX,9

MOVAL,01H

MOVSI,1000H

NEXT:

MOV[SI],AL

INCSI

SHLAL,1

LOOPNEXT

试问:

执行本程序后有:

AL=_0____;SI=___1009H___;CX=___0___;

本程序的功能是_对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个__。

二、选择题

1.二进制数111010.11转换成十六进制数是B。

A)3ACHB)3A.CHC)3A3HD)3A.3H

2.十六进制数1CB.D8转换成二进制数是D。

A)110001011.11001B)111101011.11101C)111101011.11101D)111001011.11011

3.对微处理器而言,它的每条指令都有一定的时序,其时序关系是C

A、一个时钟周期包括几个机器周期,一个机器周期包括几个指令周期。

B、一个机器周期包括几个指令周期,一个指令周期包括几个时钟周期。

C、一个指令周期包括几个机器周期,一个机器周期包括几个时钟周期。

D、一个指令周期包括几个时钟周期,一个时钟周期包括几个机器周期。

4.属于数据寄存器组的寄存器是C

A、AX,BX,CX,DSB、SP,DX,BP,IPC、AX,BX,CX,DXD、AL,DI,SI,AH

5.微型计算机的ALU部件是包含在D之中。

A、存贮器B、I/O接口C、I/O设备D、CPU

6.在8086和8088汇编语言中,一个字能表示的有符号数的范围是B

A、-32768≤n≤32768B、-32768≤n≤32767

C、-65535≤n≤65535D、-65536≤N≤65535

7.某数存于内存数据段中,已知该数据段的段地址为2000H,而数据所在单元的偏移地址为0120H,该数的在内存的物理地址为(B)

A.02120HB.20120HC.21200HD.03200H

8.8086/8088系统中,对存贮器进行写操作时,CPU输出控制信号有效的是(A)

A.W/

=1,

=0B.

=1C.M/

=0,

=0D.

=0

9.在8086/8088微机系统中,将AL内容送到I/O接口中,使用的指令是(D)

A.INAL,端口地址B.MOVAL,端口地址

C.OUTAL,端口地址D.OUT端口地址,AL

10.执行下列程序,选择正确的结果:

MOVSP,2000H

MOVAX,0F0H

MOVSI,1234H

MOVDX,5678H

PUSHSI

POPDI

SHLDX,1

TESTAX,DX

PUSHDX

HLT

(1)SP=D;

A)2000HB)1FFFHC)2001HD)1FFEH

(2)DH内容所在存储器的偏移地址为A;

A)1FFFHB)1FFEHC)1FFDHD)1FFCH

(3)DL内容所在存储器的偏移地址为B;

A)1FFFHB)1FFEHC)2000HD)1FFCH

(4)(AX)=C;

A)0HB)78HC)0F0HD)56H

(5)(DI)=A。

A)1234HB)5678HC)2000HD)00F0H

(6)(DX)=B;

A)5678HB)0ACF0HC)2B3CHD)0ABF0H

(7)标志位ZF=A。

A)0B)1C)不定D)无值

11.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。

DATASEGMENT

FIRSTDBB

(1),A

(2),0H

SECONDDBD(3),C(4)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,B(5)

MOVSI,0

A(6)

NEXT:

MOVAL,SECOND[SI]

ADCFIRST[SI],AL

INCSI

LOOPNEXT

MOVAL,0

ADCAL,C(7)

MOVFIRST[SI],AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请选择正确的答案填入空格中:

(1)A)8AHB)0BHC)D7HD)05H

(2)A)8AHB)0BHC)D7HD)05H

(3)A)8AHB)0BHC)D7HD)05H

(4)A)8AHB)0BHC)D7HD)05H

(5)A)3B)2C)1D)4

(6)A)CLCB)CLDC)STCD)CLI

(7)A)1B)-1C)0D)0FFH

12.已知BX=7830H,CF=1,执行指令:

ADCBX,87CFH之后,BX=___FFFFH_____,

标志位的状态分别为CF=__1____,ZF=___1___,OF=___0____,SF=___0____。

三、是非判断题(正确的填‘A’,错误的填‘B’)

1.对于种类不同的计算机,其机器指令系统都是相同的。

(B)

2.在计算机中,数据单位bit的意思是字节。

(B)

3.程序在数据段中的定义如下:

DATASEGMENT

NAMESDB‘ABCD’

NAMETDW20

DATAENDS

请判断下列指令是否正确?

正确的填‘A’,错误的填‘B’。

(1)MOVBX,OFFSETNAMES(A)

(2)MOVAX,NAMES(B)

(3)MOVAX,WORDPTRNAMES+1(A)

(4)MOVAL,NAMET(B)

(5)MOVAL,BYTEPTRNAMET(A)

(6)MOVAX,DATA(A)

(7)MOVDS,AX(A)

(8)MOVBX,DATA(A)

4.判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现。

(1)MOVAL,BX(5)MOV[BX],[SI](9)PUSHAL

(2)MOVAL,SL(6)MOVDX,2000H(10)POP[BX]

(3)INC[BX](7)POPCS(11)PUSHIP

(4)MOV5,AL(8)MOVES,3278H(12)SHLAX,5

答:

(1)错,源操作数为字类型,目的操作数为字节类型,二者不一致。

应改为:

MOVAX,BX或MOVAL,BL;

(2)错,SI寄存器不能分为高8位和低8位使用,即没有SL寄存器。

应改为:

MOVAX,SI

(3)错,未指定操作数的类型。

应改为:

INCBYTEPTR[BX]

(4)错,目的操作数使用了立即数,在指令中一般不允许。

应改为:

MOVDS:

[5],AL

(5)错,源操作数和目的操作数均为内存单元,不允许。

应改为:

MOVAX,[SI]

MOV[BX],AX

(6)正确。

(7)错,不能将栈顶数据弹至CS中。

(8)错,立即数不能直接送ES寄存器。

应改为:

MOVAX,3278H

MOVES,AX

(9)错,栈操作不能按字节进行。

应改为:

PUSHAX

(10)正确。

(11)错,不能用IP寄存器做源操作数。

(12)错,不能用大于己于1的立即数指出移位位数。

应改为:

MOVCL,5

SHLAX,CL

五、分析及编程题

1、写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。

要求使用以下几种寻址方式:

(1)寄存器间接寻址

(2)寄存器相对寻址

(3)基址变址寻址

答:

(1)MOVBX,BLOCK

ADDBX,12

MOVDX,[BX]

(2)MOVBX,BLOCK

MOVDX,[BX+12]

(3)MOVBX,BLOCK

MOVSI,12

MOVDX,[BX+SI]

2、现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

(1)MOVAX,1200H

(2)MOVAX,BX

(3)MOVAX,[1200H]

(4)MOVAX,[BX]

(5)MOVAX,[BX+1100]

(6)MOVAX,[BX+SI]

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

答:

(1)AX寄存器的内容为1200H;

(2)AX寄存器的内容为0100H;

(3)将从物理地址=(DS)*10H+1200H=21200H开始的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;

(4)将从物理地址=(DS)*10H+(BX)=20100H开始的两个单元内容送AX,执行完后AX寄存器的内容为3412H;

(5)将从物理地址=(DS)*10H+(BX)+1100H=21200H开始的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;

(6)将从物理地址=(DS)*10H+(BX)+(SI)=20102H开始的两个单元内容送AX,执行完后AX寄存器的内容为7856H;

(7)将从物理地址=(DS)*10H+(BX)+(SI)+1100H=21202H开始的两个单元内容送AX,故执行完后AX寄存器的内容为65B7H;

3、试述指令MOVAX,2010H和MOVAX,DS:

[2010H]的区别。

答:

指令MOVAX,2010H是将立即数2010H送AX寄存器,而指令MOVAX,DS:

[2010H]是将DS段有效地址为2010H的两个单元的内容送AX。

4、设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:

(1)执行指令PUSHAX后(SP)=?

(2)再执行PUSHBX及POPAX后(SP)=?

(AX)=?

(BX)=?

答:

(1)执行指令PUSHAX后(SP)=2000H-2=1FFEH;

(2)再执行PUSHBX及POPAX后(SP)=1FFEH,(AX)=5000H,(BX)=5000H

5、要想完成把[2000H]送[1000H]中,用指令:

MOV[1000H],[2000H]是否正确?

如果不正确,应用什么方法?

答:

把[2000H]送[1000H]中,用指令MOV[1000H],[2000H]不正确

应改为:

MOVAX,[2000H]MOV[1000H],AX

6、假如想从200中减去AL中的内容,用SUB200,AL是否正确?

如果不正确,应用什么方法?

答:

想从200中减去AL中的内容,用SUB200,AL不正确

应改为:

MOVBL,200

SUBBL,AL

7、设AX和BX寄存器中是有符号数,CX和DX寄存器中是无符号数,写出下列条件转移指令。

(1)CX值高于或等于DX值,则转移HIEQU

(2)AX值大于BX值,则转移GREAT

(3)CX值为0,则转移ZERO

(4)AX值小于或等于BX值,则转移SMAEQU

(5)CX值低于或等于DX值,则转移LOWEQU

(6)AX为负值,则转移NEGAT

(7)AX为偶数,则转移IMAGE

答案:

(1)CMPCX,DX

JNBHIEQU

HIEQU:

(2)CMPAX,BX

JGGREAT

GREAT:

(3)CMPCX,0

JZZERO

ZERO:

(4)CMPAX,BX

JLESMAEQU

SMAEQU:

(5)CMPCX,DX

JBELOWEQU

LOWEQU:

(6)CMPAX,0

JSNEGAT

NEGAT:

(7)TESTAX,AX

JPIMAGE

IMAGE:

8、分别写出实现如下功能的程序段

(1)双字减法(被减数7B1D2A79H,减数53E2345FH)。

(2)使用移位指令实现一个字乘18的运算。

(3)将AX中间8位,BX低四位,DX高四位拼成一个新字。

(4)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来

答:

(1)双字减法的程序段是:

MOVAX,2A79H;被减数的低位字送AX

SUBAX,345FH;低位字相减,结果送AX

MOVBX,7B1DH;被减数的高位字送BX

SBBBX,53E2H;高位字相减处并减去低位字相减产生的借位,结果送BX

(2)使用移位指令实现一个字乘18的程序段是:

MOVAX,05F7H;被乘数送AX

SHLAX,1;被乘数乘以2,结果在AX中

MOVBX,AX;被乘数乘以2的结果暂存到BX

MOVCL,3;设置移位位数3

SHLAX,CL;被乘数再乘以8(共乘以16),结果在AX中

ADDAX,BX;被乘数再乘以18,结果在AX中

(3)将AX中间8位,BX低四位,DX高四位拼成一个新字的程序段是:

ANDDX,0F000H;将DX的低12位清零,高4位不变

ANDAX,0FF0H;将AX的低4位清零,高4位清零,中间8位不变

ANDBX,0FH;将BX的高12位清零,低4位不变

ADDAX,BX

ADDAX,DX;按要求组成一个新字,结果放在AX中。

(4)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来的程序段是:

MOVAL,[BX];数据段中BX为偏移地址的字单元内容送AX

XCHGAL,[BX+3];数据段中BX+3为偏移地址的字单元内容与AX的内容交换

MOV[BX],AL;数据段中BX+3为偏移地址的字单元内容送BX为偏移地址的字单元

MOVAL,[BX+1];数据段中BX+1为偏移地址的字单元内容送AX

XCHGAL,[BX+2];数据段中BX+2为偏移地址的字单元内容与AX的内容交换

MOV[BX+1],AL;数据段中BX+2为偏移地址的字单元内容送BX+1为偏移地址的字单元

9、根据下列要求编写一个汇编语言程序:

(1)代码段的段名为COD_SG

(2)数据段的段名为DAT_SG

(3)堆栈段的段名为STK_SG

(4)变量HIGH_DAT所包含的数据为95

(5)将变量HIGH_DAT装入寄存器AH,BH和DL

(6)程序运行的入口地址为START

答案:

DAT_SGSEGEMNT

HIGH_DATDB95

DAT_SGENDS

STK_SGSEGMENT

DW64DUP(?

STK_SGENDS

COD_SGSEGMENT

MAINPROCFAR

ASSUMECS:

COD_SG,DS:

DAT_SG,SS:

STK_SG

START:

MOVAX,DAT-SG

MOVDS,AX

MOVAH,HIGH_DAT

MOVBH,AH

MOVDL,AH

MOVAH,4CH

INT21H

MAINENDP

COD_SGENDS

ENDSTART

10、定义一个数据段的字符变量和数据变量。

(1)TRING为字符串变量:

‘Personalcomputer’

(2)VALD为十进制数字节变量12,99

(3)VALH为十六进制数字变量32H,0FAH

(4)VALZ为10个零的字节变量

(5)VALW为20个字单元

答案:

DATASEGMENT

TRINGDB‘Personalcomputer’

VALDDB12,99

VALHDB32H,0FAH

VALZDB10DUP(‘0’)

VALWDW20DUP(?

DATAENDS

11、下面的数据项设置了多少个字节?

(1)ASC_DATADB‘1234’

(2)HEX_DATADB1234H

答案:

(1)设置了4个字节

(2)设置了2个字节

12、设有如下汇编程序:

DATASEGMENT

TABLE_ADDRDW1234H

DATAENDS

MOVBX,TABLE_ADDR

LEABX,TABLE_ADDR

请写出上述两条指令执行后,BX寄存器中的内容。

答案:

MOVBX,TABLE_ADDR;执行后(BX)=1234H

LEABX,TABLE_ADDR;执行后(BX)=OFFSETTABLE_ADDR

13、写出分配给下列中断类型号在中断向量表中的物理地址。

(1)INT12H

(2)INT8

答案:

(1)00048h

(2)00020h

14、AR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。

(1)ADDVAR1,VAR2

(2)SUBAL,VAR1

(3)JMPLAB[SI](4)JNZVAR1

答案:

(1)源和目的不能同为内存变量

(2)两个类型不匹配

(3)LAB为标号不为符号常量

(4)JNZ可跳转到标号,不能跳转到变量。

 

课后题及参考答案

习题2

2.3将下列十进制数分别转换为二进制数

(1)147=128+16+2+1=27+24+21+20=10010011

(2)4095=4*1024-1=22*2*10-1=212-1=1000000000000-1=111111111111

(3)0.625=0.5+0.125=0.101

(4)0.15625=0.00101

2.4将下列二进制数分别转换为BCD码

(1)1011B=11D=00010001

(2)0.01B=0.25D=0.00100101

(3)10101.101B=21.625=00100001.011000100101

(4)11011.001B=27.125D=00100111.000100100101

2.5将下列二进制数分别转换为八进制和十六进制数

(1)10101011B=253Q=0ABH

(2)1011110011B=1363Q=2F3H

(3)0.01101011B=0.326Q=0.6BH

(4)11101010.0011B=352.14Q=0EA.3H

2.6选取字长n为8位和16位两种情况,求下列十进制数的原码

(1)X=+63

X=+64-1=+26-1=+1000000-1=+111111=00111111

n=8时:

X原码=00111111

n=16时:

X原码=0000000000111111

(2)Y=-63

Y=10111111

n=8时:

Y原码=10111111

n=16时:

X原码=1000000000111111

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

当前位置:首页 > PPT模板 > 其它模板

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

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