微机原理-3

合集下载

微机原理 宋志平 第三章课件

微机原理 宋志平 第三章课件

011
100 101
[BP]+[DI]
[SI] [DI]
[BP]+[DI]+D8
[SI]+D8 [DI]+D8
[BP]+[DI]+D16
[SI]+D16 [DI]+D16
110
111
D16(直接地址)
[BX] 15 1 0 0 0 1 0 操作码
[BP]+D8
[BX]+D8 8 D W 7
[BP]+D16
微机原理与接口技术
例: MOV CX , 36H[BX] MOV -20[BP] , AL
11
6、基址加变址寻址(Based Indexed addressing) 它的EA是由三部分组成的,基址寄存 器BX或BP的内容加上变址寄存器的内容 再加位移量。物理地址由基址寄存器按规 则选择段寄存器,也可以使用段超越。
01 11 00 10
CS DS ES SS
210 R/M
MOD
0:数据从寄存器传出 1:数据传至寄存器
24
MOD R/M 000 001 010
微机原理与接口技术 11 00 [BX]+[SI] [BX]+[DI] [BP]+[SI] 01 [BX]+[SI]+D8 [BX]+[DI]+D8 [BP]+[SI]+D8 10 [BX]+[SI]+D16 [BX]+[DI]+D16 [BP]+[SI]+D16 W=0 AL CL DL BL AH CH DH BH 210 R/M W=1 AX CX DX BX SP BP SI DI

《微机原理与接口技术(80386-Pentium)》-第3章80486系统原理

《微机原理与接口技术(80386-Pentium)》-第3章80486系统原理
9
惟一差别是80486又新定义了一个AC 标志位(即标志 寄存器的位18),也就是对准校验标志(Alignment Checkout Flag)。 若AC位为1时,80486就允许对没有对准的数据进行 对准检查,既可以是对字对准进行检查,也可以对双 字甚至四字的对准进行检查。若80486发现在进行存 储器操作时出现没有按边界对准情况,就发生数据访 问异常事故,并把这种异常事故编号为异常事故17。 若AC位为0则不检查。 如果对存储器进行读写操作时,使用的是一个未对准 的地址,80486就允许产生异常事故信号。若AC=1, 若出现了单字存储操作时使用的是奇地址,双字存储 操作使用的不是双字边界内地址,或者在进行四字(8 个字节)存储操作时使用的不是四字边界内地址,就 会出现数据访问不对准异常。
15
图3.4示出80486微处理机CPU的逻辑框图。 图中的Cache部件、8K• 节的统一Cache、 字 以及浮点部件FPU和EP寄存器组在以 80386为基础的系统内属于不同的独立芯 件,并不在80386 CPU芯片之内,而在 80486中这些部件变成了80486 CPU的一 个组成部分。 这两个新集成到80486 CPU内的部件,一 个是浮点部件FPU,它有效地提高了浮点 操作性能;另一个是指令和数据共用的高 速缓冲存储器Cache。
7
3.标志寄存器EFLAGS
80486的标志寄存器是一个32位寄存器,如图3.3所 示。它的作用是用来存放有关80486微处理机的状态 标志信息、控制标志信息以及系统标志信息。 80486的状态标志信息报告的是算术运算类指令在执 行完之后的机器状态。控制标志仅有一个即DF标志, 用来控制串操作过程中执行方向问题,即是给目标变 址寄存器EDI、源变址寄存器EDI、源变址寄存器 ESI 增值还是增负值(减值)问题。系统标志信息用来控 制输入/输出、屏幕中断、调试、任务转换和控制保 护模式与虚拟8086模式间的转换等操作。 对绝大多数系统来说,若通过应用程序改变系统标志 寄存器中的标志状态,都将引起一个异常事故出现。 拿80486的标志寄存器与 80386的标志寄器进行比较 后会发现,二者几乎完全一样。 8

微机原理第三章作业答案

微机原理第三章作业答案

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章---微机原理-汇编-朱定华PPT优秀课件

第3章---微机原理-汇编-朱定华PPT优秀课件

