微机原理3
微机原理第三章作业答案
3.1 简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?【解答】8086的指令格式由操作码和操作数字段组成。
操作码:要完成的操作。
操作数:参与操作的对象。
寻址:寻找操作数或操作数地址的过程。
寻址方式:指令中给出的找到操作数或操作数地址采用的方式。
8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。
其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。
3.2 设(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H](4) MOV AX,VAL (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,VAL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,VAL[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,VAL直接寻址,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,VAL[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,VAL[BX][SI]相对基址变址寻址,EA = (BX)+(SI)+[V AL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)×10H+EA = 2000H×10H+01F0H = 201F0H3.3 给定寄存器及存储单元的内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。
微机原理实验三实验报告
实验3. 循环程序设计一、实验目的⒈掌握移位指令的使用方法。
⒉学会循环结构程序的编程方法。
⒊利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。
二、实验要求⒈编写程序并上机调试,记录运行结果。
⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。
)⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对循环程序的概念的理解。
三、实验内容⒉编写统计15个学生数学学习成绩程序。
要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。
源程序代码;DATA SEGMENTDATA1 DB 55,60,65,88,67,70,75,80,77,85,90,66,95,53,100DATA2 DB 5 DUP(?)DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15LEA SI,DATA1LEA DI,DATA2AGAIN:MOV AL,[SI]CMP AL,90JB NEXT1INC BYTE PTR[DI]JMP NEXT0NEXT1:CMP AL,80JB NEXT2INC BYTE PTR[DI+1]JMP NEXT0NEXT2:CMP AL,70JB NEXT3INC BYTE PTR[DI+2]JMP NEXT0NEXT3:CMP AL,60JB NEXT4INC BYTE PTR[DI+3]JMP NEXT0NEXT4:INC BYTE PTR[DI+4]NEXT0:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。
微机原理第三章课后习题解答
3.1已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H ,(1E4F6H)=091DH。
在以上给出的环境下,试问下列指令段之行后的结果如何?(1)MOV CL,[BX+20H][SI];物理地址=DS*10H+BX+SI+20H=091D0H+0024H+0012H+0020H=09226H(09226H)=00F6H,(09226H)=F6H, (09227H)=00H执行后:CL=F6H(2)MOV [BP][DI], CX物理地址=SS*10H+BP+DI=1E4A0H +0024H+0032H=1E4F6HCX=5678H 执行后:(1E4F6H) = 5678H(3)LEA BX, [BX+20H][SI];BX=BX+20H+SI=0056HMOV AX, [BX+2];物理地址=DS*10H+BX+2=091D0H +0058H=09228H (09228H)=1E40H 执行后:AX=1E40H(4)LDS SI, [BX][DI];物理地址=DS*10H+BX+DI=091D0H +0056H=09226H (09226H)=00F6H (09228H)=1E40H执行后:BX=(09226H)=00F6HDS=(09228H)=1E40HMOV [SI],BX物理地址=DS*10H+SI =1E400H +0012H=1E412HBX=0024H, 执行后:(1E412H)=0024H (5)XCHG CX,[BX+32H]物理地址=DS*10H+BX+32H =091D0H +0056H =09226H (09226H)=00F6H , CX=5678H执行后:(09226H)=5678H , CX=00F6HXCHG [BX+20H][SI], AX物理地址=DS*10H+BX+20H+SI =091D0H +0056H =09226H (09226H)=5678H , AX=1234H执行后:(09226H)=1234H , CX=5678H3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。
微机原理接口技术03_指令系统
3.2.1 数据的寻址方式
基址变址寻址同样适用于数组或表格处理,首地 址存放在基址寄存器中,变址寄存器访问数组中各元
素。因两个寄存器都可以修改,所以它比寄存器相对
寻址方式更灵活。需要注意的是,两个寄存器不能均 为基址寄存器,也不能均为变址寄存器。
3.2.1 数据的寻址方式
7.基址变址相对寻址 (Relative Based Indexed Addressing) 操作数的有效地址为指令中规定的1个基址寄存 器和1个变址寄存器的内容及指令中指定的位移量三 者之和。 位移量[基址寄存器][变址寄存器] 可以表示成多种形式组合。寻址寄存器要放在方括 号中。
3.2.1 数据的寻址方式
4.寄存器间接寻址(Register Indirect Addressing) 操作数的有效地址存放在基址寄存器或变址寄存 器中,而操作数则在存储器中。对16位数进行寄存器 间接寻址时可用的寄存器是基址寄存器BX、BP和变 址寄存器SI、DI。使用BP时默认的段寄存器为SS, 使用其他寄存器默认的段寄存器为DS。 操作数有效地址格式为:[间接寻址的寄存器]。 寻址寄存器放在方括号中。
CPU执行指令时,指令是按顺序存放在存储器 中的,而程序执行顺序是由CS和IP的内容来决定的。 当程序执行到某一转移或调用指令时,需脱离程序 的正常顺序执行,而把它转移到指定的指令地址, 程序转移及调用指令通过改变IP和CS内容,就可改 变程序执行顺序。
3.2.2 程序转移地址寻址方式
根据程序转移地址相对于当前程序地址的关 系,可分为段内、段外;又根据转移地址是否直 接出现在指令中,分为直接、间接,所以有四种 程序转移寻址方式:段内直接寻址、段内间接寻
第3章
指令系统
指令是计算机用以控制各个部件协调
微机原理第3章-指令系统
▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB
码
器
PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:
微机原理第三章习题答案
习题3答案1. 指出下列指令的错误原因。
(1) AND AX, DL ;类型不匹配(2) ADD CS, DX ;CS不能作为目的操作数(3) MOV AX, IP ;IP不能作为指令的操作数(4) MOV [BP][SI], [SI] ;两个操作数不能同时为内存操作数(5) SUB [BP][SI], ES:DX ;段超越前缀只能用在内存操作数之前(6) XCHG AL, [SI][DI] ;没有[SI][DI]这种操作数形式(7) JGE AX ;条件转移指令的操作数只能是标号(8) PUSH DL ;对堆栈不能进行字节操作2. 用一条指令将BX清0。
(请给出3种方法)方法1:MOV BX, 0方法2:SUB BX, BX方法3:AND BX, 0 ;将BX和0做与,可以将BX清零方法4:XOR BX, BX3. 写出实现下列功能的指令序列。
(1) 判断AX的值,若AX等于0,则转到标号LABEL处。
(请写出3种方法)方法1:CMP AX, 0JZ LABEL ; 如果ZF = 0,说明AX为0,因为CMP指令是做减法,但是不写回结果; 因此指令执行后AX内容不会受到破坏方法2:TEST AX, 0FFHJZ LABEL ; 如果ZF = 0,说明AX为0,TEST指令做与运算,可是不写回结果,只影响标志位。
; 和0与清零,和1与不变,所以和FFH做与的结果是AX本身,但是此时标志位已; 经改变了,所以可以利用标志位来判断,但是AX内容却没有受到任何破坏方法3:AND AX, 0FFH ;这个方法的原理和方法2其实是完全一致的JZ LABEL(2) 将AL的高4位与低4位分别放入AH与AL的低4位,并将AH与AL的高4位清0。
MOV AH, ALAND AL, 0FH ; AL高4位通过与清零,而低4位保持不变MOV CL, 4SHR AH, CL ; 这两条指令通过逻辑右移将AH的高4位清零,因为SHR在右移后,高位补零(3) 若AX和BX中的数恰好1个是奇数、1个是偶数,则将奇数放入AX,偶数放入BX;否则,AX和BX不变。
微机原理第3章习题与答案解析
习题一、选择题1.寻址方式指出了操作数的地点,一般来说_______。
A.立刻寻址给出了操作数的地点B.寄存器直接寻址的操作数在寄存器内,而指令给出了储存器C.直接寻址直接给出了操作数自己D.寄存器直接寻址的操作数包括在寄存器内,由指令指定寄存器的名称答案: D2.寄存器寻址方式中,操作数在_________。
A. 通用寄存器B. 货仓C.内存单元D.段寄存器答案: A3.寄存器间接寻址方式中,操作数在_________ 。
A. 通用寄存器B. 货仓C.内存单元D.段寄存器答案: C4.以下指令中的非法指令是 ______。
A. MOV [SI+BX], AXB.MOV CL, 280C.MOV [0260H], 2346HD.MOV BX, [BX]答案: B5.设 (SP)=0100H ,(SS)= 2000H ,履行 PUSH BP 指令后,栈顶的物理地点是 _____。
A.200FEHB.0102HC. 20102HD.00FEH答案: A6.指令 LEA BX, TAB 履行后,其结果是 ______。
A. 将 TAB 中内容送 BXB.将 TAB 的段基址送 BXC.将 TAB 的偏移地点送 BXD.将 TAB 所指单元的储存内容送 BX答案: C7.以下正确的指令格式有______。
A.MOV [BX], 1B.MOV AL, 0345HC.MOV ES: PTR[CX], 3D. XLAT答案: D8.设 (AX)=C544HA.CF=0,OF=0 ,在履行指令B.CF=0,OF=1ADD AH,AL 以后,C.CF=1,OF=0______。
D,CF=1,OF=1答案: C9.若 AL 、 BL 再履行 DAA 中是压缩BCD后, (AL)=_____数,且在履行。
ADD AL, BL 以后,(AL)=0CH , CF=1 ,AF=0 。
A.02HB.12HC.62HD.72H 答案: B10.履行以下程序后AL 的内容为 _____。
(完整版)微机原理第三章(1)及答案
第三章习题集二.选择题(每小题1分,共15分)1. 逻辑地址1000:2000对应的物理地址为( B )。
A、1200HB、12000HC、2100HD、21000H2. 下面哪个寄存器使用时的默认段寄存器为SS( C )。
A、AXB、BXC、SPD、SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( B )段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第 D 组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在 A 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为( C )。
A、有效地址B、物理地址C、逻辑地址D、相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=( B )。
A、0FFFFHB、0F47FHC、2032HD、0F000H8. 含有立即数的指令中,该立即数被存放在 B 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中9.寄存器间接寻址方式中,操作数在 C 中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是(B D)。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 下列指令语法有错的是:CA. MOV AX,1000HB. MOV AX,BXC. MOV [AX],[1000H]D. MOV AX,[1000H]12. 8086/8088中除___C___两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
微机原理作业三及答案
一、选择题分析1.下列描述正确的是()A.汇编语言仅由指令性语句构成B.汇编语言包括指令性语句和伪指令语句C.指令性语句和伪指令性语句的格式是均匀全相同的D.指令性语句和伪指令性语句需经汇编程序翻译成机器代码后才能执行题眼分析本题为1998年9月第28题。
语句,一个汇编语言源程序是由若干条语句构成。
汇编源程序中的语句可分为指令性语句和伪指令性语句两类。
指令性语句,与机器指令相对应,包含一个指令助记符和足够的寻址信息。
可由汇编程序翻译成机器指令代码。
其一般格式为:[标号:][前缀]指令助记符[操作数][:注释]伪指令语句,指示、引导汇编程序在汇编时进行一些操作。
汇编程序不能将其翻译成机器代码。
其一般格式为:[名字]伪操作命令[操作数][:注释]答案 B2.假定(AL)=85H,(CH)=29H,依次执行SUB AL,CH指令和DAS指令后,AL 的值是()A.AEH B.56HC.5CH D.14H题眼分析首先执行SUB指令后,(AL)=5CH,此时CF=0,由于低4位大于9,需要进行调整,执行DAS指令后,AL低4位减6,并且置AF=1,高4位值小于9且CF=0,保持不变,即得(AL)=56H。
答案 B3.串操作指令中,有REP前缀的串操作指令结束的条件是()A.ZF=1 B.ZF=0C.CX>1 D.CX=0题眼分析本题为1999年9月第7题。
8086/8088中有以下3种形式的重复前缀格式:①REP ;(CX)≠0,重复执行②REPE/REPZ ;(CX)≠0且ZF=1,重复执行③REPNE/REPNZ ;(CX)≠0且ZF=0,重复执行答案 D4.若定义DA T DW‘12’,则(DA T)和(DA T+1)两个相连的内存中存放的数据是()A.32H,31H B.31H,32HC.00H,0CH D.00H,12H题眼分析本题为1999年9月第5题。
‘12’表示字符‘1’和‘2’,其相应的ASCII 码为31H和32H。
微机原理第3章指令
第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。
为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。
第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。
个别指只有操作码没有操作数。
由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。
8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。
指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。
段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。
生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。
确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。
立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。
这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。
段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。
微机原理第3章习题(答案)
微机原理第3章习题(答案)1.下列各条指令是否有错?如果有,请指出错误之处并改正(1)MOVDS 1000H(2)MOV[100],23H(3)ADDAX [BX + BP+ 6](4)PUSHDL(5)INAX, [3FH](6)0UT3FFH AL(7)LESSS [SI](8)POP[AX](9)IMUL4CH(10)SHLBX 5(11)INT300(12)XCHGD, 0FFFH答:(1)错误。
不允许直接向段寄存器送立即数,可改为:MOVAX 1000HMOVD, AX(2)错误。
该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPT或WORDPT说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:MOVBYTEPTR[1O0] 23H(3)错误。
不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX [BX + DI + 6](4)错误。
堆栈操作应以字为单位进行,而DL是一个字节。
可改为:PUSHDX(5)错误。
在输入/输出指令中,8位端口地址应直接写在操作数处。
可改为:INAX, 3FH(6)错误。
端口地址3FFH已超出8位二进制表示范围,16位端口地址应用DX可改为:MOVD, 3FFHOUTDXAL(7)错误。
LES指令的目操作数应该是通用寄存器,不能是段寄存器。
可改为:LESBX [SI](8)错误。
AX不能用于间接寻址,间接寻址只能用BXBP、SI、DI四个寄存器之一。
可改为:POP[BX](9)错误。
立即数不能做乘法指令的操作数,可改为:MOVBJL 4CHIMULBL(10)错误。
当逻辑移位的次数大于1时,应该用CL指示次数。
可改为MOVCL 5SHLBX CL(11)错误。
操作数300>255,已超出有效的中断类型码范围。
(12)错误。
XCHG指令不允许立即数做它的操作数。
可改为:MOVC, 0FFFHXCHGDXCX2•请指出以下各指令的源、目的操作数所使用的寻址方式(1)MOVSI 2100H(2)SBBDISP[BX], 7(3)AND[DI] , AX(4)ORAX [609EH](5)MOV[BXb DI + 30H], CX(6)PUSHES [BP](7)CALL[DI]DISP(8)JNZShort_label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:基址寻址(3)源操作数:寄存器寻址;目的操作数:寄存器间接寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的寄存器间接寻址;目的操作数:隐含寻址(7)只有一个操作数,为变址寻址(8)只有一个操作数,为相对寻址3. 已知DS=2000H 有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT 勺偏移地址为1200H。
微机原理第3章习题
• 3.13将+46和-38分别乘以2,可应用什 么指令来完成?如果除以2呢?
解:
①将+46和-38分别乘以2,可分别用逻辑左 移指令SHL和算术左移指令SAL完成。 SHL针对无符号数,SAL针对有符号数, 也可用MUL(无符号数)和IMUL(有符 号数)
②除以2,用SHR或DIV实现+46/2,用SAR 或IDIV实现-38/2。
无物理地址
4 基址-变址-相对寻址
PA=(DS)×10H+VAR+(BX)+(SI)=608F0H
5 立即寻址
无物理地址
6 寄存器间接寻址
PA=(ES)× 10H+(BX)=20800H
7 寄存器间接寻址PA=(SBiblioteka )× 10H+(BP)=16200H
8 寄存器相对寻址
PA=(DS) × 10H+(BX)+20H=60820H
• 3.4试说明指令MOV BX,5[BX]与指令LEA BX, 5[BX]的区别。
答:
①MOV BX,5[BX]是数据传送类指令,表示将数据段中 以(BX+5)为偏移地址的16位数据送寄存器BX中。
② LEA BX,5[BX]是取偏移地址指令,结果为
(BX)=(BX)+5,即操作数的偏移地址为(BX)+5 • 3.5设堆栈指针SP的初值为2300H,(AX)=50ABH,
(4)(AX)=1322H,执行SUB AX,76EBH后, (AX)=1322H-76EBH=9C37H
标志位状态分别为:CF=1,SF=1,ZF=0, OF=0,PF=0,AF=1
补充习题
• 1. 一个有16个字的数据区,起始地址为 70A0H:DDF6H,则这个数据区末字单 元的物理地址是( )
微机原理第3章 8086微型计算机系统
2、总线接口部件BIU
BIU组成: 4个16位段寄存器(DS、CS、ES、SS); 指令指针寄存器(IP); 20位的地址加法器; 6字节指令队列缓冲器; 内部暂存器和总线控制逻辑。 BIU功能:负责CPU与存储器、I/O设备之间的 数据传送。具体包括: 取指令送指令队列,配合EU从指定的内存 单元或者外设端口中取数据,将数据传送 给EU,或者把EU的操作结果传送到指定的 内存单元或外设端口中。第3章 8086微型计算机系统
第3章 8086微型计算机系统
4、内存操作
读:将内存单元的内容取入CPU,原单元内容不改变; 写:CPU将信息放入内存单元,单元中原内容被覆盖; 刷新:对CPU透明,仅动态存储器有此操作 内存的读写的步骤为: 1)CPU把要读写的内存单元的地址放到AB上 2) 若是写操作, CPU紧接着把要写入的数据放到DB上 3) CPU发出读写命令 4) 数据被写入指定的单元或从指定的单元读出到DB 若是读操作, CPU紧接着从DB上取回数据
第3章 8086微型计算机系统
3、8086的存储器的地址
内存包含有很多存储单元(每个内存单元包含 8bit),为区分不同的内存单元,对计算机中 的每个内存单元进行编号,内存单元的编号 就称为内存单元的地址。
内存单 元地址
. . .
Bit 7 6 5 4 3 2 1 0 01011000
内存单 元内容
段基地址(16位)
第3章 8086微型计算机系统
段地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数据 表示,就能用16位段寄存器表达段地址 偏移地址(也称有效地址EA)说明主存单元 距离段起始位置的偏移量 每段不超过64KB,偏移地址也可用16位数据 表示
微机原理第三章习题与参考答案
第三章习题与参考答案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 判断下列指令正误,如果错误请指出原因。
大学微机原理第三章习题
大学微机原理第三章习题8086/8088的寻址方式和指令系统习题一.单项选择题1.设置BX=2000h,Si=3000h,指令movax的源操作的有效地址[BX+Si+8]为()。
a、5000hb.5008hc.23008hd.32022h2.设ds=1000h,es=2000h,bx=3000h,指令addal,[bx]的源操作数的物理址为()。
a.13000hb.23000hc.33000hd.3000h3.设ds=2000h,es=3000h,si=200h,指令moves:[si],al的目的操作数的物理地址为()。
a.20210hb.30200hc.50200hd.200h4.指令movmem[bx],ax中的mem是()。
a.原码b.反码c.补码d.移码5.用来作为寄存器间接寻址的寄存器有()个。
a.8b.6c.5d.46.指令mov[BX+Si],Al中的目标操作数使用()段寄存器。
a、 csb.dsc.ssd.es7.指令movbx,[bp+5]中的源操作数使用()段寄存器。
a.csb.dsc.ssd.es8.段内间接寻址只改变()中的内容。
a、 csb之间的间接寻址。
ipc。
政务司司长和知识产权署。
psw9。
仅更改()中的内容。
a.csb.ipc.cs和ipd.psw10.下述指令中不改变psw的指令是()。
a.movax,bxb.andal,0fhc.shrbx,cld.addal,bl11.下述指令中不影响cf的指令是()。
a.shlal,1b.inccxc、添加[bx],ald.subax,bx12.两个整数补码9ch和7ah相加运算后,会产生()。
a.无溢出且无进位b.无溢出但有进位c.有溢出且有进位d.有溢出但无进位13.指令jmpwordptr[bx]属于()寻址。
a、段内直接B.段内间接C.段间直接D.段间间接14。
指令movax的源操作数[BX+Si+8]属于()寻址。
微机原理第3章 8086的指令系统d
3.4.4 串操作指令
由多个字节/字组成的数据称为字节/字数据串,简称字节/ 字串。 数据串存放在某一连续的内存区中,最长长度为64kB。 串操作指令的特点: • 采用串寻址,规定源操作数的逻辑地址为(DS):(SI),目的 操作数的逻辑地址为(ES):(DI)。 • 执行串指令时,存储单元的地址指针是自动移动的,DF= 0则地址增大,DF=1则地址减小。 • 串指令通常使用指令前缀,串的长度(数据个数)由CX给定。 • 串指令在同段之间进行传送或比较时,应使(DS)=(ES)。
LEA SI, BUFF1;源操作数偏移地址 LEA DI, BUFF2;目的操作数偏移地址 CLD;DF=0 AG: MOVSW; MOV CX, 100;串长度(CX)=100 LOOP AG;(CX)=(CX)−1, ;(CX)≠0则转移 MOVSW;送1个字,(CX)=100
2. 串比较指令 串比较指令CMPSB/CMPSW (compare byte/word string) 格式:CMPSB/CMPSW 功能:把(DS):(SI)指定的字节/字单元内容减去(ES):(DI)指 定的字节/字单元内容,结果不送回(DS):(SI)指定的单元, 但影响状态标志位,且SI、DI的内容自动加(减)1/2。 例:检查数据段中首地址分别为STR1和STR2的两个长度 为50的字节串是否相等。若相等,则(BX)=0;若不相等, 则BX保存STR1中第1个不相同字节的偏移地址,并将该 数据保存到AL中。 CLD;DF=0 MOV CX, 50;设置串长度 MOV AX, DS;使(EX)=(DS) MOV ES, AX
2. 逻辑与指令 逻辑与指令AND (and) 格式:AND dest, src 功能:把dest的内容与src的内容按位进行逻辑与运算,并 把结果送回dest。 注意:dest不能为立即数;不允许两个操作数都为存储器 操作数;该指令执行后使CF=OF=0,并影响PF、ZF和SF。 例:MOV BL, 38H;(BL)=38H AND BL, 0FH;(BL)=08H, CF=OF=PF=ZF=SF=0 利用AND指令可以使目的操作数的某些位清0。 例:把AX中的D15、D11、D6、D1位保留,其余位清0。 AND AX, 8842H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题:(32分,每空1分)1.已知某微机系统的存储器由三个芯片组组成,每个芯片组容量为4K字节,总容量为12K字节,试问为满足其编址范围,至少需要地址总线中的根。
其中根需用于每片芯片的片内地址输入,根可用于片选地址译码。
若用4K×1的RAM芯片组成12K字节的内存总容量,则需片这样的芯片。
2.8086CPU的中断源分为、、、等四种。
3.现有一个二进制代码10000011B,若将它视为补码,则其对应的真值是D;若将它视为原码,则其对应的真值是D;若将它视为反码,则其对应的真值是D;若将它视为BCD码,则其对应的真值是D。
4.已知某微机控制系统中的RAM容量为2K×8位,首地址为2000H,其最后一个单元的地址是。
5.8086/8088CPU分为、两部分,其中,20位地址加法器属于部分,其作用是6.8086/8088CPU复位后的系统启动地址为。
7.以8086CPU为中心的微机系统的内存组织特点有:、、。
8.8259A芯片包含个口地址,它进行中断结束处理的方式有、、三种。
9.8255A是一片用于的芯片,它有三种工作方式,其名称分别为:、、。
10.8086CPU有一个与存储器完全独立的空间供I/O设备使用,I/O地址空间大小为,使用的地址信号线为。
8086在最小模式下,对I/O接口进行读操作期间,其有效控制信号为。
二、问答题:(12分)1.8255A芯片有几种工作方式?说明方式1中握手信号的作用。
2.简述8086/8088系统中可屏蔽中断的响应过程。
三、阅读程序:(20分)1.阅读程序,填空(12分)下列程序的功能是:内存中连续存放着二个无符号字节数列A(k)和B(k) (k=0, (9)下同),求数列C(k),C(k)=A(k)+B(k)。
C(k)以字的形式按C(0),…...,C(9)的顺序连续存放。
例如:数列A(k)为30H,31H,61H,FFH,.…..数列B(k)为00H,01H,F1H,0AH,……则结果C(k)为0030H,0032H,0152H,0109H,.……部分程序已给出, 其中原始数据存放在SOURCE开始的内存单元中,运算结果要求从RESULT开始存放。
填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
N EQU 10SOURCE DB 30H,31H,61H,0FFH, 01H,03H,05H,07H,09H,0bHDB 00H,01H,0F1H,0AH,02H,04H,06H,08H,0AH,0CH ;顺序存放A0,...,A9,B0,...,B9 RESULT DW N DUP(0) ; 顺序存放C0,...,C9; **** BEGIN ****MOV DI , ___________MOV BX , _ ___________________PRO: MOV AH , 0MOV AL , SOURCE[BX+10] ; 序列Bk中的一个字节_________________________ ; Ck=Bk+AkJNC JUMP ; 无进位转JUMP__________________ ; 有进位,进位入AHJUMP: MOV [DI] , AX ;Ck=Bk+Ak的字的形式存入RESULTINC BX________________DEC CXJNZ PRO; **** END ****HLT2.阅读程序,并完成以下要求(8分)MOV CL,04HMOV DX,1234HMOV AX,5678HSHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BLa)给程序段加上注释;b)(DX)= (AX)=c)由上面的结果可以看出该程序的功能是:四、编程题:(24分)1.编制完整的汇编语言源程序,求两个多字节BCD码数据之和。
两个数据分别存放在BUF1和BUF2开始的存储区中,和要求存放在SUM开始的存储区中。
如:11223344+44332211=55555555(12分)2.设计一个完整的汇编语言源程序。
已知两个整数变量A和B,试编写程序完成下述操作:1)若两个数中有一个奇数,则将奇数存入A中,偶数存入B中;2)若两个数均奇数,则两个数分别加1,并存回原变量;3)若两个数均偶数,则两个变量不变。
五、存储器系统设计题:(12分)试设计一个存储容量为8KB的存储器系统。
其中低4KB为RAM,采用2114芯片(1K ×4位),高4KB为EPROM,采用2716芯片(2K×8位)。
地址空间从0000H开始。
答案及评分标准一、填空(32分)1.14;12;2;242.可屏蔽外部中断、非屏蔽外部中断、CPU中断和指令中断3.-125;-3;-126;4.27FFH5.EU;BIU;BIU;访问内存时形成20位地址6.FFFF0H7.以字节为单位编址;采用分段结构;8086系统分奇偶地址库8.2;中断自动结束方式;普通中断结束方式;特殊中断结束方式9.并行输入/输出;基本输入/输出方式;选通输入/输出方式;双向输入/输出方式10.64K;A0~A15(16根);M/IO为低电平、RD为低电平二、简答(12分)1.8255A共有3种工作方式。
方式1中,当外设备准备好数据,在送出数据的同时,送出一个选通信号STB。
8255A的端口A数据锁存器在STB下降沿的控制下将数据锁存。
8255A向外设送出高电平的输入缓冲器已满的状态信号IBF,表示锁存器数据已完成,暂时不要再送数据。
如果PC4=l,若PC4为l,即INTEA=1时就会使INTR变成高电平输出,向微处理器发出中断请求。
微处理器响应中断,执行IN指令时RD信号的下降沿清除中断请求而RD结束时的上升沿则使IBF复位到零。
外围设备在检测到IBF零后,可以输入下一个字节。
2.8086/8088中断响应过程:(1)微处理器现行状态FLAG、CS、IP压栈,清除IF、TF;(2)查找中断源的中断类型码n,在中断向量表中(4*n~4*n+3单元)获取中断服务程序的人口地址;(3)转入中断服务程序处理;三、阅读程序(20分)1.OFFSET RESULT;0;MOV CX,N;ADD AL,SOURCE[BX];ADC AH,0;INC DI2.a)略b)(DX)=2345H;(AX)=6780Hc)将DX、AX中存放的32位二进制数向左移动4位四、编程(24分)1.参考程序如下:DSEG SEGMENTBUF1 DB 98H,32HCNT EQU $ - DA1BUF2 DB 51H,46HSUM DB CNT DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGMAIN PROC FARSTART:PUSH DSMOV AX,0PUSH AXMOV AX,DSEGMOV DS,AXMOV SI,OFFSET BUF1LEA DI,BUF2MOV BX,OFFSET SUMMOV CX,CNTCLCLOP:MOV AL,[SI]ADC AL,[DI]DAAMOV [BX],ALINC SIINC DIINC BXLOOP LOPRETAIN ENDPCSEG ENDSEND START2.参考程序如下:DSEG SEGMENTA DW ?B DW ?DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG MAIN PROC FARSTART:PUSH DSMOV AX,0PUSH AXMOV AX,DSEGMOV DS,AXBEGIN:MOV AX,AMOV BX,BXOR AX,BXTEST AX,0001HJZ CLASSTEST BX,0001HJZ EXITXCHG BX,AMOV B,BXJMP EXITCLASS:TEST BX,0001HJZ EXITINC AINC BEXIT:RETMAIN ENDPCSEG ENDSEND START备注:完整汇编语言源程序格式(正常返回DOS可用两种处理方法之一(4分)正确的分支程序结构(4分)奇、偶数判断方法(4分)五、存储器系统设计(12分)需要2片2716,8片2114(分4组),地址分配如下:A15 A14 A13 A12 A11 A10 A9~A02114 1组0 0 0 0 0 0 0~0 0000H Y0、A10=00 1~1 03FFH2114 2组0 0 0 0 0 1 0~0 0400H Y0、A10=11 1~1 07FFH 2114 3组0 0 0 0 1 0 0~0 0800H Y1、A10=00 1~1 0BFFH 2114 4组0 0 0 0 1 1 0~0 0C00H Y1、A10=11 1~1 0FFFH 2716 1# 0 0 0 1 0 0 0~0 1000H Y21 1~1 17FFH 2716 2# 0 0 0 1 1 0 0~0 1800H Y31 1~1 1FFFH 电路原理图略。