微机原理.docx
《微机原理.docx》由会员分享,可在线阅读,更多相关《微机原理.docx(30页珍藏版)》请在冰豆网上搜索。
![微机原理.docx](https://file1.bdocx.com/fileroot1/2023-1/7/29c364cc-f6e5-4b5c-94c5-ef64336a5926/29c364cc-f6e5-4b5c-94c5-ef64336a59261.gif)
微机原理
第一章
一、
1.(68)D=()B=()H=()BCD
2.(37.75)D=()B=()H=()BCD
3.(75.25)D=()B=()H=()BCD
4.(111)D=()B=()H=()BCD
5.18.125(10)=
(2)
6.253.125D=B;
7.11011.101B=D;
8.7997=H;
9.2AE.C(16)=(10)
10.1011011.101B=H;
二、
1、(-31)的原码,反码,补码
2、(+120)的原码,反码,补码
3、若[X]补=10100101则X=(10)
4、若[X1]原=10111101B、[X2]反=10111101B、[X3]补=10111101B,则三个数中()。
A、X1最小B、X2最小C、X3最小D、X1=X2=X3
5、机器字长为16位,一个机器数为8567H,当把该数看做无符号数和有符号数(补码)时,它们的十进制真值为下面的()组。
A、34151,-3138B、34151,-31385C、1383,1383D、34151,-31384
6、某机器数为10000000B,若它表示-128,则它是()形式。
A、补码B、原码C、反码D、原码或反码
7、已知X和Y的真值,X=-1110111B,Y=+1011010B则[X+Y]=
8、16位二进制数补码的范围为()
9、16位二进制数反码的范围为()
10、()与()是系统的核心称为CPU
11、一台微型计算机必须拥有()()()()()
三、微处理器、微型计算机和微型计算机系统三者有何区别
微处理器是整个微机的核心,也称CPU。
它包含算术逻辑部件ALU、寄存器组及控制部件。
微型计算机是指以大规模、超大规模集成电路为主要部件的微处理器为核心,配以存储器、输入/输出接口电路及系统总线所制造出的计算机系统。
微型计算机系统包括硬件系统和软件系统。
硬件系统是构成计算机的实体。
它包括微处理器、存储器、I/O接口、系统总线、外部设备和电源。
软件系统指在计算机上运行的各种程序。
它包括系统软件和应用软件。
第二章
例1、设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。
则该操作数所在单元的物理地址为:
(250AH×16+0204H=252A4H)
一、
1取指令时,段地址由寄存器提供,偏移地址由寄存器提供。
2、8086系统的逻辑地址为:
(CS)=1200H,(IP)=FF00H,其物理地址应为。
3、若(CS)=4200H时,物理地址为4A230H,当CS的内容被设定为7900H时,则物理地址为。
4、某个存储单元物理地址为41DC5H,段寄存器值和逻辑地址分别为()
A4000H5918HB4000H7FEAH
C3E00H3DC5HD3000H4DC5H
二、
1、8086工作在最小模式时信号为电平。
执行INAL,DX指令时为电平,为电平,IO/M为电平。
2、总线周期是指_________________________________。
一个8086的总线周期至少包括_______个时钟周期
3、RESET信号有效后,8086CPU的启动地址()
A、FFFFFH B、0FFFFH C、FFFF0H D、00000H
4、8086的下列寄存器中,不属于通用寄存器的是。
A、SPB、AXC、DSD、BP
5、8086的通用寄存器,主要应用于操作数和结果数据的累加器的是()。
A.AXB.BXC.CXD.DX
6、在8086处理器中段寄存器为()、DS、SS和ES;分别表明代码段、()、()、()。
7、8086微处理器由两大部分组成,分别为()和(),其中()负责取指令、读出操作数和写入结果,()负责执行指令。
8、总线周期是指()。
A、CPU与存储器传输一次数据的时间
B、CPU执行一条指令所需的时间
C、CPU与存储器或I/O端口进行一次读/写操作的时间
D、CPU完成一个基本操作所需的时间
9、8086CPU中设置指令队列的目的是()。
A、保存所有执行过的指令,以便下次使用时不再去访问存储器
B、减少取指令操作与取数据操作的冲突现象
C、能够使EU和BIU并行工作,减少CPU为取指令而等待的时间
D、为了加快指令译码的时间
10.80X86CPU用于中断请求输入的引脚信号是
A)INTR和NMIB)INI和NMI
C)INTR和INTAD)INTE和IRET
11、指令寄存器IP中存放的是()。
A、当前指令B下一条要执行的指令C、操作数地址D、下一条要执行的指令的地址
12、8086复位后,程序开始执行的逻辑地址是()。
A、FFFFH:
FFF0HB、FFFFH:
0000H
C、0000H:
0000HD、1000H:
2000H
13、硬盘驱动器以DMA方式和存储器进行数据交换时,DMA控制器通过()信号向CPU申请使用总线。
A、INTRB、INTAC、HOLDD、HLDA
二、
1、下图为存储器读总线周期的时序图,解释各信号线在每个时钟状态下的动作关系及功能?
⏹T1状态:
把地址信息从地址线A19~A16、AD15~AD0上输出,且立即发出地址锁存信号ALE,将A19~A16和AD15~AD0的地址信号进行锁存。
时钟下降沿触发CPU发出区分访问存储器或外设的IO/M信号
⏹T2状态:
CPU发出读命令信号,并将AD15~AD0切换为数据总线
⏹T3状态:
采样READY线,为高电平时,准备进入T4状态
⏹TW状态:
等待状态,等待外设的READY信号,READY有效时则进入T4状态,否则继续等待
⏹T4状态:
读取数据总线上的数据,结束总线周期,恢复各信号线的初态,准备执行下一个总线周期
2、8086/8088系统中,存储器为什么要分段?
一个段最大为多少字节?
最小为多少字节?
⏹为了便于存储器的管理,最大64KB,最小16B
第三章
例1:
MOVAL,[1200H];AL=22H
MOVAX,[1200H];AX=1122H
例3-1MOVAX,3102H;AX=3102H
例2:
若AX=2233H,SI=4455H
MOVSI,AX;SI=2233H
例3-2:
MOVAX,[3102H];AX=1CFEH
物理地址=DS*16+3102H=23102H
例3-3指令MOVBL,ES:
[1200H]
ES:
为段超越前缀,表示操作数存在于附加段。
若BUFFER为变量
MOVAX,BUFFER;源操作数为直接寻址
若BUFFER为常数
MOVAX,BUFFER;源操作数为立即寻址
例3.DS=6000HSI=1200H
MOVAX,[SI]
物理地址=DS*16+1200H
例3-7DS=6000HBX=1000HDATA=0008H
操作数的物理地址=61008H
例4.MOVAX,[BX][SI]
若DS=8000H,BX=2000H,SI=1000H
例5.MOVAX,200H[DI][BX]
若DS=8000H,BX=2000H,DI=1000H
一、
1.指令MOVAX,MASK[BX+SI]中源操作数的寻址方式为()
A、寄存器寻址 B、基址变址相对寻址 C、寄存器间接寻址 D、基址加偏移量寻址
2.MOVAX,[BP][SI]指令源操作数隐含的段地址为。
A)CSB)DSC)ESD)SS
3指令MOVAX,[BP]的源操作数在()中。
A、数据段B、代码段C、堆栈段D、附加段
4、BUFFER是数据段中定义的变量,指令MOVAX,BUFFER源操作数的寻址方式是()。
A、立即寻址B、直接寻址C、相对寻址D、寄存器寻址
5、作为间接寻址的寄存器有()()()()
6、立即数寻址方式操作数存放在()段中
7、指令:
MOV DX,[BX+Dl+1200H]中的寻址方式为( )。
A、源操作数:
寄存器寻址,目的操作数:
相对基址变址寻址
B、源操作数:
相对基址变址寻址,目的操作数:
寄存器寻址
C、相对基址变址寻址
D、寄存器寻址
二、
1、按如下要求各写出一条完整的指令语句(寄存器或者地址信息请自选)
1)目的操作数为寄存器相对寻址方式(MOVMOV[BX+6],AX)
2)源操作数为直接寻址方式(MOVAX,[1234H])
三、
现有[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,BX;AX=______
⏹
(2)MOVAX,[1200H];AX=______
⏹(3)MOVAX,[BX];AX=______
⏹(4)MOVAX,1100H[BX];AX=______
⏹(5)MOVAX,[BX][SI];AX=______
⏹(6)MOVAX,1100H[BX][SI];AX=______
⏹(7)MOVAX,1200H;AX=______
答案
(1)寄存器寻址,0100H
(2)直接寻址,4C2AH
(3)寄存器间接寻址,3412H
(4)寄存器相对寻址,4C2AH
(5)基址变址寻址方式,7856H
(6)基址变址相对寻址方式,65B7H
(7)立即寻址,1200H
四、
1.下面汇编语言指令书写不正确的是。
⏹A)MOVBL,0F5H
⏹B)MOV[BX],[SI]
⏹C)MOVDX,2000H
⏹D)MOVAL,CL
2下面汇编语言指令书写正确的是()
⏹A、MOVAX,[SI][DI]B、MOVAX,5GE2
⏹C、MOV[BX],[SI]D、INC[BX]
五、
1、设堆栈指针SP的初值为2000H,AX=3000H,BX=2000H,试问:
⏹
(1)执行指令PUSHAX后,SP的值是多少?
⏹
(2)再执行PUSHBX及POPAX后,SP,AX和BX的值是多少?
2.8086CPU中,已知(SP)=0100H,(AX)=5678H,则指令PUSHAX执行后,寄存器SP和当前栈顶(字节)的内容分别为
A00FEH,78HB0l02H,56HC00FEH,56HD0l02H,78H
3、若寄存器AX,BX,CX,DX的内容分别为14,13,12,11时,依次执行PUSHAX,PUSHBX,POPCX,POPDX,PUSHCX,PUSHDX,POPAX,POPBX后,则寄存器AX和BX的内容分别为:
()
A、14,13;B、13,12C、12,11;D、14,11
4、若SP=2000H,SS=4000H,则执行POPAX指令后,栈顶的物理地址为。
5、指令POP300H[DI]的源操作数在()中。
⏹A、数据段B、代码段C、堆栈段D、附加段
6、若SP=2020H,AX=1050D,BX=8009D,则执行指令PUSHAX,PUSHBX,POPCX后,SP和CX的内容分别为:
⏹A、2018H,8009D;B、201EH,1050D;
⏹C、201EH,8009D;D、2020H,8009D
例1、BUFDW8952H,8086H,8088H,8253H
⏹MOVBX,OFFSETBUF
⏹MOVAL,5
⏹XLAT
⏹问:
AL=(80H)
六、
1已知两个符号数AL=6AH,BL=78H,执行指令ADDAL,BL后;CF,OF和AF标志的值为。
A)1,0,0B)0,1,0C)0,0,1D)0,1,1
2假设(AX)=0FEDCH,(BX)=89ABH,执行完指令ADDAX,BX后(AX)=,CF=,OF=。
3已知AX=2B45H,DX=5219H,执行完指令ADDAX,DX后,请列出各标志寄存器中各位的内容(AF,SF,CF,ZF,OF,PF)
例2、对如下程序段,试写出AX中的值。
MOVAX,0FF64H
NEGAL;AX=
SUBAL,9DH;AX=
NEGAX;AX=
DECAL;AX=
NEGAX;AX=
答案AX=0FF9CHAX=0FFFFHAX=0001HAX=0000HAX=0000H
第三章习题
一、
1、8086CPU在进行无符号数比较时,应根据标志位来判断。
A)CF,OFB)CF,PFC)CF,ZFD)ZF,OF
2、若AX、BX中均为带符号数据,执行CMPAX,BX后,标志位SF=1,OF=0,则()。
A、AX>BXB、AX≥BXC、AX3、若AX=0008H,BX=0003H,执行指令CMPAX,BX后,AX中的内容为。
A、0005HB、FFFBHC、0003HD、0008H
4、当两个无符号数作减法运算时,CF=1说明()
A、被减数小;B、被减数大;C、被减数与减数相等;D、不能确定
5、编写程序找出自BLOCK开始100个单字节带符号数的最大值,将其放入MAX单元中
LEABX,BLOCK
MOVAL,[BX]
INCBX
MOVCX,99
START:
CMPAL,[BX]
JGNEXT
MOVAL,[BX]
NEXT:
INCBX
LOOPSTART
MOVMAX,AL
6、MOVBX,3000H;
MOVAL,[BX];
MOVCX,15H;
P1:
INCBX;
CMPAL,[BX];
JNCP2;
MOVAL,[BX];
P2:
DECCX;
JNZP1;
MOVBX,4000H;
MOV[BX],AL;
HLT
该程序段的功能是找出自3000H单元开始的22个字节无符号数的最大值放在4000H单元
二、
1、MOVBL,1
AGAIN:
MOVAL,BL
INCBL
MULBL
CMPAL,100
JNAAGAIN
MOVAH,4CH
问:
执行完程序后(AX)=。
2、指令DIVCL的商存放在()中
A、CL中B、AL中C、AX中D、存储器中
例3-28从4000H开始的单元中放有32个有符号数,要求统计出其中负数的个数,并将统计结果存入BUFFER单元中
1、若(AL)=39H,则ANDAL,0FH与TESTAL,0FH执行后,AL中的内容分别为。
A)39H,39HB)09H,09HC)09H,39HD)39H,09H
2、若ax=0aaffh,则andax,0ffh与testax,0ffh执行后,ax中的内容分别为。
A)00ffh,0aaffhB)0000h,0aaffhC)0aaffh,0aaffhD)0aaffh,00ffh
3、AL=F0H;执行下列指令(每条指令分别执行):
⏹1)ANDAL,FFH;AL=()
⏹2)ORAL,FFH;AL=()
⏹3)XORAL,00H;AL=()
⏹4)SHLAL,1;AL=()
⏹5)MOVAL,NOT10101010B;AL=()
例3-32
例3-33
1设AX=3A6FH,CL=4。
若要AX=0F3A6H,应执行指令 ( )。
A、SHR AX,CL B、ROR AX,CLC、RCR AX,CL D、SARAX,CL
2若AL中的内容为05H,CL中的内容为04H,执行指令SHLAL,CL指令后,AL中的内容为()
A、09H;B、14H;C、20H;D、50H
3设初值(DX)=1234H,(AX)=5678H,执行下面的程序片段后,
MOVCL,8
SALDX,CL;执行本指令后,(DL)=
MOVCH,AH
MOVCL,4
SALAX,CL
SHRCH,CL;执行本指令后,(DL)=
ORDL,CH;执行本指令后,(DL)=
问:
(DX)=(AX)=。
⏹将AL寄存器的值算术右移一位指令为()
⏹已知AL=0B4H=10110100,(CF)=1。
试分析下列指令分别执行后对AL和CF的影响
⏹
(1)SALAL,1
⏹
(2)ROLAL,1
⏹(3)RCRAL,1
答案:
(1)AL=01101000CF=1
(2)AL=01101001CF=1(3)AL=11011010CF=0
1.自2500H单元开始有50个数的数据块,若要把它传送到自3000H开始的存储区中去,试采用3种方法编制程序实现数据块的传送
(注:
只需写出指令程序段即可)
(1)不用数据块传送指令
(2)用单个传送的数据块传送指令(3)用数据块成组传送指令
①LEASI,[2500H]
LEADI,[3000H]
MOVCX,50
L1:
MOVAX,[SI]
MOV[DI],AX
INCSI
INCDI
LOOPL1
HLT
②LEASI,[2500H]
LEADI,[3000H]
MOVCX,50
CLD
L1:
MOVSB
LOOPL1
HLT
③LEASI,[2500H]
LEADI,[3000H]
MOVCX,50
CLD
REPMOVSB
HLT
2.当使用串处理指令CMPSW寻找两串中的不同数据时,应使用的重复前缀为。
A)REPB)RPTC)REPZD)REPNZ
3.
DA1DB1AH,2BH,3CH,4DH,5EH,6FH
DA2DB6DUP(0)
LEASI,DA1+5
MOVBX,OFFSETDA2
MOVCX,604H
STD
LOP:
LODSB;
ROLAL,CL
MOV[BX],AL
INCBX
DECCH
JNZLOP
①程序执行后DA2中各字节内容是什么?
②程序中ROLAL,CL是否可用RORAL,CL指令替代,使其功能不变?
(1)DA2是F6H,E5H,D4H,C3H,B2H,A1H
(2)可以用RORAL,CL代替,运行结果和上面是一样的
1在某系统中采用中断向量处理方式处理8级外部中断,在0000H:
002CH单元开始依次存放23H,FFH,00H和F0H四个字节,问向量对应的中断类型号和中断向量分别为()
A.0CH和23FFH:
00F0H;
B.0BH和F000H:
FF23H;
C.0BH和00F0H:
23FFH;
D.0CH和F000H:
FF23H;
2、已知在存储器0004和开始的8个字节单元中分别存放数据10H,20H,30H,40H,50H,60H,70H,80H由此可知,2号中断的中断向量为()执行INT01H时,IP=()CS=()
3、8086的中断向量表()。
A、存放类型号B、存放中断处理程序入口地址参数
C、是中断处理程序入口D、是中断处理程序的返回地址
4、中断类型号为01CH的中断处理程序存放在0100H:
3800H开始的内存中,中断向量存储在地址为至的个单元中
5、PC/XT机的中断矢量表放在从H地址单元到H地址单元中,总共有
个字节。
6、中断类型号为03HH的中断对应的中断向量存放在0000:
000CH处,第0段的000CH、000DH、000EH、000FH这4个单元中的值分别为12H、34H、56H、78H则此中断子程序入口地址为CS=H、IP=H。
7、已知在存储器004H开始的8个字节单元中分别存放有数据10H,20H,30H,40H,50H,60H,70H,80H。
由此可知2号中断的中断向量为执行INT01H时IP==CS=
1、编制程序实现1至100的累加和,结果送到RESULT单元中。
(注:
只需写出指令程序段即可)
(1)XORAX,AX
MOVCX,1
MOVBX,100
LP:
ADDAX,CX
INCCX
CMPCX,BX
JBELP
MOVRESULT,AX;送结果
(2)XORAX,AX
MOVCX,100
MOVBX,1
LP:
ADDAX,BX
INCBX
LOOPLP
MOVRESULTAX
2、在LOOP指令执行时,隐含着对某寄存器减1的操作,该寄存器是()
A、AX;B、BX;C、CX;D、DX
3、指令()的源操作数寻址方式为直接寻址
AMOV[2000H],ALBOUT12H,AL
CXORAL,[2000H]DMOVAX,2000H
4、在下面8086指令中,不合法的是。
A、ADD[BX],[1000H]B、SHLAX,CL
C、OUT28H,ALD、MOVBX,0001H
5、阅读以下程序段,回答问题。
XORAX,AX
MOVBX,2
MOVCX,10
L:
ADDAX,BX
ADDBX,2
LOOPL
END
1)求2、4、6、8、10、12、14、16、18、20共10个偶数之和;
2)110
6、说出下面程序完成的功能。
LEABX,ARRAY
MOVCX,99
MOVAX,[BX]
INCBX
INCBX
ONE:
CMPAX,[BX]
JGENEXT
MOVAX,[BX]
NEXT:
ADDBX,2
LOOPONE
RET
(1)程序的功能是什么?
从ARRAY变量开始的100个字单元中,选出最大的字存放到AX中
第四章
1、设伪指令定义如下,要求将伪指令定义的数据按地址对应填入图中:
BUFFERDB?
DB‘A’,‘B’
DD1234H
2、DB伪指令以为单位分配存储单元;