微机原理第三章习题答案

合集下载

微机原理与接口技术 张颖超 叶彦斐 第3章 习题答案

微机原理与接口技术 张颖超 叶彦斐 第3章 习题答案
MOVAL, CL
MULCL
MOVCX, AX
MOVAL, CL
MOVAH, 0
MULCX
13.假设DX:AX中存放一个双字的数据:
NEG DX
NEG AX
SBB DX,0
请问:
(1)上述程序段完成什么功能?
(2)设执行前,DX=0001H,AX=FFFFH,上述程序段执行后,DX、AX的值是什么?
(1)清累加器AX;
(2)清进位标志位
(3)将累加器内容乘以2(不考虑溢出)
(4)将累加器内容除以2(不考虑余数)
答:
(1) a.XORAX, AX
b.SUBAX, AX
c.ANDAX,0
d.MOVAX,0
(2) a.SUBAX, AX
b.ANDAX, AX
c.ORAX, AX
d.XORAX, AX
(7)检查BX中的第2、6、10和12位是否同时为0。
答:
(1) ANDDL, 0FCH;1111 1100B
(2)ORSI, 0E000H;1110 0000 0000 0000B
(3)ANDAX, 0FFF0H;1111 1111 1111 0000B
ORAX, 0380H; 0000 0011 1000 0000B
(1) IN AL, PORT; AL=
(2) IN AL, 40H;AX=
(3) OUTDX,AL; (DX)=
(4) OUT DX, AX; (DX)=
答:
(1)AL=22H
(2) IN AX, 40H; AX=226EH
(3) OUTDX,AL; (DX)=6EH
(4) OUT DX, AX; (DX)=226EH

微机原理第三章作业答案

微机原理第三章作业答案

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-1高速缓冲存储器(Cache)的存取速度()。

A.比内存慢,比外存快B.比内存慢,比内部寄存器快C. 比内存快,比内部寄存器慢D. 比内存快,比内部寄存器快例3-2 在存储器连线时,选片控制采用()方式时,不仅存在()问题,而且所分配的地址也是不同的。

A.全译码B.线选法C.地址重迭D.地址浮动例3-3 某计算机的主存为3KB,则内存地址寄存器需()位就足够了。

A.10 B.11 C.12 D.13例3-4 在微机中,CPU访问各类存储器的频率由高到低的次序为()。

A.高速缓存、内存、磁盘B.内存、磁盘、高速缓存C.磁盘、内存、高速缓存D.磁盘、高速缓存、内存答案:A分析:内存存放当前运行的程序和数据,访问频率高于磁盘,C和D不合题意;在采用Cache和内存的存储体系结构中,CPU总是先访问Cache,只有未命中时才访问内存,B也不对。

所以选A。

例3-5 常用的虚拟存储器寻址系统由()两级存储器组成。

A.主存一外存B.Cache一主存C.Cache—外存D.Cache——Cache答案:A分析:虚拟存储器由存储器管理机制以及一个大容量的外存支持。

它是在存储体系层次结构基础上,通过存储器管理部件MMU,在外存和主存之间进行虚拟地址和实地址间的变换的。

例3-6 下面的说法中,正确的是()。

A.EPROM是不能改写的B.EPROM是可改写的,所以也是一种读写存储器C.EPROM只能改写一次D.EPROM是可改写的,但它不能作为读写存储器答案:D分析:EPROM是紫外线可擦写可编程ROM,可反复多次改写,所以A和C不正确;EPROM的编程需外加编程电压,不能在线随机改写,因而EPROM不是随机读写存储器,所以B也不正确。

例3-7 一个具有24根地址线的微机系统,装有16KBROM、480KB RAM和100MB的硬盘,说明其内存容量为()。

A.496KB B.16MB C.100.496MB D. 480KB答案:A分析:内存由ROM和RAM组成,答案C含硬盘容量不合题意;存储器总容量与实际装机容量是不同概念,此题答案B、D也不合题意。

16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。

16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。

第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。

3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序……解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。

微机原理第3章作业及答案

微机原理第3章作业及答案

