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

上传人:b****6 文档编号:3357541 上传时间:2022-11-22 格式:DOCX 页数:25 大小:148.92KB
下载 相关 举报
微机原理与接口技术习题集.docx_第1页
第1页 / 共25页
微机原理与接口技术习题集.docx_第2页
第2页 / 共25页
微机原理与接口技术习题集.docx_第3页
第3页 / 共25页
微机原理与接口技术习题集.docx_第4页
第4页 / 共25页
微机原理与接口技术习题集.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

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

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

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

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

4、找出下列数中的最大数

微机原理与接口技术》

(1)(10010101)2

(2)(227)8(3)(96)16(4)(145)10

5、设有两个二进制数X=01101010,Y=10001100,试比较它们的大小。

(1)X和Y均为无符号数。

(2)X和Y均为带符号数的补码。

第一章习题

一、单项选择题

1、X的8位补码是10110100,则X的16位补码是。

A)0000000010110100B)1000000010110100

C)111111*********0C)0111111110110100

二、多项选择题

1、8位数11011011B可表示。

A)无符号数219B)-37的补码C)-36的补码

D)-36的反码E)91的原码F)-91的原码

三、填空题

第二章习题

1、8086CPU与8088CPU有哪些相同之处?

有哪些不同之处?

1、计算机的硬件由、、、和等部

分组成。

2、十进制68=B=Q=H。

3、凶补=78H,则[-X]补=H。

4、设字长8位,机器数分别采用纯小数的原码、补码和反码表示时,其对应的真值

2、8086CPU从功能上分为几个部分?

各部分由什么组成?

各部分的功能是什么?

范围分别是、、(均用十进制数表示)。

5、若机器数为补码,字长16位(含1位符号位),用十六进制写出对应于定点整数的最大正数补码是,最小负数的补码是。

四、计算题

3、CPU有哪些寄存器组成?

各有什么用途?

其中标志寄存器的各标志位的含义是什么?

1、已知[X]原=11001010,求X的反码、补码。

2、用补码求[X+Y]补与[X-Y]补,并判断运算结果是否溢出。

1)已知[X]原=10101100,[Y]补=11000110

2)已知[X]反=01110110,[Y]补=00100110

4、8086/8088CPU中有几个段寄存器?

其功能是什么?

3、将下列十进制整数转换十六进制数。

(1)783

(2)5327(3)968

 

5、什么是逻辑地址、物理地址、物理地址是如何求得的?

假如CS=2000H,

IP=0100H,其物理地址是多少?

6、什么是8086/8088CPU最大模式和最小模式?

其关键区别是什么?

1、MOVAX,[BP]的源操作数物理地址为16DX(DS)

+(BP)

2、OUTDX,AL指令输出的是

16位操作数

3、MOVDS,2000H

4、PUSHAL

5、段内转移指令执行结果要改变

IP、CS的值

6、REPE/REPZ是相等/为零时重复操作,其退出条件是:

(CX)=0或ZF=0

、选择题

7、在最小模式时CPU访问内存储器,哪些信号有效?

什么是总线周期?

8086CPU的一个总线周期包括多少时钟周期,什么情况下要插入Tw等待周期?

插入多少个Tw等待周期取决于什么因素?

8、在最小模式时,CPU访问I/O接口,哪些信号有效?

9、什么是中断向量?

中断向量表指的是什么?

中断向量表放在什么地方?

假如中断

类型为20,它的中断服务入口地址是多少?

第三章习题

判断下列问题是否正确,请说明理由。

1、寄存器间接寻址方式中,操作数在中。

A)通用寄存器B)堆栈C)存储器D)段寄存器

2、假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSHAX后,存

储单元=12H。

A)20014B)20011HC)20010HD)2000FH

3、若要检查BX寄存器中的D12位是否为1,应该用指令。

A)ORBX,1000HB)TESTBX,1000H(JNZYES)

C)XORBX,1000HD)ANDBX,1000H(JNZYES)

4、用BP作基址变址寻址时,操作数所在的段是。

A)数据段B)代码段C)堆栈段D)附加段

5、含有立即数的指令中,该立即数被存放在。

A)累加器中B)指令操作码后的内存单元中

C)指令操作码前的内存单元中D)由该立即数所指定的内存单元中

6、执行下列指令后:

MOVAX,1234H

MOVCL,4

ROLAX,CL

DECAX

MOVCX,4

 

可用指令

来完成该功能。

A)REPLODSB

B)

REPSTOSB

C)REPESCASB

D)REPMOVSB

8、设(AL)

=-68,

(BL)=86

,执行SUBAL,

BL指令后,正确的结果

是。

A)CF=1B)

SF=1

C)OF=1

D)ZF=1

三、简答题

1、写出下列指令中源操作数和目的操作数的寻址方式的有