MOV AH,0
DIV BL ; ,BH ;BCD数十位与个位送AL
10
10
3.1.1 乘除法指令
3. 扩展指令CBW和CWD
要把一个8位二进制数除以一个8位二进制数,要有一 个16位二进制数在AX中.所以做8位除以8位的除法 前先要把8位被除数扩展为16位,做16位除以16位的 除法前要把16位被除数扩展为32位.这种扩展对于无 符号数除法只需将AH或DX清0,而对符号整数除法 则要通过扩展符号位来把被除数扩展。
11
11
3.1.1 乘除法指令
格式:CBW ; AL的最高位扩展至AH CWD ; AX的最高位扩展至DX
两指令都隐含操作数 在做8位除以8位、16位除以16位的除法之前, 应先扩展AL或AX中的被除数 扩展指令和符号整数除法仅对补码数适用
12
12
3.1.1 乘除法指令
如:有一符号字数组变量ARRAY,第1个字 是被除数,第2个字是除数,接着存放商和 余数,其程序段为:
3
3
3.1.1 乘除法指令
16位乘法指令所执行的操作是AL或AX乘以 source,乘积放回到AX或DX和AX
AL
×
sourc8
AX
×
DX
AX sourc16
AX
可用乘法运算将BCD数转换为二进制数 44
2.3.4 常用指令应用举例
例 将AX中小于(等于)255大于0的3位BCD数转换为 二进制数,存入字节变量SB中
14
14
3.1.2 BCD数调整指令
1.BCD数加法调整指令DAA和AAA (1)压缩BCD数加法调整
格式: DAA 功能:将AL中的和调整为正确的压缩BCD数 调整规则: (AL&0FH)>9或AF=1,则AL加6;

微机原理2007年-第三章-指令系统第五节控制转移

微机原理2007年-第三章-指令系统第五节控制转移

③ 段间直接转移 段间直接转移
指令中给出的16位的段和 位的偏移地址送到CS和IP。 指令中给出的16位的段和16位的偏移地址送到CS和IP。 位的段和16位的偏移地址送到
④ 段间间接转移 段间间接转移
MEM中给出的 位的段和 位的偏移地址送到CS和IP。 MEM中给出的16位的段和16位的偏移地址送到CS和IP。 中给出的16位的段和16位的偏移地址送到
6
例:代码段内有一条无条件转移指令
JMP SHORT NEXT 指令本身占有两个字节 操作码占一个字节; 位位移量占有一个字节 操作码占一个字节;8位位移量占有一个字节
内存
... 源程序 : 条件转移指令: 条件转移指令:JMP SHORT next qqq: ... ... next: MOV AL,03H
5
① 段内直接转移 转移的目标地址由指令直接给出。 段内转移,故转移后CS内容保持不变, 段内转移,故转移后CS内容保持不变,只改 变IP的值。 IP的值。
汇编语言中格式 JMP SHORT OPRD JMP NEAR PTR OPRD 位移量 转移范围 8位 -128~+127 128~ 16位 16位 -32768~+32767 32768~
13
JMP DWORD PTR [SI]的机器码 11111111 11101100 DS:[SI]
4000 DS +) 1212 SI 41212 41212 41213 41214 41215
00 10 00 4A
1000 4A00
IP CS
段间间接转移操作示意图
14
(2)条件转移指令 (2)条件转移指令 - JXX 条件转移指令可实现程序的条件分支。 条件转移指令根据标志位的状态来决定是 否进行分支转移。(判位转移) 格式: JXX label xx为条件名称缩写 ;xx为条件名称缩写 指令的转移范围为-128~+127字节。 指令的转移范围为-128~+127字节。

微机原理第1-3章—练习

微机原理第1-3章—练习

第二章练习题练习一填空1、8086/8088加电复位后,执行第一条指令的地址是( )2、已知段地址和偏移地址分别为3900H 和5200H,此存储地址的物理地址是()3、INTEL8086CPU由()和()组成,其特点是()操作。

4、若8086CPU的引脚MN/MX接+5V,则当执行OUT指令时,其引脚信号M/IO=()、RD#=()、WR#=()。

5、8086工作于最小模式下,CPU完成存储器读操作时,信号M/IO# =()、RD=()、WR#=()和DT/R#=()。

若进行字节操作,单元地址为奇地址,则BHE#=(),A0=()。