第3章指令系统习题解答1. 若DS=3000H,BP=2000H,SI=1000H,[32000H]=00H,[32001H]=40H,SS=3000H,[31000H]=20H,[31001H]=60H,[33000H]=50H,[33001H]=60H,说明下列各条指令执行后,AX中的内容是什么?并说明各条指令中源操作数的寻址方式。

(1) MOV AX,DS (2) MOV AX,[2000H](3) MOV AX,[SI] (4) MOV AX,[BP](5) MOV AX,[BP+SI]【解】(1)AX=3000H 寄存器寻址(2)AX=4000H 直接寻址(3)AX=6020H 寄存器间接寻址(4)AX=4000H 寄存器间接寻址(5)AX=6020H 基址加变址寻址2. 指出下列指令中的非法指令。

(1) MOV BX,AL (2) MOV CS,2000H(3) PUSH 4567H (4) XCHG VAR1,VAR2(5) ADD AL,148H (6) MOV DS,2000H(7) MOV BH,SI (8) SUB 38H,AL【解】非法指令:(1) MOV BX,AL BX和AL的长度不一致(2) MOV CS,2000H CS段寄存器不能作目的操作数(3) PUSH 4567H 只能将寄存器或存储单元的内容压入堆栈,不能是立即数(4) XCHG VAR1,V AR2 两个存储单元之间不能直接交换数据(5) ADD AL,148H 运算溢出(6) MOV DS,2000H 立即数不能直接传送给DS段寄存器(7) MOV BH,SI BH和SI的长度不一致(8) SUB 38H,AL 目的操作数不能是立即数3. 若SP=2000H,AX=3355H,BX=4466H,试指出下列指令或程序段执行后有关寄存器的内容。

(1) PUSH AX执行后AX=?,SP=?(2) PUSH AXPUSH BXPOP DXPOP CX执行后AX=?,CX=?,DX=?,SP=?【解】(1) 执行后AX=3355H,SP=1FFEH(2) 执行后AX=3355H,CX=3355H,DX=4466H,SP=2000H4. 请按下面的要求写出相应的汇编指令或指令序列。

微机原理和接口技术习题答案解析3

微机原理和接口技术习题答案解析3

第3章 8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1 DW 4512H,4512,-1,100/3,10H,65530var2 DB ’BYTE’,’word’,’WORD’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))var3 DB LENGTH buf1pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1 DB 12,-12,20/6,4 DUP(0,55H)var2 DB ‘Assemble’var3 DW ‘AB’, ‘cd’, ‘E’var4 DW var2var5 DD var2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):(1)MOV SI,100 (2)MOV BX,VAR1[SI](3)MOV AX, [BX] (4)MOV AL, [DX](5)MOV BP, AL (6)MOV VAR1, VAR2(7)MOV CS, AX (8)MOV DS, 0100H(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2(13)SUB [DI], 78H (14)MOVS VAR1, VAR2(15)PUSH 100H (16)POP CS(17)XCHG AX, ES (18)MOV DS, CS(19)JMP L1+5 (20)DIV AX, 10(21)SHL BL, 2 (22)MOV AL, 15+23(23)MUL CX (24)XCHG CL, [SI](25)ADC CS:[0100], AH (26)SBB VAR1-5,154解:(1)MOV SI,100 正确。

微型计算机原理答案 第三章

微型计算机原理答案 第三章

第三章课后题答案注:存储单元或寄存器名用“()”,表示存储单元或寄存器的内容寄存器名用“[]”,表示寄存器内容为一个内存单元的地址习题答案:1、指出指令中源操作数的寻址方式1)立即数寻址2)直接寻址3)寄存器间接寻址4)寄存器相对寻址5)寄存器寻址6)基址变址相对寻址7)寄存器寻址8)段内间接寻址9)端口间接寻址10)寄存器相对寻址11)立即数寻址12)立即数寻址2、指令是否正确,若不正确说明原因1)错误,立即数不能直接传送到段寄存器,可以用MOV AX,0100H MOVDS,AX两条指令实现2)错误,数据类型不匹配源操作数字节操作,目的操作数字操作数3)正确4)错误,端口地址>0FFH时,必须使用端口间接寻址方式。