A)SCASBB)XLATC)MOVSBD)DAAE)NOPF)MULBH

4、假设(DS)=3000H,(BX)=0808H,(30808H)=012AAH,(3080A)=0BBCCH,当执行指令

2F00H,

MULCX

HLT

贝y(ax)=。

A)8D00HB)9260HC)8CA0HD)0123H

7、下列程序:

NEXT:

MOVAL,[SI]

MOVES:

[DI],AL

INCSI

INCDI

LOOPNEXT

5、假设(BX)=0449H,(BP)=0200H,(SI)=0046H,(SS)

(2F246H)=7230H则执行XCHGBX,[BP+SI]指令后,(BX)=?

6、执行下列指令序列后,完成的功能是什么?

MOVCX,4

NEXT:

SHRDX,1

RCRAX,1

LOOPNEXT

7、下列指令执行后,BX=?

MOVCL,3

MOVBX,4DABH

ROLBX,1

RORBX,CL

8、执行下列指令序列,AH=?

AL=?

MOVAL,80H

MOVBL,08H

CBW

IDIVBL

第四章习题

1、阅读程序并回答问题:

START:

INAL,20H

MOVBL,AL

INAL,30H

MOVCL,AL

MOVAX,0

MOVCH,AL

L1:

ADDAL,BL

Lesdi,[bx]”后,(di)=?

,(es)=?

ADCAH,0

LOOPL1

中。

方法一、LEABX,TABLE

HLT

(1)本程序实现什么功能?

(2)结果在哪里?

(3)用乘法指令MULBL编程并使结果不变。

(假设20H、30H端口输入的数据均为无符号数)。

2、读下述程序段,请问:

什么情况下,本段程序的执行结果是AH=0?

BEGIN:

INAL,5FH

TESTAL,80H

JZNEXT

MOVAH,0

JMPSTOP

NEXT:

MOVAH,OFFH

STOP:

HLT

3、请编写一程序段完成AXX10的任务(要求不准用乘法指令做)。

4、内存中自TABLE开始的七个单元连续存放着自然数0至6的立方值(称作立方表)。

任给一数X(0WXW6)在XX单元,查表求X的立方值,并把结果存入YY单元

MOVAH,0

MOVAL,

XX

方法二、LEABX,

MOVAL,

XLAT

MOVYY,

HLT

5、符号函数

-1

J0

卜1

TABLE

XX

AL