6、如果8088/8086CPU的工作时钟CLK=4KHZ,请问:(1)CPU正常工作时,RESET引脚至少出现多少微秒的高电平才能使CPU复位?(2)在插入一个T w的情况下,从内存读出一个字节数据所需的时间是多少?7、8086最小模式下,ALE的作用是(),DEN的作用是(),DT/R的作用是()。

8、8086CPU在执行MOV,AL,[BX]指令总线周期内,若BX存放内容为2034H,BHE和A0的状态为()和()。

9、在INTEL8086CPU中,一个最基本的总线周期数由()个时钟周期(T状态)组成,在T1状态,CPU往总路上发出()信息。

10、设DS:75H存储单元开始存放11H、22H和33H,若要求占用的总线周期最少,则要()条指令才能把这3个数据读入到时CPU中,这时占用()个总线周期。

若执行MOV AX,[75H]后,则AH=(),AL=()。

11、当总线请求收到()信号后,就获得了总线控制权;在其控制总线时期,HOLD和HLDA都保持()。

当总线占用部件用完总线后,HOLD变为低电平,于是CPU 又重新控制总线,并使HLDA变为()。

12、假设8086微机内存中某一物理地址是23456H,其逻辑地址可表示为2345H:()或():0456H。

13、8086CPU有最大和最小两种工作模式,由()引脚决定,其特点是()。

微机原理第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 则内存操作数的物理地址为:

微机原理作业与答案第三章

微机原理作业与答案第三章

8086第三章作业3-11在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址(1)1000H 10000H-1FFFFH(2)1234H 12340H-2233FH(3)E000H E0000H-EFFFFH(4)AB00H AB000H-BAFFFH3-12对于下列CS:IP组合,计算出要执行的下条指令存储器地址。

(1)CS=1000H和IP=2000H 答:下条指令存储器地址:12000H(2)CS=2400H和IP=1A00H 答:下条指令存储器地址:25A00H(3)CS=1A00H和IP=B000H 答:下条指令存储器地址:25000H(4)CS=3456H和IP=ABCDH 答:下条指令存储器地址:3F12DH3-37 指出下列指令源操作数的寻址方式(1)MOV AX,1200H;立即数寻址(2)MOV BX,[1200H];直接寻址(3)MOV BX,[SI];变址寻址(4)MOV BX,[BX+SI+1200];相对基变址寻址(5)MOV [BX+SI],AL;寄存器寻址(6)ADD AX,[BX+DI+20H];相对基变址寻址(7)MUL BL ;寄存器寻址(8)JMP BX ;间接寻址(9)IN AL,DX ;寄存器间接寻址(10)INC WORD PTR[BP+50H] ;相对基址寻址小结:虽然对存储器的访问指令、输入/输出指令(IN指令和OUT指令)、跳转指令(JMP指令)都有直接寻址和间接寻址,但是形式是有很大差别的:1.直接寻址:(1)对于存储器的访问用方括号括起来的二进制数,如:MOV BX,[1200H](2)对于输入/输出指令(IN指令和OUT指令)用二进制数如:IN AX,8FH 又如: OUT 78H,AL(3)对于跳转指令(JMP指令)是以目标标号为直接地址的如: JMP ADDR12.间接寻址:(1)对于存储器的访问有分为基址寻址、变址寻址、基址加变址寻址以及带位移量的所谓相对基址寻址、相对变址寻址、相对基址加变址寻址如:MOV AX,[BP](2)对于输入/输出指令用DX做间接寻址寄存器如:IN AX,DX 又如: OUT DX,AL(3)跳转指令直接写明寄存器即可 (段内)如: JMP BX段间需组合:如: JMP DWORD PTR [BX+ADDR1]3-38指出8086/8088下列指令中存储器操作数地址的计数表达式。

微机原理第三章:8086微处理器结构

微机原理第三章:8086微处理器结构

