《微机原理与接口技术》第三章作业答案
- 格式:docx
- 大小:1.78 MB
- 文档页数:13
微型计算机原理和接口技术第三章课后答案本文回答了微型计算机原理和接口技术第三章的课后题目,涵盖了数字逻辑电路、组合逻辑电路、时序逻辑电路和存储器等内容。
1. 数字逻辑电路1.1. 逻辑电路和数字逻辑电路的基本概念逻辑电路是由逻辑门(与门、或门、非门等)和触发器等基本逻辑元件组合而成的电路。
数字逻辑电路是逻辑电路在数字系统中的应用,主要用于实现数字信号的逻辑运算和信号的转换等功能。
1.2. 数字逻辑门电路的组合和简化数字逻辑电路中常见的逻辑门有与门(AND)、或门(OR)、非门(NOT)等。
这些逻辑门可以通过组合和简化来构造更复杂的逻辑电路,例如与非门(NAND)、或非门(NOR)等。
1.3. 数字逻辑电路的时序特性数字逻辑电路的时序特性主要包括延迟时间、上升时间和下降时间等。
延迟时间表示信号经过电路的传播所需的时间,上升时间和下降时间表示信号从一个逻辑状态到另一个逻辑状态所需的时间。
2. 组合逻辑电路2.1. 组合逻辑电路的定义和特点组合逻辑电路是由多个逻辑门组合而成的电路,输入信号直接决定输出信号,不涉及时钟信号和状态存储。
2.2. 组合逻辑电路的设计方法组合逻辑电路的设计方法主要有真值表法、卡诺图法和特征方程法。
真值表法通过列出输入输出的真值表来进行设计,卡诺图法通过画出卡诺图进行化简,特征方程法通过建立逻辑方程进行设计。
2.3. 组合逻辑电路的应用组合逻辑电路广泛应用于数字系统中,包括逻辑运算、数据选择、数据的编码和解码等功能。
3. 时序逻辑电路3.1. 时序逻辑电路的定义和特点时序逻辑电路是由触发器和组合逻辑电路组合而成的电路,通过时钟信号来控制触发器的状态转换。
时序逻辑电路具有状态存储的功能,可以实现存储和记忆功能。
3.2. 触发器和时序逻辑电路的设计方法触发器是时序逻辑电路的基本组件,常见的触发器包括SR 触发器、D触发器和JK触发器等。
时序逻辑电路的设计方法主要是通过状态转换图、状态转移表和重建方程等方法进行设计。
第三章3-1选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2.ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 当CPU响应外部中断0后,PC的值是(B)(A)0003H (B)2000H (C)000BH (D)3000H3.执行PUSH ACC指令,MCS-51完成的操作是(A)(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(B)(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)(C)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的一位被置位(D)(A)(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区(B)(A)MOV PSW,#13H (B)MOV PSW,#18H(B)SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.47、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是(C)(D)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完左边的程序后,PC的值是(C)(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令3-2判断题。
4.MCS-51的相对转移指令最大负跳距是127B。
《微机原理与接口技术》第3章作业答案1. 简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?【解答】8086的指令格式由操作码和操作数字段组成。
操作码:要完成的操作。
操作数:参与操作的对象。
寻址:寻找操作数或操作数地址的过程。
寻址方式:指令中给出的找到操作数或操作数地址采用的方式。
8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。
其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O 端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。
2. 设(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量V AL 的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H](4) MOV AX,V AL (5) MOV AX,[BX] (6) MOV AX,ES:[BX](7) MOV AX,[BP] (8) MOV AX,[SI] (9) MOV AX,[BX+10](10) MOV AX,V AL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,V AL[BX][SI]【解答】(1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,[1000H]直接寻址,EA = 1000H,PA =(DS)×10H+EA = 2000H×10H+1000H = 21000H(4) MOV AX,V AL直接寻址,EA = [V AL] = 0050H,PA =(DS)×10H+EA = 2000H×10H+0050H = 20050H(5) MOV AX,[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H(6) MOV AX,ES:[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)×10H+EA = 2100H×10H+0100H = 21100H(7) MOV AX,[BP]寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)×10H+EA = 1500H×10H+0010H = 15010H(8) MOV AX,[SI]寄存器间接寻址,EA =(SI)= 00A0H,PA =(DS)×10H+EA = 2000H×10H+00A0H = 200A0H(9) MOV AX,[BX+10]寄存器相对寻址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)×10H+EA = 2000H×10H+010AH = 2010AH(10)MOV AX,V AL[BX]寄存器相对寻址,EA =(BX)+[V AL]= 0100H+0050H= 0150H,PA =(DS)×10H+EA = 2000H×10H+0150H = 20150H(11)MOV AX,[BX][SI]基址变址寻址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)×10H+EA = 2000H×10H +01A0H = 201A0H(12)MOV AX,V AL[BX][SI]基址变址相对寻址,EA = (BX)+(SI)+[V AL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)×10H +EA = 2000H×10H+01F0H = 201F0H3. 给定寄存器及存储单元的内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。
习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。
第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。
微机原理与接口技术习题参考答案3-13章..习题3.1 什么是总线?总线是如何分类的?答:总线,是一组能为多个功能部件服务的公共信息传送线路,是计算机各部件之间的传送数据、地址和控制信息的公共通路,它能分时地发送与接收各部件的信息。
按照总线系统的层次结构,可以把总线分为片内总线、系统总线、局部总线和外设总线。
3.2 举例说明有哪些常见的系统总线与外设总线。
答:常见的系统总线有:ISA总线、PCI总线、PCI Express总线。
常见的外设总线有:RS-232串行总线、IEEE1394串行总线、USB串行总线。
3.3 ISA总线的主要特点是什么?答:ISA总线的主要特点是:(1)总线支持力强,支持64KB的I/O地址空间、24位存储器地址空间、8/16位数据存取、15级硬件中断、7个DMA通道等。
(2)16位ISA总线是一种多主控(Multi Master)总线,可通过系统总线扩充槽中的MAST ER的信号线实现。
除CPU外,DMA控制器、刷新控制器和带处理器的智能接口卡都可以成为ISA总线的主控设备。
(3)支持8种类型的总线周期,分别为8/16位的存储器读周期、8/16位的存储器写周期、8/16位的I/O读周期、8/16位的I/O写周期、中断请求和中断响应周期、DMA周期、存储器刷新周期和总线仲裁周期。
3.4 PCI总线的主要特点是什么?答:PCI总线的特点概述如下:(1) 线性突发传输:PCI支持突发的数据传输模式,满足了新型处理器高速缓冲存储器(Cache)与内存之间的读写速度要求。
线性突发传输能够更有效地运用总线的带宽去传输数据,以减少不必要的寻址操作。
(2) 多总线主控:PCI总线不同于ISA总线,其地址总线和数据总线是分时复用的。
这样减少了接插件的管脚数,便于实现突发数据的传输。
数据传输时,一个PCI设备作为主控设备,而另一个PCI设备作为从设备。
总线上所有时序的产生与控制,都是由主控设备发起的。
习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。
一、单选题第1题(1分)你的得分:1若SS=3800H,SP=0100H,AX=905BH,执行指令PUSH AX后存放数据5BH的物理地址是【1】。
A. 380FEHB. 380FFHC. 38101HD. 38102H题目答案:A你的答案:A题目分析:执行指令PUSH AX应先使SP-2→SP,然后把AX的内容存放入(SP)及(SP+1)单元。
SP'→ 00FEH 5BH00FFH 90HSP → 0100H所以,存放5BH的单元物理地址为38000H+00FEH=380FEH。
第2题(1分)你的得分:1若SS=3800H,SP=0100H,AX=905BH,执行指令PUSH AX后存放数据90H的物理地址是【2】。
A. 380FEHB. 380FFHC. 38101HD. 38102H题目答案:B你的答案:B题目分析:执行指令PUSH AX应先使SP-2→SP,然后把AX的内容存放入(SP)及(SP+1)单元。
SP'→ 00FEH 5BH00FFH 90HSP → 0100H所以,存放90H的单元物理地址为38000H+00FFH=380FFH。
第3题(1分)你的得分:1将字变量BUF的内容送入SI寄存器的正确指令是【3】。
A. MOV SI,BUFB. MOV [SI],BUFC. MOV OFFSET BUF,SID. LEA SI,BUF题目答案:A你的答案:A题目分析:B. 错误,该指令把存储单元的内容送到存储单元。
C. 错误,目的操作数为立即数。
D. 错误,该指令取BUF的偏移地址到SI寄存器中,而不是取其内容到SI寄存器中。
第4题(1分)你的得分:1指令 LODSB 操作数的段地址一定在【4】寄存器中。
A. CSB. DSC. ESD. SS题目答案:B你的答案:B题目分析:指令 LODSB 操作数的段地址规定在DS寄存器中。
第5题(1分)你的得分:1指令“MOV AX,ES:[BP]”中的源操作数在当前【5】中。
第三章、习题答案3.答案:(1) 完整段定义程序结构:STACK SEGMENT STACK ‘STACK’DB 200H DUP (?)STACK ENDSDATA SEGMENT ‘DATA’变量、数组、字符串等定义`DATA ENDSCODE SEGMENT ‘CODE’ASSUME CS:CODE1, DS:DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AX.........;主程序指令序列MOV AH, 4CHINT 21HSUB1 PROC……. .;子程序指令序列RETSUB1 ENDPCODE ENDSEND START4.略6. 答案:(1) x1 db 20, 20 dup(0)(2) x2 db ‘The course is easy’,’0’(3) x3 db 0AH, 0DH, ‘$’(4) x4 dw 100 dup(0)(5) evenx5 dw ?(6) org 10string db ‘ABCDEF’data dw string7. 答案: var1 2字节; var2 12字节; var3 13字节; var4 12字节;var5、var6与var3偏移量相同; var5占14字节,var6占16字节9.答案:aaa unionstring db ‘ABCDEFG’data dw 4 dup (?)aaa ends13.答案:(1) [AX] 错误;寄存器间接寻址只能用间址寄存器BX、BP、SI、DI中的某一个。
(2) BP 正确;寄存器寻址。
(3) [SI+DI] 错误;基址加变址寻址只能用基址寄存器BX、BP中的某一个与变址寄存器SI、DI中的某一个的内容之和构成偏移地址。
(4) [SP] 错误;寄存器间接寻址只能用间址寄存器BX、BP、SI、DI中的某一个。
(5) CS 错误;一般不允许代码段寄存器CS做操作对象。
(6) BH 正确;寄存器寻址。
微机原理与接口技术课后部分习题参考答案第一章2. 第3项任务,状态标志位的状态决定转移方向。
3. 程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。
4. 分BIU 总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。
在执行一条指令的同时可以取下一条指令,重叠运行,速度快。
5. 有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志AF。
3个控制标志分别为中断允许标志IF、单步标志TF、方向标志DF。
标志位的内容可以通过标志位操作指令来操作,例如CLC指令清除进位位,即使CF=0,STC指令使CF=1,CLI指令使IF=0,禁止中断,STI指令使IF=1,允许中断。
还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF指令送回去。
也可以用PUSHF/POPF指令来修改标志寄存器的内容。
6. 实模式下分段靠4个段寄存器实现。
段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。
物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。
7. 说法不一定正确。
对顺序执行指令的计算机是对的。
对重叠或流水线的计算机就不对了。
例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。
8. 引入流水线后,执行一条指令的总时间并没有变化。
9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。
虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。
10。
8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。
386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,486采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。
第三章习题与参考答案3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。
指出下列指令的寻址方式和物理地址。
(1) MOV AX,0ABH 立即寻址无(2) MOV AX,BX 寄存器寻址无(3) MOV AX,[l000H] 直接寻址 10000H(4) MOV AX,DATA 直接寻址 (DS*16+DATA )(5) MOV AX,[BX] 寄存器间接寻址 10100H(6) MOV AX,ES:[BX] 寄存器间接寻址 20100H(7) MOV AX,[BP] 寄存器间接寻址 30200H(8) MOV AX,[SI] 寄存器间接寻址 10050H(9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH(10) MOV AX,DISP[BX] 寄存器相对寻址 11100H(1l) MOV AX,[BX+SI] 基址变址寻址 10150H(12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H3.2 分别说明下例指令采用的寻址方式和完成的操作功能。
(1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器(2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器(3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器(4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元(5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元(6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元(7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器(8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元(9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元3.3 判断下列指令正误,如果错误请指出原因。
第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址PA=10605H3.4 下面这些指令中哪些是正确的那些是错误的如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
《微机原理与接口技术》第三章作业一、书上P95作业题.4、5、6、710、11、12、13、14、1516、17、18、22、274、指出下列指令中的源操作数和目标操作数的寻址方式.〔1〕MOV BX,1000H源操作数:立即寻址;目标操作数:寄存器寻址〔2〕MOV AL,[BX] 源操作数:寄存器间接寻址;目标操作数:寄存器寻址〔3〕MOV CX,[BP+10H] 源操作数:寄存器相对寻址;目标操作数:寄存器寻址〔4〕MOV AL,ES:[BX+SI] 源操作数:基址加变址寻址;目标操作数:寄存器寻址〔5〕MOV [DI+1000H],BX 源操作数:寄存器寻址;目标操作数:寄存器相对寻址〔6〕MOV [1000H],CX 源操作数:寄存器寻址;目标操作数:直接寻址〔7〕MOV AL,[BX+DI+1234H] 源操作数:寄存器相对寻址;目标操作数:寄存器寻址〔8〕MOV AL,1000H[BX+SI] 源操作数:寄存器相对寻址;目标操作数:寄存器寻址〔9〕MOV [EBX+ESI+2010H],DX 源操作数:寄存器寻址;目标操作数:带位移的基址加变址寻址〔10〕MOV AX,0100H[EBX+ESI*4] 源操作数:基址加比例变址寻址;目标操作数:寄存器寻址5、设〔DS〕=2000H、〔ES〕=2100H、〔SS〕=1500H、〔BX〕=0100H、〔BP〕=0040H、〔SI〕=00A0H、〔DI〕=0120H,在指令MOV AX,src中,求用下列表示源操作数src的有效地址EA和物理地址PA各是多少?〔1〕100H[BX] EA=<100H+0100H>=0200H ; PA=2000*10H+0200H=20200H〔2〕ES:[BX+DI] EA=0100H+0120H=0220H ;PA=2100*10H+0220H=21220H〔3〕[BP] EA=0040H ; PA=1500*10H+0040H=15040H〔4〕ES:[BX+10H] EA=0100H+0010H=0110H ;PA=21000H+0110H=21110H<5> [BP+SI] EA=0040H+00A0H=00E0H ; PA=1500*10H+OOEOH=150E0H<6> [1000H] EA=1000H ; PA=2000*10H+1000H=21000H<7> ES:[DI] EA=0120H ; PA=2100*10H+0120H=21120H<8> 1050H[BX+SI] EA=1050H+0100H+00A0H=11F0H ; PA=2000*10H+11F0H=211F0H<9> DS:10C0H[BP+SI] EA=10C0H+0040H+00A0H=11A0H ; PA=2000*10H+11A0H=211A0H<10> [BX+DI] EA=0100H+0120H=0220H ; PA=2000*10H+0220H=20220H6、指出下列指令中的错误,并改正.〔1〕MOV BL,30A0H操作数不匹配改:MOV BX,30A0H〔2〕MOV 0010H,AL立即数不可以作为目标操作数改:MOV AX,0010H〔3〕XCHG AL,BX操作数类型不匹配改:XCHG AX,BX〔4〕MOV [AX],3456H立即数送入存储器需要说明改:MOV WORDPTR [AX],3456H〔5〕PUSH AL堆栈以字为操作单元改:PUSH AX〔6〕POP CS POP不可以用CS为目标操作数改:POP AX〔7〕MOV DS,1000H立即数不能直接送入段寄存器改:MOV AX,1000H MOV DS,AX〔8〕MOV [BX],[1000H]存储器不可以相互传送改:MOV AX,[1000H]MOV [BX],AX〔9〕LDS 〔BX〕,[1000H]LDS使用时期目标为16位通用寄存器改:LDS BX,[1000H] 〔10〕LEA BX,CX LEA源操作数为存储器改:LEA BX,[CX]7、已知〔AX〕=4A0BH,[1020H]单元中的内容为260FH,写出下列每条指令单独执行后的结果.〔1〕MOV AX,1020H ;〔AX〕=1020H〔2〕XCHG AX, [1020H] ;〔AX〕=260FH〔3〕MOV AX,[1020H] ;〔AX〕=260FH〔4〕LEA AX,[1020H] ;〔AX〕=1020H10、设一个堆栈段共有100H个字节单元,堆栈的起始地址为1250H:0000H,若在堆栈中存有5个字数据,问:〔1〕栈顶的物理地址多少?栈底:12600H〔2〕栈底的物理地址是多少?栈顶:12600-A=125F6H〔3〕当前SS和SP的内容是多少?SS:[1250H:0000H ]SP: [1250H:00F6H ]〔4〕若弹出两个数据,SP的内容是多少?SP:[1250H:00FAH ]11、编程完成下列程序段,根据运算结果置标志位OF、SF、ZF、AF、PF、CF,并分析程序执行结果是否正确?为什么?〔设字长n=8〕〔1〕30+64〔2〕122-64〔3〕96+52〔4〕-68+〔-72〕答:〔1〕MOV AL,30MOV BL,64ADD AL,BL结果:0101111O F=0 SF=0 ZF=0 AF=0 PF=1 CF=0〔2〕MOV AL,122MOV BL,64SUB AL,BL结果:00111010 OF=0 SF=0 ZF=0 AF=0 PF=1 CF=0〔3〕MOV AL,96MOV BL,52ADD AL,BL结果:10010100 F=0 SF=0 ZF=0 AF=0 PF=1 CF=0〔4〕MOV AL,-68MOV BL,-72ADD AL,BL结果:01110100 OF=1 SF=0 ZF=0 AF=1 PF=1 CF=117、判断下列指令格式的对与错,并解释错在哪里.〔1〕ADD 25H,AX 〔×〕目标操作数不可以为立即数〔2〕INC BX,1 〔×〕INC只有目标操作数〔3〕MUL AL,BL 〔×〕乘法指令目标操作数是隐含的〔4〕SUBB AL,3 〔×〕减法指令是SUB〔5〕DAA AL 〔×〕DAA后无操作数〔6〕NEG CX,0 〔×〕NEG后只有目标操作数〔7〕CMP [BX],1000H[BX+SI]〔√〕18、设〔AL〕=10010010B,将AL的内容算术右移2位,AL的内容和CF是多少?再将AL的内容逻辑右移2位,AL的内容和CF是多少?算术右移2位 AL:11100100 CF:1逻辑右移2位 AL:00100100 CF:122、写出下列程序段执行后的结果.MOV CL,4MOV AL,87MOV DL,ALAND AL,0FHOR AL,30HSHR DL,CLOR DL,30H〔AL〕=37H,〔DL〕=35H27、试用CMP指令和条件转移指令实现下列判断〔1〕AX和CX中的内容为无符号数:若〔AX〕>〔CX〕则转至BIGGER符号执行;若〔AX〕<〔CX〕则转至LESS符号执行.CMP AX,CXJA BIGGERLESS〔2〕BX和DX中的内容为无符号数:若〔BX〕>〔DX〕则转至BIGGER符号执行;若〔BX〕<〔DX〕则转至LESS符号执行.CMP BX,DXJG BIGGERJL LESS。
微机原理及接口第三章作业答案“微机系统原理与接口技术”第三章习题解答1.下列各条指令是否有错?如果有,请指出错误之处并改正。
(1)movds,1000h(2)mov[100],23h(3)addax,[bx+bp+6](4)pushdl(5)inax,[3fh](6)out3ffh,al(7)lesss,[si](8)pop[ax](9)imul4ch(10)shlbx,5(11)int300(12)xchgdx,0fffh请问:(1)错误。
不容许轻易向段寄存器送来立即数,可以改成:movmovax,1000hds,ax(2)错误。
该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上byteptr或wordptr说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:movaddpushinbyteptr[100],23hax,[bx+di+6]dxax,3fh(3)错误。
无法同时采用两个基址寄存器bx、bp展开间接串行,可以改成:(4)错误。
堆栈操作方式需以字为单位展开,而dl就是一个字节。
可以改成:(5)错误。
在输出/输入指令中,8十一位端口地址应当轻易写下在操作数处。
可以改成:(6)错误。
端口地址3ffh已远远超过8十一位二进制则表示范围,16十一位端口地址应用领域dx。
可以改成:movoutlesdx,3ffhdx,alax,[si](7)错误。
les指令的目操作数应该是通用寄存器,不能是段寄存器。
可改为:(8)错误。
ax不能用于间接寻址,间接寻址只能用bx、bp、si、di四个寄存器之一。
可改为:popmovimulmovshl[bx]bl,4chblcl,5bx,cl(9)错误。
立即数无法搞乘法指令的操作数,可以改成:(10)错误。
当逻辑移位的次数大于1时,应该用cl指示次数。
可改为:(11)错误。
操作数300?255,已远远超过有效率的中断类型码范围。
第三章3-1选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2.ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 当CPU响应外部中断0后,PC的值是(B)(A)0003H (B)2000H (C)000BH (D)3000H3.执行PUSH ACC指令,MCS-51完成的操作是(A)(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(B)(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)(C)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的一位被置位(D)(A)(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区(B)(A)MOV PSW,#13H (B)MOV PSW,#18H(B)SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.47、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是(C)(D)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完左边的程序后,PC的值是(C)(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令3-2判断题。
4.MCS-51的相对转移指令最大负跳距是127B。
第三章参考答案1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令:⑴将一个立即数送入寄存器BX;⑵将一个立即数送入段寄存器DS;⑶将变址寄存器DI的内容送入一个存储单元中;⑷从存储单元中取一个数送到段寄存器ES中;⑸将立即数0ABH与AL相加,结果送回AL中;⑹把BX与CX寄存器内容相加,结果送入BX;⑺用寄存器间接寻址方式,实现一个立即数与存储单元内容相加,结果放回存储器。
解:(1)MOV BX, 1234H(2)MOV AX, 1234HMOV DS, AX(3)MOV [BX], DI(4)MOV ES,[BX](5)ADD AL,0ABH(6)ADD BX,CX(7)MOV AX,[BX]ADD AX,1234HMOV [BX],AX2.执行下面程序,完成指令后的填空:MOV AX,2000H ;AH= 20HMOV DS,AX ;AL= 00H DS= 2000HMOV SS,AX ;SS= 2000H AX= 2000HMOV BX,2030H ;BH= 20H BL= 30HMOV SI,BX ;SI= 2030HMOV DI,3040H ;DI= 3040HMOV SI,DI ;SI= 3040HMOV SP,50FFH ;SP= 50FFHMOV DX,SP ;DH= 50H DL= FFHMOV CL,25 ;CL= 19HMOV BL,CL ;CL= 19H BL= 19HMOV AH,0F0H ;AH= F0HMOV CH,AH ;CH= F0HMOV BYTE PTR[DI],64 ;(DI)= 40HMOV WORD PTR[SI],256 ;(SI)= 00H (SI+1)= 01HMOV DL,[SI+1] ;DL= 01HMOV DH,1+[SI] ;DH= 00HMOV AL,1[SI] ;AL= 01HMOV WORD PTR[BX][SI],34 ;(BX+SI)= 22H (BX+SI+1)= 00HMOV [BX+SI+4],BL ;(BX+SI+4)= 19HMOV BP,2[BX+DI] ;BP= 00HMOV [BP],AL ;(BP)= 01HMOV AX,[BP][DI] ;AX= 0100HMOV BL,AL ;BL= 00HMOV ES,BX ;ES= 2000HPUSH BX ;SP= 50FDH (SP,SP+1)= 2000HPUSH DI ;SP= 50FBH (SP,SP+1)= F019HPOP CX ;SP= 50FDH CX= 3040HPOP DX ;SP= 50FFH DX= 2000HXCHG AX,BP ;AX= 0000H BP= 0100HXCHG DH,BL ;DH= 00H BL= 20HLAHF ;FLAG= 0002H AH= 02HSAHF ;FLAG= 0002H AH= 02HPUSHF ;SP= 50FDH (SP,SP+1)= 0002HPOPF ;SP= 50FFH FLAG= 0002H3.设DS=2000H,ES=2100H,SS=1500H,SI=00A0H。
《微机原理与接口技术》第三章作业答案
《微机原理与接口技术》第三章作业
一、书上P95作业题。
4、5、6、7
10、11、12、13、14、15
16、17、18、22、27
4、指出下列指令中的源操作数和目标操作数的寻址方式。
(1)MOV BX,1000H源操作数:立即寻址;目标操作数:寄存器寻址
(2)MOV AL,[BX] 源操作数:寄存器间接寻址;目标操作数:寄存器寻址
(3)MOV CX,[BP+10H] 源操作数:寄存器相对寻址;目标操作数:寄存器寻址
(4)MOV AL,ES:[BX+SI] 源操作数:基址加变址寻址;目标操作数:寄存器寻址
=0120H,在指令MOV AX,src中,求用下列表示源操作数src的有效地址EA和物理地址PA各是多少?
(1)100H[BX] EA=(100H+0100H)=0200H ;PA=2000*10H+0200H=20200H
(2)ES:[BX+DI] EA=0100H+0120H=0220H ;PA=2100*10H+0220H=21220H
(3)[BP] EA=0040H ;PA=1500*10H+0040H=15040H
(4)ES:[BX+10H] EA=0100H+0010H=0110H ;PA=21000H+0110H=21110H
(5) [BP+SI] EA=0040H+00A0H=00E0H ;PA=1500*10H+OOEOH=150E0H
(6) [1000H] EA=1000H ;PA=2000*10H+1000H=21000H
(7) ES:[DI] EA=0120H ;PA=2100*10H+0120H=21120H
(8) 1050H[BX+SI] EA=1050H+0100H+00A0H=11F0H ;PA=2000*10H+11F0H=211F0H
(9) DS:10C0H[BP+SI] EA=10C0H+0040H+00A0H=11A0H ;PA=2000*10H+11A0H=211A0H
(10) [BX+DI] EA=0100H+0120H=0220H ;PA=2000*10H+0220H=20220H
6、指出下列指令中的错误,并改正。
(1)MOV BL,30A0H 操作数不匹配改:MOV BX,30A0H
(2)MOV 0010H,AL立即数不可以作为目标操作数改:MOV AX,0010H
(3)XCHG AL,BX操作数类型不匹配改:XCHG AX,BX
(4)MOV [AX],3456H立即数送入存储器需要说明改:MOV WORDPTR [AX],3456H
(5)PUSH AL堆栈以字为操作单元改:PUSH AX
(6)POP CS POP不可以用CS为目标操作数改:POP AX
(7)MOV DS,1000H立即数不能直接送入段寄存器改:MOV AX,1000H MOV DS,
AX
(8)MOV [BX],[1000H]存储器不可以相互传送改:MOV AX,[1000H] MOV [BX],AX
(9)LDS (BX),[1000H]LDS使用时期目标为16位通用寄存器改:LDS BX,[1000H]
(10)LEA BX,CX LEA源操作数为存储器改:LEA BX,[CX]
7、已知(AX)=4A0BH,[1020H]单元中的内容为260FH,写出下列每条指令单独执行后的结果。
(1)MOV AX,1020H ;(AX)=1020H (2)XCHG AX, [1020H] ;(AX)=260FH (3)MOV AX,[1020H] ;(AX)=260FH (4)LEA AX,[1020H] ;(AX)=1020H
10、设一个堆栈段共有100H个字节单元,堆栈的起始地址为1250H:0000H,若在堆栈中存有5个字数据,问:
(1)栈顶的物理地址多少?
栈底:12600H
(2)栈底的物理地址是多少?
栈顶:12600-A=125F6H
(3)当前SS和SP的内容是多少?
SS:[1250H:0000H ]
SP: [1250H:00F6H ]
(4)若弹出两个数据,SP的内容是多少?SP:[1250H:00FAH ]
11、编程完成下列程序段,根据运算结果置标志位OF、SF、ZF、AF、PF、CF,并分析程序执行结果是否正确?为什么?(设字长n=8)
(1)30+64
(2)122-64
(3)96+52
(4)-68+(-72)
答:(1) MOV AL,30
MOV BL,64
ADD AL,BL
结果:0101111O F=0 SF=0 ZF=0 AF=0 PF=1 CF=0
(2) MOV AL,122
MOV BL,64
SUB AL,BL
结果:00111010 OF=0 SF=0 ZF=0 AF=0 PF=1 CF=0
(3) MOV AL,96
MOV BL,52
ADD AL,BL
结果:10010100 F=0 SF=0 ZF=0 AF=0 PF=1 CF=0
(4) MOV AL,-68
MOV BL,-72
ADD AL,BL
结果:01110100 OF=1 SF=0 ZF=0 AF=1 PF=1 CF=1
17、判断下列指令格式的对与错,并解释错在哪里。
(1)ADD 25H,AX (×)目标操作数不可以为立即数
(2)INC BX,1 (×)INC只有目标操作数
(3)MUL AL,BL (×)乘法指令目标操作数是隐含的
(4)SUBB AL,3 (×)减法指令是SUB
(5)DAA AL (×)DAA后无操作数
(6)NEG CX,0 (×)NEG后只有目标操作数
(7)CMP [BX],1000H[BX+SI] (√)
18、设(AL)=10010010B,将AL的内容算术右移2位,AL的内容和CF是多少?再将AL的内容逻辑右移2位,AL的内容和CF是多少?
算术右移2位 AL:11100100 CF:1
逻辑右移2位 AL:00100100 CF:1
22、写出下列程序段执行后的结果。
MOV CL,4
MOV AL,87
MOV DL,AL
AND AL,0FH
OR AL,30H
SHR DL,CL
OR DL,30H
(AL)=37H,(DL)= 35H
27、试用CMP指令和条件转移指令实现下列判断(1)AX和CX中的内容为无符号数:
若(AX)>(CX)则转至BIGGER符号执行;
若(AX)<(CX)则转至LESS符号执行。
CMP AX,CX
JA BIGGER
JB LESS
(2)BX和DX中的内容为无符号数:
若(BX)>(DX)则转至BIGGER符号执行;
若(BX)<(DX)则转至LESS符号执行。
CMP BX,DX
JG BIGGER
JL LESS。