.0(_128

=0

:

:

:

0

假设任意给定的X值放在XX单元中,函数Y的值存放在YY单元中。

MOVAL,

XX

CMPAL,

0

JGEBIGR

MOVAL,

0FFH

MOVYY,

AL

HLT

BIGR:

JEEQUL

MOVAL,

1

MOVYY,

AL

HLT

EQUL:

MOVYY,

AL

HLT

的不同值给Y赋值的程序:

编程实现根据X

 

6、试编写一程序段,使数据段中偏移地址为0200H开始的128B单元的内容清0。

LEASI,CHR1

、S7分别存放在以S0、S1、…、S7为首地址的内存区域中,而这8个首地址偏移量连续存放在以BASE为首地址的跳转表内。

假设8种产品的编号分别为0、1、2、…、7,请编程实现根据产品编号跳转到相应的执行程序。

9、统计一个20字数据块中负元素的个数,数据块的首地址为BASE,负元素的个数存放在这20字数据块之后的单元中。

LEABX,BASE

MOVCX,20

MOVDX,0

LOP1:

MOVAX,[BX]

CMPAX,0;可用ANDAX,AX

JGEJUS

INCDX

JUS:

INCBX

INCBX

DECCX

JNZLOP1;或LOOPLOP1

INCBX

MOV[BX],DX

HLT

10、已知存储器中存放有100个8位带符号数,存储区的首地址为ARRAY,试将其中的最大值和最小值找出来,分别存放在MAX和MIN单元中。

LEASI,ARRAY

MOVCX,100

MOVAL,80H;-128送AL

LP1:

CLC

 

CMPAL,[SI]

JLBB

JMPAA

BB:

MOVAL,[SI]

AA:

INCSI

LOOPLP1

MOVMAX,AL

;找出最大数

JCNEXT

;CF=1

转NEXT

INCCH

;CF=0

则CH内容加1

JMPAA

NEXT:

INCCL

;CF=1

则CL内容加1

AA:

DECDL

JNZLP

HLT

 

12、数据段中有两个字符串,分别存在STR1和STR2开始的单元中。

比较两个字符

13、编制一个程序,对DAT字节单元中的数(255)分别统计出有多少个10,余下

有多少个5,再余下有多少个2,再余下有多少个1。

统计得到的各数分别存在

LEASI,ARRAY

MOVCX,100

MOVAL,07FH;+127送AL

LP2:

CLC

CMPAL,[SI]

JGCC

JMPDD

CC:

MOVAL,[SI]

DD:

INCSI

LOOPLP2

MOVMIN,AL;找出最小数

HLT

11、统计寄存器AX内16位二进制数中0、1的个数,0的个数存CH,1的个数存CL。

MOVCX,0;清CH、CL

MOVDL,16循环16次

CLC;清进位位

LP:

RCLAX,1;带CF循环左移

DX为0,否则使DX为0FFFFH

;取源串首地址

;取目的串首地址

;字符串长度送计数寄存器

;增地址

;串比较

;是否比较到最后字节

;串相等转EQQ

否则0送DX寄存器

;0FFFFH送DX寄存器

DAT0、DAT1、DAT2、DAT3中。

方法一:

LEABX,DAT;取首址

MOVAL,[BX];取这个字节数

 

MOVAH,0;AH清0

MOVDL,10;

DIVDL除10

MOVDAT0,AL;商即10的个数

MOVAL,AH

MOVAH,0

MOVDL,5

DIVDL

余数除5

MOVDAT1,AL;商即

的个数

MOVAL,AH

MOVAH,0

MOVDL,2

MOVDAT2,AL

MOVDAT3,AH

;商即2的个数

;余数即1的个数

方法二

:

MOVBL,DAT

;取数

MOVCL,0;

计数个数

AA:

SUBBL,10;

减10

JCBB;

借位转BB

INCCL;

否则CL加1

JMPAA

BB:

MOVDAT0,CL;存10个数

MOVCL,0

ADDBL,10;

恢复BL差值

BB1:

SUBBL,5

余数除2

DIVDL

JCCC

INCCL

JMPBB1

CC:

MOVDAT1,CL;存5个数

MOVCL,0

ADDBL,5;恢复

DD1:

SUBBL,2

JCDD

INCCL

JMPDD1

DD:

MOVDAT2,CL;存2个数

ADDBL,2

MOVDAT3,BL;存1个数

HLT

14、写出实现下列功能的指令组

(1)传送10H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容问:

最后结果AX=?

15、计算Z=((X+Y)X5-Y)/2。

设X的值为2,Y的值为1,结果存入数据段中

的DATA单元。

 

 

16、编程检测50H端口输入的字节数据,若为正,将BL清0;若为负,将BL置为

FFH。

VR3DDCONTDUP(?

VR4DB2DUP(?

,CONTDUP(0))

VR5DBHOWAREYOU?

'

解:

为VR1分配2字节;为VR2分配10字节;为VR3分配40字节;为

22字节;为VR5分配12字节。

2、下面语句有何区别?

X1EQU1000H

和X2=1000H

17、寄存器DX和AX的内容构成32位数,DX内容为高16位,AX内容为低16位,编写程序段:

1)将该32位数左移两位,并将移出的高位保存在CL的低两位中;

2)将该32位数右移两位,并将移出的低位保存在BL的低两位中。

数据段中以变址寄存器SI为偏移地址的内存单元中连续存放着十个字节压缩型BCD

解:

为X1赋值1000H,之后,不能再对X1重新赋值;为X2赋值1000H,以再对X2重新赋值。

3、分析操作符有哪几种?

分别举例加以说明

解:

(1)SEG[符号名]

如:

MOVAX,SEGDATA

码,编程求它们的BCD和,要求结果存放到AX中。

第五章习题

1、下列语句在存储器中分别为变量分配多少字节?

VR1DW9

VR2DW4DUP(?

),2

CONTEQU10

(2)OFFSET[符号名]女口:

MOVAX,OFFSETDAT

(3)TYPE[符号名]女口:

MOVAX,TYPEA

(4)SIZE[符号名]女口:

MOVAX,SIZED1

(5)LENGTH[符号名]女口:

MOVAX,LENGTHD1

注:

DATA是段名;DAT是定义的变量名;A是定义的数据类型变量名

DUP()定义的变量名。

4、8086/8088汇编语言程序中段的类型有几种,各段如何定义?

段定义中

型、组合类型、类别名各起什么作用,各有什么含义?

5、宏定义如下,请冋要把BX寄存器左移4位,如何进行宏调用?

SHIFTMACROX,Y,Z

MOVCL,X

SA&YZ,CL

ENDM

VR4分配

之后,可

D1是用

定位类

 

6、某软件共可接收10个键盘命令(分别为A、B、C、…、J),完成这10个命令的程序分别为过程P0、P1、…、P9。

编程序从键盘接收命令,并转到相应的过程去执行。

要求用两种方法:

(1)用比较、转移指令实现。

(2)用跳转表实现

7、内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90-100、60-89、60以下者各有多少人,并把结果连续存放到自RESUT开始的单元(要求画出程序流程图,各段定义完整)。

程序清单:

DATASEGMENT

;数据段

BUFDB?

?

•••,

?