4.8086 和8088 二者的指令系统完全兼容
(1)有24 种寻址方式,具有乘、除法指令等。 (2)取指令和执行指令的操作并行运行,运行速度大大提高。
(3)具有最小模式和最大模式,应用领域宽广,适应性强。
(4)可方便地和数据处理器8087、I/O 处理器8089 或其它处理器 组成多处理机系统,提高数据处理能力和输人输出能力。
代码段寄存器 CS 标 志 寄 存 器
数据段寄存器 DS
堆栈段寄存器 SS
附加段寄存器 ES
由于8086/8088 CPU 可直接寻址的存储器空间是1M字节,直接寻址需要 20位地址码,而所有的内部寄存器都是16位的,用这些寄存器只能寻址 64K字节,为此需要采取分段技术来解决这个问题。
表3.1
通用寄存器的隐含使用
程序调试过程中。
3.1.2 8086/8088 的寄存器结构
四、指令指针寄存器 IP ★ 16 位的指令指针寄存器 IP 用来存放将要执行的下一条 指令在代码段中的偏移地址。 ★ 在程序运行过程中,BIU 可修改 IP 中的内容,使它始终 指向将要执行的下一条指令。 ★ 程序不能直接访问 IP,但可通过某些指令修改 IP 内容。 ★ 如遇到转移类指令,则将转移目标地址送人IP中,以实 现程序的转移。
★ 规则字的读/写操作可以一次完成。由于两个存储体上的地址
线 A19~A1 是连在一起的,只要使 A0=0,BHE=0,就可 以实现一次在两个存储体中对一个字的读/写操作。 ★ 读写的是从奇地址开始的字(高字节在偶体中,低字节在奇体 中),这种字的存放规则称为“非规则字”或“非对准字”。 ★ 非规则字的读/写,需要两次访问存储器才能完成。 第一次访问存储器读/写奇地址中的字节;
三、标志寄存器 FR

微机原理第3章指令

微机原理第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。

微机原理 1-3系统组成

微机原理 1-3系统组成

•分布式操作系统——分布式计算机,MDS、CDCS 目前常用:DOS、Windows、Unix、Linux、Vista
微机原理与接口技术 §1.3 计算机系统组成
第1章 微型计算机基础知识
§1.3.5 软件系统
操作系统* 汇编程序 语言处理程序* 解释程序 数据库系统 编译程序
分类:
软件系统
系统软件
§1.3I/O接口
输入设备:键盘、鼠标,摄像头、扫描仪、触摸屏、MIC等
(指将原始信息,如数据、程序、控制命令等转换为计 算机所能识别的信息,并存入计算机内存的设备。)
输出设备:显示器、打印机、绘图仪等
(将存储在内存中的处理结果或其它信息,以能为 人所接受的或能为其它计算机接受的形式输出。)
编程对象
语句元素
面向机器
由“0”、“1”构成
面向机器
用助记符编程
面向“过程”
用语言按照语法规 则编写,如BASIC
运行条件
机器直接理解运行
需要“解释器”翻 需要“汇编器”翻 译为目标指令,再 译为机器语言才能 由“编译器”翻译 执行 为机器语言
特点
可读性、可记忆性 难学、难记、难读、难改, 易学、易懂,程序 好,效率高、实时 占内存少,速度快 容量大,速度慢 性强 1011 0000 0001 0000 0000 0100 0000 0101 01000100000011000000000 MOV AL,16 ADD AL,4 MOV ADDR6,AL C++语言 ADDR6=16+4
第1章 微型计算机基础知识
§1.3.5 软件系统
分类:
对计算机本身进行操作 和管理,提供给用户操作 环境和软件运行环境。

2019年最新-微机原理与接口第3章2—8086微处理器总线周期及引脚-精选文档