可以用下两条指令实现:MOV DX,310H OUT DX,AL5)正确6)正确7)错误,没有同时用两个变址寄存器寻址内存单元的指令。

8)正确允许段超越9)错误,数据类型不匹配10)错误,BP不能作为间址寄存器11)正确12)错误,立即数不能作为目的操作数13)错误,堆栈指令不能用立即数14)错误,不能在两个内存单元之间直接用MOV指令传送数据。

15)错误,数据类型不匹配16)正确17)错误,CS段寄存器不能做目的操作数18)错误,没有指明操作数类型是字还是字节19)错误,端口间接寻址时,间址寄存器只能是DX不能是其它寄存器20)错误,移位指令和循环指令当操作次数大于1时,只能用CL存储操作次数。

21)错误,交换指令中不能用段寄存器22)错误,堆栈操作只能是字类型3、写出物理地址的计算表达式1)PA= (DS) * 10H + (DI)2)PA= (DS) * 10H + (BX) + (SI)3)PA= (DS) * 10H + (BX) + (DI) +54)PA= (ES) * 10H + (BX)5)PA= (DS) * 10H + 1000H6)PA= (DS) * 10H + (BX)+(DI)+2000H7)PA= (SS) * 10H + (BP)+(SI)8)PA= (DS) * 10H + (DI)4、计算物理地址1)PA= (DS) * 10H + (BX)=30000H+2000H=32000H2)PA= (DS) * 10H + (BX)+(SI)+1000H=30000H+2000H+0100H+1000H=33100H3)PA= (DS) * 10H + (BX)+(SI)=32100H4)PA= (ES) * 10H + (BX)=40000H+2000H=42000H5、代码段可寻址的空间范围:0E0000H~0EFFFFH6、(SP)=1FFEH,(AX)=5000H, (BX)=5000H7、两条指令的相同点:同为减法指令,均执行(AX)-09H操作;不同点:SUB指令有返回结果,而CMP指令没有返回结果。

微机原理第3章习题(答案)

微机原理第3章习题(答案)

微机原理第3章习题(答案)1. 下列各条指令是否有错?如果有,请指出错误之处并改正(1)MOV DS,1000H(2)MOV [100],23H(3)ADD AX,[BX+BP+6](4)PUSH DL(5)IN AX,[3FH](6)OUT 3FFH,AL(7)LES SS,[SI](8)POP [AX](9)IMUL 4CH(10)SHL BX,5(11)INT 300(12)XCHG DX,0FFFH答:(1)错误。

不允许直接向段寄存器送立即数,可改为:MOV AX,1000HMOVDS,AX(2)错误。

该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTE PTR 或WORD PTR 说明,否则汇编程序会因不能确定操作数长度而指示出错。

可改为:MOV BYTE PTR [100],23H(3)错误。

不能同时使用两个基址寄存器BX、BP 进行间接寻址,可改为:ADD AX,[BX+DI+6] (4)错误。

堆栈操作应以字为单位进行,而DL 是一个字节。

可改为:PUSH DX(5)错误。

在输入/输出指令中,8 位端口地址应直接写在操作数处。

可改为:IN AX,3FH(6)错误。

端口地址3FFH 已超出8 位二进制表示范围,16 位端口地址应用DX。

可改为:MOV DX,3FFH OUT DX,AL(7)错误。

LES 指令的目操作数应该是通用寄存器,不能是段寄存器。

可改为:LES BX,[SI](8)错误。

AX 不能用于间接寻址,间接寻址只能用BX、BP、SI、DI 四个寄存器之一。

可改为:POP [BX](9)错误。

立即数不能做乘法指令的操作数,可改为:MOV BL,4CH IMUL BL(10)错误。

当逻辑移位的次数大于1时,应该用CL指示次数。

可改为MOV CL,5 SHL BX,CL (11)错误。

操作数300 > 255,已超出有效的中断类型码范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档