《微机原理及接口技术》练习题.docx
《《微机原理及接口技术》练习题.docx》由会员分享,可在线阅读,更多相关《《微机原理及接口技术》练习题.docx(20页珍藏版)》请在冰点文库上搜索。
![《微机原理及接口技术》练习题.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/c700b279-689f-499b-94f3-000bc9ec837a/c700b279-689f-499b-94f3-000bc9ec837a1.gif)
《微机原理及接口技术》练习题
《微机原理及接口技术》练习题
●十六进制数0FFF8H表示的十进制正数为________,表示的十进制负数为________。
●十六进制数41H表示的十进制正数为________;表示的ASCII码字符是。
●十进制数57的压缩BCD编码是57h。
●已知X=+20,Y=-20,则[X]补=,[Y]补=。
●采用补码表示的8/16位二进制数真值范围是-128~127,-32768~32767。
●某带符号十进制数的补码是E9H,则该十进制数是。
●已知X=-30,Y=-27,补码运算求X+Y的值。
●一个完整的计算机系统通常应包括。
●计算机硬件中最核心的部件是cpu。
●计算机的软件系统一般分为系统软件跟应用软件两大部分。
●系统总线的组成、作用。
8086CPU的主要由EU跟BIU组成,它们的主要功能是它们的主要功能是对操作数进行算术运算和逻辑运算,并将运算结果的状态特征保存到标志(状态)寄存器FR(FlagsRegister)中。
BIU通过系统总线从内存中提取指令送到指令队列缓冲器中
●8086CPU有哪几个寄存器?
分成哪些类型?
●有14个寄存器,分别分别通用寄存器8个,控制寄存器2个,段寄存器4个。
●8086CPU中,可用作寄存器间接寻址或基址、变址寻址的地址寄存器有SI,DI。
●8086CPU中,可当16位或2个8位使用的寄存器有AX,BX,CX,DXBX、BP、SI、DI。
●8086/8088存储器分四个段,这四个段的段名是CSDSESSS;所对应的段寄存器分别是。
●IP的名称是指令指针寄存器;作用是存放EU要执行的下一个指令的偏移地址。
●堆栈操作以字为单位,按照先进后出的原则来处理。
堆栈操作中用于指示栈顶地址的寄存器是sp。
●简述寄存器AX、BX、CX、DX在指令中的特定用法。
●简述段地址寄存器与偏移地址寄存器的搭配使用规律。
●8086的数据总线和地址总线分别是16和20条。
●8086系统可访问的内存空间范围是00000-fffff;I/O地址空间范围是16kb。
●8086/8088存储器地址是分段管理的,为什么?
●
●8086/8088存储器地址分段时,每个段起始地址的特征是___段地址左移四位________。
●8088/8086存储器分段,每个段不超过64kb。
段内偏移地址从__0000_____到__ffff_____。
●8086取指令时,由cs提供的段地址和ip提供的偏移地址形成20位物理地址。
●在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。
已知DS=2150H,CS=2640H,SS=2250H,SP=100H,问题:
(1)数据段起始地址是多少?
(2)计算数据段中最多可以存放多少个字节数据?
(要有具体计算式)
(3)代码段最多可以存放多少个字节程序代码?
说明理由。
●8086/8088CPU允许最大的存储空间为1MB,因此CPU的地址总线是20位。
●逻辑地址由__段地址跟偏移地址_________组成。
●当SS=9876H,SP=4328H,执行POPF指令后,堆栈顶部的物理地址是432ah。
●在8086/8088系统中,存储器物理地址是分段组织的。
堆栈段的段地址存放在__ss___寄存器中,栈顶数据的偏移地址放在__sp___寄存器中。
代码段的段地址存放在___cs__寄存器中。
偏移地址在__ip___寄存器中。
●计算机指令由操作数和操作码两部分组成。
●用汇编语言指令所编写的程序,称为汇编源程序;经过汇编产生目标程序;目标程序经链接后产生可执行文件。
●若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作数的有效地址EA为__20a8______,其物理地址为________。
●CPU的标志寄存器中共有9个标志位,可以分为两大类,其中一类称为____状态____标志位,另一类称为___控制_____标志位。
●简述标志寄存器F中各状态标志的作用。
●在8086/8088CPU控制寄存器中,__指令指针___寄存器内容始终指向下一条指令的首地址,此时该指令物理地址计算式是___CS+IP*10_________。
●CPU要访问的某一存储单元的实际地址称为物理地址。
●列出8086指令常用的寻址方式,并各举例说明。
若为存储器操作数,说明其物理地址计算方法。
●8086汇编语言指令,按功能分成哪几类?
●写出下列指令中,源操作数的寻址方式:
MOVAX,3069H;立即数寻址
MOVAL,‘A’;
MOVAL,BH;寄存器寻址
MOVAX,[2000H];
MOVAX,ES:
[2000H];
MOVAX,BUF;BUF为变量名
MOVAX,ES:
[BX];
MOVAX,[BP];
MOVAX,COUNT[SI];
MOVAX,[BX][SI];
MOVAX,[BX][DI];
MOVAX,MASK[BX][SI];
●已知:
BX=1357H,DI=2000H,DS=2000H,CS=4000H,分别计算下面各指令中存储器操作数的物理地址。
(1)MOVAL,[BX]
(2)MOVCS:
[BX+DI],AH
●判断系列指令是否正确,如有错误,说明原因。
MOVAL,BX;
MOV[2000H],100;
PUSHBX;
OUTDX,BL;
MUL40H;
MOV[SI],[BX];
INAL,DX;
ROLAL,2;
PUSHCS;
MOVCS,2000H;
MOVAL,[BX+SI];
INAL,2F0H;
MOVCS,BX;
POPDS;
PUSHCL;
DIV40H;
MOVDS,ES;
INAL,60H;
●下列语句在存储器中分别为变量分配多少个字节?
画出示意图。
①AD1DW10HDUP(?
),10H
②COUNTEQU100
③AD2DB3DUP(2DUP(3))
④AD3DDCOUNTDUP(?
)
●画出下列伪指令定义的存储空间分配图,写出各单元内容(十六进制)。
VAR1DB'A'
VAR2DW2233H
VAR3DB2DUP(2,3),25H
●伪指令语句VARDW4DUP(1,2),?
在存储器中为变量数据区分配了字节单元。
●循环指令LOOPNZ终止循环的条件是。
●已知AX=1234H
MOVBX,AX
NOTBX
XORBX,AX
上述程序段执行后,BX=______________。
如把XOR指令改为OR指令,那么程序段执行后,BX=______________。
●为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是( )
A.DB41,42,43,44,45,46B.DW4142H,4344H,4546H
C.DW‘AB’,‘CD’,‘EF’D.DW‘BA’,‘DC’,‘FE’
●DA2DB‘AB’,‘CD’
┇
MOVAX,WORDPTRDA2+1
上述语句执行后AX中的值是。
A.‘AD’B.‘BC’
C.‘DA’D.‘CB’
●指令指针寄存器IP是用于存放代码段的______________。
●与LEABX,VAR等效的指令是______________。
●设SP初值为2000H,执行指令“PUSHAX”后,SP的值是。
●条件转移指令JB产生程序转移的条件是()
①CF=1
②CF=0
③CF=1且ZF=1
④CF=1且ZF=0
●设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1.执行SBBAL,[SI]后,正确的结果是()
①AL=5FHSF=1CF=1
②AL=60HSF=1CF=0
③AL=5FHSF=0CF=1
④AL=60HSF=0CF=0
●设AX=1000H
NEGAX
NOTAX
执行上述指令后,正确的结果是()
①AX=1001H
②AX=0FFFH
③AX=1000H
④AX=0111H
●CBW指令的功能是()
①把源操作数的符号位扩展到目的操作数中
②把AL中的符号位扩展到AH中
③把AH中的符号位扩展到AL中
④把AX中的符号位扩展到DX中
●汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是()
①Variable
②First&ld
③0FFFFH
④‘Memphis’
●要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是()
①DA1DB‘AB’
②DA1DW‘AB’
③DA1DB0ABH
④DA1DW0ABH
●MOVCL,8
ROLAX,CL
ORAX,BX
假设AX=0012H,BX=0034H,那么上述程序段执行后,AX中的结果是。
●选用NOT,AND,ORXOR逻辑指令编写一指令序列,实现将AL第0位,第2位同时置1,其他位变反。
●MOVAX,0BC5FH
MOVBX,0C0FBH
XORAX,BX
XORAX,BX
上述程序段运行后,AX=___________________,CF=____________________
●HEXDB‘0123456789ABCDEF’
HCODDB?
,?
┇
MOVBX,OFFSETHEX
MOVAL,1AH
MOVAH,AL
ANDAL,0FH
XLAT
MOVHCOD+1,AL
MOVCL,12
SHRAX,CL
XLAT
MOVHCOD,AL
上述程序段运行后,HCOD和HCOD+1两字节单元内容是什么?
●MOVBL,0FFH
ANDBL,0F0H
ORAL,0FFH
XORBL,AL
上述程序段运行后,AL=,BL=。
●MOVAX,0E453H
ADDAX,0C572H
上述程序段运行后,标志寄存器中CF=,SF=,ZF=,OF=,PF=。
●某源程序如下,在DEBUG下用反汇编命令查看程序如右边所示。
DATASEGMENT
S1DB35H,18H
S2DB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEABX,S1
MOVAL,[SI]
INCSI
ADDAL,[SI]
DAA
MOVS2,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
则变量S2的物理地址是;程序执行后,S2的值是;
代码段寄存器CS的值是。
●ADB0F8H
BDB3DUP(?
)
┇
LEADI,B
MOVCX,3
MOVAL,A
LOP:
SARAL,1
MOV[DI],AL
INCDI
LOOPLOP
上述程序段运行后,从B单元开始依次存放的数据是什么?
●已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么
MOVCX,10
LEABX,BUF
K2:
MOVAL,[BX]
CMPAL,‘Z’
JBEK1
SUBAL,20H
MOV[BX],AL
K1:
INCBX
LOOPK2
┇
●MOVCL,8
MOVAL,0
NOTAL
ROLAL,CL
CMPAL,0FFH
JZNEXT
MOVAL,0
NEXT:
……
上述程序段运行后,AL=__________________,CF=___________________
●假设SP=1006H,AX=1234H,BX=5678H:
PUSHAX
PUSHBX
POPAX
上述程序段运行后,AX、BX值有和变化,画出堆栈变化情况示意图。
●已知数据段中定义:
TABDB0C0H,0F9H,0A4H,0B0H,99H,92H
DB82H,0F8H,80H,90H,
CNTEQU$-TAB
程序段如下所示:
LEABX,TAB
MOVAL,05H
XLAT
程序段执行后AL=,CNT=。
●MOVAL,34H
ADDAL,59H;AL=
DAA;AL=
●将AL寄存器中位3清0、位5置1、位7取反,其它位保持不变,可以用什么指令系列实现?
●比较SUB指令与CMP指令的异同点。
●编写一个完整的源程序:
X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的那个数,并存入W单元中。
●在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。
DATASEGMENT
BUF1DW-56,24,54,-1,89,-8……
BUF2DW45,-23,124,345,-265,……
SUMDW10DUP(0)
DATAENDS
●编程:
把存储单元A和B中的两个压缩BCD数相加,结果存入存储单元C中,并将结果显示。
●编程:
在以BUF为首址的内存存放有0~15的平方值表。
查表求X单元中数(在0~15之间)的平方值,并送回X单元。
●编程:
将字节变量DISP的内容显示出来。
●编程:
将无符号数A、B中的大数送C单元中。
Adb0001h
Bdb0002h
Cdb?
Codesegment
Assumecs:
code
Start:
Movax,data
Movds,ax
Movax,a
Cmpax,b
Janext
Movc,ax
Jmpnext1
Next:
movc,b
Next1:
moval,4ch
Int21h
Codeends
end
●编程:
将AX的绝对值放RES单元中。
Datasegment
Xdb-35
Dataends
Codesegment
Assumecs:
code,ds:
data
Start:
Movax,data
Movds,ax
Moval,x
Cmpal,0
Jgenext
Negal
Next:
movah,4ch
Int21h
Codeends
end
●编程:
比较D1、D2单元中的字符,相同显示YES,不同显示NO。
●编程实现符号函数功能(+127≥X≥-128)。
●编程:
使用地址表法,实现多路转移。
根据字节变量NUM中哪一位为1(从低位到高位),把程序转移到8个不同的程序分支。
●编程:
已知三个带符号的字节数据a、b、c,若a、b、c同时为正数则flag单元置00H,若同时为负数,则flag单元置01H,否则flag单元置FFH。
●编程:
已知在以ARRAY为首地址的数据区中存放10个带符号字节数据:
ARRAYDB1,2,-1,3,4,-2,-3,4,5,-6
编程将ARRAY分成两个数组:
正数数组P_ARY和负数数组N_ARY。
●编程:
内存自buf单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?
并把结果连续存放到自resut开始的单元中。
●编写程序统计BUF单元开始的长度为20的字符串中包含字符‘A’的个数。
●编程:
将BUF起始的字节单元中最小的数找出来存入MIN单元中。
●编程:
已知有几个元素存放在以BUF+1为首址的字节存贮区中,个数放在BUF单元中。
试统计其中正数、负数和零的个数。
●编程:
使用冒泡法实现对N个无符号数从小到大排序。
●编程:
在字节数组中找出第一个非0的数据,并将其偏移地址存入RES单元中。
●从键盘输入一个字符,若为‘0’~‘9’的字符则显示“digital”,若为英文字母则显示“character”,其它字符显示“other”。
(可连续操作,按ESC键退出)
●简述半导体存储器的分类及特点。
●微机中地址总线的作用是。
●PCI总线频率为33.3MHz,总线宽度32位,则传输速率=
●写出下列存储器连接电路中各存储器芯片的地址。
●写出下列存储器连接电路中各存储器芯片的地址。
●简述输入/输出接口的主要作用。
●简述端口的编址方式及特点。
●下图为I/O端口地址的译码电路,A0~A2用于片内端口选择,写出各译码输出的地址范围。
●简述输入/输出指令(IN/OUT)的使用方法。
●简述输入输出的基本方法及各自特点。
●什么是中断?
为什么要引入中断技术?
●8086有哪些中断源?
●简述软件中断与硬件中断的区别。
●用DEBUG的D命令查看内存内容如下,则:
INT20的中断向量为
●简述中断处理过程的主要步骤。
●简述并行通信和串行通信的特点。
●波特率是指;该制表用于衡量。
●串行通信中,按照数据流的方向可分成、、和三种基本的传送模式。
●异步串行通信的字符帧包含8个数据位,1个校验位,1个起始位,2个停止位,若每秒钟连续发送800个字符,则波特率为。
●下图为8255与系统总线连接示意图。
分析各端口地址,编程实现:
(1)按下K0~K7键,对应的LED点亮。
(2)使LED0~LED7循环点亮(D1S为软件延时子程序)
(3)采用查询传送方式实现:
已知在内存BUF起始有N个8位数据,每当PC0出现一下降沿时,从PA口输出一个数据。
●分析8253的最大、最小计数值。
●使用8253的2号定时器,输出频率为1KHz的方波信号,试写出8253初始化程序段。
fCLK=2MHz。
●用8253产生周期为1ms的时钟波形,输入时钟CLK1周期为500ns,输出波形如下图(设8253的端口地址为240H~243H)。
(1)8253工作于哪种方式?
(2)计算计数器CH1的初值CR?
(3)写出8253初始化程序段。
●如图所示,8253各端口地址为210H~213H,要求用OUT1控制LED的点亮和熄灭,点亮1S后熄灭1S,并重复上述过程,编写8253初始化程序。
●简述同步通信、异步通信的特点。
●简述串行通信制式有哪几种。
●设数据传送的速率为12000字符/分钟,每个字符(帧)包括1个起始位、8个数据位、1个停止位,则传送的波特率为
●ADC0809与系统总线连接如下图,采用延时等待或查询方式编写采集一次IN5的程序段。
●简述汇编语言程序调试的过程。
●简述DEBUG常用命令的功能和使用方法。
(A、D、E、G、L、N、R、T、U、W…)datasegmentbufdb40h,64h,51h…resutdb3dup(0)datastacksegmentstackdb100dup(0)
stackends
codesegment
assumeds∶data,es∶data,ss∶stack,cs∶code
startprocfar
pushds
movax,0
pushax
movax,data
movds,ax
moves,ax
mov、ax,stack
movss,ax
leasi,buf
movcx,100
cld
ao:
lodsb
cmpal,5ah
jll60
inc[resut]
jmpcom
l60:
cmpal,3ch
jgek8960
inc[resut+1]
jmpcom
k8960:
inc[resut+2]
com:
loopao
ret
startendp
codeends
endstart
●
●
●
●
●
●
●
●CODE STGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,10
LEA SI,BUF1
LEA DI,BUF2
LEA BX,SUM
NEXT:
MOV AX,[SI]
MOV DX,[DI]
TEST AX,8000H
JE TDX
NEG AX
TDX:
TEST DX,8000H
JE ADDS
NEG DX
ADDS:
ADD AX,DX
MOV[BX],AX
ADD SI,2
ADD DI,2
ADD BX,2
LOOP NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START