2019年最新-微机原理与接口第3章2—8086微处理器总线周期及引脚-精选文档
⑵ 总线周期
8086CPU与外部交换信息总是通过总线进行的 。CPU的每一个这种信息输入、输出过程所需要 的时间称为总线周期(BusCycle),一般一个总线 周期由四个时钟周期组成。
⑶ 时钟周期
时钟脉冲的重复周期称为时钟周期 (Clock Cycle)。时钟周期是CPU的时间基准,由计算机 的主频决定。如8086的主频为5MHz,1个时钟周 期就是200ns。
CLK
空 闲 状态 TI在8086 系 统 中 一 般 为 三 个 , 而 在 8088 系 统中则没有。
T1 T2 T3 T4 TI TI TI T1 T2 T3 T4
ALE
INTA AD7~AD0
中断类型
图3.5 中断响应周期的时序
10
第3章 80x86微处理器
CPU的中断响应周期包括两个总线周期, 在每个总线周期中都从INTA端输出一个负 脉冲,其宽度是从T2状态开始持续到T4状态 的开始。第一个总线周期的INTA负脉冲, 用来通知中断源,CPU准备响应中断,中断 源应准备好中断类型码,在第二个总线周 期的INTA负脉冲期间,外设接口(一般经中 断控制器)应立即把中断源的中断类型码送 到数据线的低8位AD7~AD0上。
4
第3章 80x86微处理器源自CLK M/IO A19/S6~A16/S3 BHE/S7 AD15~AD0 ALE
RD DT/R DEN
T1
T2
T3
TW
T4

高为读内存


地址


BHE输出


地址输出
低为读I/O 状态输出
数据输入
③ ⑨
⑤ ⑩
图3.3 8086读周期的时序

微机原理与接口技术(第二版)习题答案-第三章

微机原理与接口技术(第二版)习题答案-第三章

习题31.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少?(1)MOV AX, 0ABH (2) MOV AX, [100H](3) MOV AX, V AL (4) MOV BX, [SI](5) MOV AL, V AL[BX] (6) MOV CL, [BX][SI](7) MOV V AL[SI], BX (8) MOV [BP][SI], 100答:(1) 立即数寻址,无物理地址(2) 直接寻址,物理地址=2000H×10H+100H=20100H(3) 直接寻址,物理地址=2000H×10H+0050H=20050H(4) 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H(5) 相对寄存器寻址,物理地址=2000H×10H+(0050+0100H)=20150H(6) 基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址2.已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。

答:“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP 自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H 指向00B2H。

图略。

3.设有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容。

微机原理第三章习题与参考答案

微机原理第三章习题与参考答案

第三章习题与参考答案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-附答案

微机原理单元检测3-附答案

《微机原理与接口技术》单元测验3学号姓名分数一、判断题(每题1分,共20分)1.半导体静态随机存储器需要有刷新电路。

()2.静态存储器比动态存储器存取速度快。

()3. 8086系统中访问存储器进行字读写操作时一定用一个总线周期。

()4.随机存储器单元的内容读出和写入操作其内容不变。

()5. ROM是一种非易失性的存储器,但其中的信息断电以后消失。

()6. ROM中的内容,只能写入,不能读出。

()7. EPROM的含义是可擦除可改写的只读存储器()8.用2k×8位的存储芯片,组成16k×8位的存储器,需用字扩展()9.一个SRAM芯片,有14条地址线和8条数据线,则该芯片的容量是64KB。

()10. INTEL8086/8088内存和外设端口采用统一编址方式。

()10. 静态和动态RAM都具有易失性。

()11.条件转移指令只能使用于段内直接短转移。

()12. 实际上,微处理器对外部设备的访问就是对端口中的接口访问。

()14. 8086微处理系统中,已知中断类型码乘4后可得中断向量表地址指针。

()15. 微处理器通过总线和多台外部设备交换信息,同一时刻只能与一台设备交换信息。

()16. 有的接口中存有微处理器发来命令的端口,以便控制接口和外部设备的操作,这种端口称为控制端口。

()17. 8086的一个基本总线周期为 4个T状态。

()18.硬盘在微型计算机的机箱内部,所以是内存储器。

( )19. 用8k×1位的存储芯片,组成8k×16位的存储器,需用8片。

( )20. 8086系统中的奇和偶存储体都是512KB。

()二、多项选择题(10分)1.下列说法正确的是()A、INTEL8086/8088采用独立编址方式B、实际上,微处理器对外部设备的访问就是对端口中的接口访问。

C、当微处理器在输入操作时,要求外部设备一定准备就绪,在这样的条件下可采用查询方式D、8086微处理系统中响应NMI请求,必须由中断源提供中断类型码,并且执行两个总线响应周期。

微机原理与接口技术第三章试题及答案

微机原理与接口技术第三章试题及答案