;疋义学生成绩表

RESUTDB?

?

?

;放置分数段统计值

DATAENDS

STACKSEGMENT

;堆栈段

DB50DUP(0)

STACKENDS

CODESEGMENT

;堆栈段

ASSUMECS:

CODE,

DS:

DATA,SS:

STACK

MAINRPOCFAR

PUSHDS

XORAX,0

PUSHAX,0;保护DOS

MOVAX,DATA

MOVDS,AX

LEABX,BUF

;成绩表首址

MOVCX,100

;学生人数

MOVAH,0

;低于60分人数

MOVDH,0

;60-89分学生人数

MOVDL,0

;90-100分学生人数

AAA1:

MOVAL,[BX]

CMPAL,60

;与60比较

JGEBBB1

INCAH

JMPCCC1

;大于等于转BBB1

BBB1:

CMPAL,90

;与90比较

JGEBBB2

INCDL

JMPCCC1

INCAH

;大于等于转BBB2

CCC1:

INCBX

LOOPAAA1

;修改成绩表位置

MOVRESUT,

AH;存放统计结果

MOVRESUT+1

DL

MOVRESUT+2

RET

MAINENDP

DH

CODEENDS

END

8、编程序一边从键盘上接收字符,一边将其写入指定的文件,字符个数共60。

程序清单:

DATASEGMENT

ENGLISHDB'PRESSRETURNKEYTOEXIODH,OAH,‘$'

BUFDB60;第一个字节设的最大长度(含0DH-回车符)

DB0;第二个字节空出,由DOS最后填实际长度(不含0DH)

DB61DUP(0);第三字节开始写字符

DB'$'

DATAENDS

STACKSEGMENT

DW20DUP(0)

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK,DS:

DATA

BEGIN:

MOVAX,DATA

MOVDS,AX

LEADX,ENGLISH

MOVAH,09H

INT21H

LEADX,BUF

MOVAH,0AH

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDBEGIN

本题中,最多可输入60个字符,BUF中第61个内存单元可存放回车代码。

9、编制一个程序,实现DAT1和DAT2相加,数据格式如下

DAT1DB4,12H,34H,56H,78H

DAT2DB3,12H,34H,56H

其中DAT1和DAT2单元的第一个数据指定该数的字节数。

DATASEGMENTPARA'DATA

DAT1DB4,12H,34H,56H,78H

DAT2DB3,12H,34H,56H

DATAENDS

STACKSEGMENTPARA'STACK

DW100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

STARTPROCFAR

MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,DAT1

LEADI,DAT2

MOVBX,[SI]

MOVCX,[DI]

INCSI

INCDI

CLC

MM:

MOVAL,[DI]

ADC[SI],AL

INCDI

INCSI

DECBX

LOOPMM

M1:

JZ,M2

JNCM2

ADCBYTEPRT[SI],0

INCSI

DECBX

JMPM1

M2:

RET

STARTENDP

CODEENDS

END

10、编制一程序,把字符串’123456789(中的’’456清除,将字符串变为’123890

DATASEGMENTPARA’DATA'

DATDB’1234567890'

DATAENDS

STACKSEGMENTPARA’STACK'

DW100DUP⑺

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK,DS:

DATA,ES:

DATA

STARTPROCFAR

MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,DAT

LEADI,DAT

CLC

ADDDI,3

ADDSI,7

MOVCX,3

CLD

REPMOVSB

RET

STARTENDP

CODEENDS

ENDS

11、定义一条宏指令,它可以实现任一数据块的传送,只要给出源和目的数据块的首地址以及数据块的长度即可。

然后采用宏调用把BUF1开始的100个字节单元中的数据依次传送到BUF2开始的100个字节单元中。

12、已知数据段DAT单元存放某一数N(-6WNW6),请编写程序,用查表法求数N的平方值,结果送SQR单元。

DATASEGMENT

TABLEDB0,1,4,9,16,25,36

DATDBN

SQRDB?

DATAENDS

STACKSEGMENT

DW20DUP(0)

STACKENDS

ASSUMECS:

CODE,

DS:

DATA,SS:

STACK

START:

PUSHDS

XORAX,

AX

PUSHAX

LEABX,TABLE

MOVAL,

DAT

CMPAL,

6

JGAA

CMPAL,

-6

JGENEXT

JMPAA

NEXT:

XLAT

MOVSQR

,al

AA:

RET

CODEENDS

END

第六章习题

CODESEGMENT

1、可编程并行接口芯片8255A面向I/O设备一侧的端口有几个?

其中C口的使用有

哪些特点?

4、试编写程序,将从8255A的端口A输入的数据,随即向端口B输出,并对输入的数据加以判断,当大于等于80H时,置位PC5和PC2,否则复位PC5和PC2。

设825

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

当前位置:首页 > 小学教育 > 语文

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

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