第三章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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-11-8
种代码和数据分配地址,产生单一的输出文件,可装入开发机或EPROM编程器中 。 其编译过程与C语言相同。
09:09:59
8
Keil C51的关键字
共21个 _at_ alien bdata bit code compact data far idata interrupt large pdata _priority_ reentrant sbit sfr sfr16 small _task_ using xdata
2013-11-8
间接寻址内部数据区(256Bytes)
位寻址内部数据区(16Bytes) 外部数据区,存取指令MOVX @DPTR 扩展到16M的RAM或ROM,特殊器件 分页存取的外部数据区,存取指令MOVX @Rn
11
09:09:59
Keil C51变量定义/声明
举例 struct link
汇编语言 源程序.ASM
2013-11-8
交叉 汇编
列表文件.LST 目标文件.HEX RS-232C接口 单片机 开发系统
编辑程序 EDLIN/记事本 汇编过程示意图 09:09:59
16
1. MASM51交叉汇编程序的运行环境
IBM PC机或其兼容机,具有RS-232C串行通信接口,运行DOS 2.0
09:09:59
2013-11-8
14Leabharlann eil C51变量定位#define CBYTE #define DBYTE #define PBYTE #define XBYTE #define CWORD #define DWORD #define PWORD #define XWORD
2013-11-8
仿真头,直接插入单片机应用板的CPU插座中。仿真器连接后,在PC机上
安装仿真软件。如图2.4所示,是仿真程序QTH的运行界面,可输入/编辑 汇编语言程序;或者运行C51程序,然后编译并执行。这样,在PC机上执 行程序,即可观察目标板上所连接设备的工作状况,达到系统仿真目的。
其中AA是目标文件中机器代码的字节数;BBBB是起始地址
;CC表示目标文件行的数据类型,若为数据,CC=00,否则为其 它值;DD是源程序机器代码;EE是校验和。
2013-11-8
09:09:59
19
2 编译过程
用高级语言编写的程序需要经过翻译成计算机认识的指令。 编译系统与编程语言、CPU指令系统、开发厂商等有关,编译过 程如图2.3所示。
reentrant ,重入
interrupt n,中断号为n,表示为中断处理程序
2013-11-8
using m,使用m( 0 ≤ m ≤ 3)寄存器区
09:09:59
13
举例 unsigned int cnt=0; unsigned char sec=0; void timer0(void) interrupt 1 using 2 { if (++ cnt == 4000) { sec++; cnt = 0; } }
sbit
sfr sfr16 2013-11-8
1
8 16 2 09:09:59
0、1
0 ~ 255 0 ~ 65535 10
Keil C51变量定义/声明
存储类型
code data 程序区,存取指令MOVC @A+DPTR 直接寻址内部数据区(128Bytes)
idata
bdata xdata far pdata
以上版本。 2. MASM51交叉汇编程序运行操作 启动MASM51.EXE程序: C> MASM51 屏幕显示版本信息…… > 系统进入汇编状态,输入需要汇编的源文件名: > ASM51 [<盘符:>] <文件名> [.ASM]
2013-11-8
09:09:59
17
例如:ASM51 A: SAMFILE.ASM 其后,系统对源程序进行汇编。汇编结束,屏幕显示:
2013-11-8
09:09:59
6
Rn:当前寄存器工作区中的寄存器,其中n=0~7;
direct:内部数据存储器地址,指定一个内部RAM单元或一个专用寄存器;
@Ri:通过R1或R0间接寻址,指定数据存储器RAM中的一个单元; #data:指令中的8位立即数; #data16:指令中的16位立即数; addr11:11位目的地址,用在ACALL或AJMP指令中,表示调用或转移地址;
09:09:59
15
例: rval = CBYTE [0x0002];
3.4 汇编与编译
1 汇编过程
手工汇编是由人工查找机器代码,它按照绝对地址计算转移
指令的目标地址,若要增删指令,往往需要重新计算偏移量,既 麻烦,又容易出错。因此,常使用汇编程序进行。汇编程序主要 有ASM51和MASM51,其过程如图所示。
09:09:59
12
Keil C51函数定义/声明
[类型] 函数名([参数列表]) [{small | compact | large}] [reentrant] [interrupt n] [using m]
其中: 类型,返回值类型,缺省为int型 small, compact, large 编译模式
int xdata il;
char xdata text[256]; char data *str;
{ struct link idata *next; char code *test; }
int xdata *numtab;
long code *powtab;
2013-11-8
struct link list mm;
2013-11-8
2
经过汇编而得到的机器语言程序称为目的程序,原来的汇编语 言程序称为源程序。汇编语言程序是直接用机器指令系统编写的程 序,与机器语言一一对应,执行速度比较快,而不能脱离具体的机
器。因此,也是面向机器的语言。
3.高级语言 高级语言,例如BASIC、FORTRAN、PASCAL及C语言等,是参照 数学语言而设计的近似于日常会话的语言,不但直观,易学易懂, 而且通用性强,容易移植到不同类型的机器上。
块进行编译、调试,通过连接器可把所有的目标模块连接起来,形成可直接传送
到MCS-51开发机上的可执行程序。C51不仅支持ANSI C语言的结构、函数原型、 数据类型、位段、函数指针、递归和符点运算,还提供一组面向MCS-51的扩展关 键字和6种存储模式。有关扩展关键字和存储模式的介绍,请参阅C51手册。 C51还支持C语言与汇编语言之间的通信,通过连接器可把编译和汇编后的 目标程序模块连接起来,并与C语言运行库文件中的目标程序块合并,然后为各
2013-11-8
9
09:09:59
数据类型 [存储类型] 变量名称 [_at_ 地址常数];
Keil C51变量 定义/声明
数据类型 bit signed char
长度 位 1 8 1 字节 0、1 -128 ~ +127
取值范围
unsigned char
enum signed short unsigned short signed int unsigned int signed long unsigned long float
8
8/16 16 16 16 16 32 32 32
1
1 or 2 2 2 2 2 4 4 4 1
0 ~ 255
-128 ~ +127 或 -32768 ~ +32767 -32768 ~ +32767 0 ~ 65535 -32768 ~ +32767 0 ~ 65535 -2147483648 ~ +2147483647 0 ~ 4294967295 ±1.175494E-38 ~ ±3.402823E+38
高级语言 源程序.C 编辑程序 文本编辑器 编译过程示意图
2013-11-8
列表文件.LST
编译 目标文件.OBJ 连接/定位
影像文件.M51
二进制文件.HEX
20
09:09:59
3. 仿真
一般来说,对于一块单片机的应用板需要借助于PC机、仿真器和写入
器进行程序的编辑、调试和固化。
所谓仿真器是一种调试工具,用以程序输入、修改、调试及生成二进 制代码。仿真器对外有两个接口,一个是串行口,与PC机连接,另一个是
方便了用户的程序设计。
2013-11-8
09:09:59
4
3.2 51单片机指令系统
51单片机使用了42种助记符,与7种寻址方式组合,构成111条指
令。下面分为7 类予以介绍。
2.3.1 数据传送类指令 2.3.2 算术运算类指令
2.3.3 逻辑运算类指令
2.3.4 移位类指令 2.3.5 控制转移类指令
The Cybernetic Micro System 8051 Family Assembler,Version3.03
(c) Copyright Cybernenic Micro System.lnc 1983,1984,1985,1986,……
00 Error (0000) >
“00 Error (0000)”表示源程序没有错误。如果有错误,显示错误行
第三章 51单片机程序设计
3.1
3.2 3.3 3.4
2013-11-8
机器语言、汇编语言与高级语言
指令系统 Keil C51 语言 汇编与编译
09:09:59
1
3.1机器语言、汇编语言与高级语言
1.机器语言 在计算机中,所有指令是用二进制代码来表示,称为机器语言,用 机器语言编写的程序称为机器语言程序。 虽然,机器语言能被计算机直接识别和执行,但是不便于记忆,不 易阅读,容易出错。 2.汇编语言 用英文字母组成的助记符表示操作码,用符号代替地址,这种表示 指令系统的语言称为汇编语言或符号语言,用汇编语言编写的程序称为 汇编语言程序。 用汇编语言程序机器不能直接识别,需转换成机器语言后才能执行 ,这一转换工作称为汇编。过去由人工汇编,也称为手工汇编。现在是 09:09:59 由专门的程序进行,这种程序称为汇编程序,这一过程称为机器汇编。
相关文档
最新文档