微机练习题集_第1页
微机练习题集_第2页
微机练习题集_第3页
微机练习题集_第4页
微机练习题集_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.1寻址方式寻址方式分类:1)与数据有关的寻址方式2)与转移地址有关的寻址方式:确定内存单元的地址有7种与数据有关的寻址方式:确定转移地址以MOV指令为例:MOV目的操作数,源操作数对源操作数分别使用7种寻址方式如下:(1)立即寻址方式(ImmediateAddressing)特点:操作数包含在指令中操作数是指令的组成部分,可以是8位或16位,取出指令就立即获得操作数——立即数例1:MOVAL,5执行指令后:(AL)=05HB005存储器指令05AL例2:MOVAX,3045H执行指令后:(AX)=3045H指令45AXOP45存储器3030低地址1用途:给变量或寄存器赋常量值限制:只能用于源操作数(2)寄存器寻址方式(RegisterAddressing)特点:操作数存在寄存器中例:MOVAX,BX执行指令前:(AX)=3045H(BX)=4000H执行指令后:(AX)=4000H(BX)=4000H用途:用寄存器提供操作数时存取速度快

2指令2000H5030…………存储器代码段op0020数据段30000H32000HAX用途:用于存取单个变量中的操作数3050例:设(DS)=3000HMOVAX,[2000H](3)直接寻址方式(DirectAddressing)特点:操作数的偏移地址包含在指令中要访问的存储单元物理地址为:30000H+2000H=32000H设:(32000H)=3050H执行指令后:(AX)=3050H如果2000H单元在附加段,指令为:MOVAX,ES:[2000H]

段跨越前缀:段寄存器名:——改变默认使用的段寄存器

MOVAX,NUM3第一章基础知识第四章指令系统和寻址方式可以使用属性操作符typePTR来进行属性说明4第一章基础知识第四章指令系统和寻址方式51000HAX用途:可用于处理数组50A0A050………存储器数据段20000H21000HXXXX21002H例:设(DS)=2000H

(BX)=1000H指令为:MOVAX,[BX]数组起始地址(4)寄存器间接寻址方式(RegisterIndirectAddressing)特点:(寄存器)=操作数的偏移地址计算操作数物理地址的公式:1)操作数物理地址=(DS)16+2)操作数物理地址=(SS)16+(BP)(BX)(SI)(DI)20000H+1000H=21000H要访问的存储单元物理地址为:设:(21000H)=50A0H执行指令后:(AX)=50A0H6指令4000H30000HAX(寄存器相对寻址方式)1234例:设(DS)=3000H

ARRAY=4000H(SI)=2000H指令为:MOVAX,ARRAY[SI]3412…………存储器代码段op0040数据段36000Hop…2000H数组起始地址(5)变址寻址方式(IndexedAddressing)特点:(变址、基址寄存器)+指令中的位移量

=操作数的偏移地址计算操作数物理地址的公式:1)操作数物理地址=(DS)16+2)操作数物理地址=(SS)16+(BP)+8位位移量16位位移量30000H+4000H+2000H=36000H

要访问的存储单元物理地址为:设:(36000H)=1234H用途:可用于处理数组执行指令后:(AX)=1234H+(SI)(DI)(BX)8位位移量16位位移量70158HAX1234例:设 (DS)=2100H (BX)=0158H (DI)=1000H指令为:MOVAX,[BX+DI]3412………存储器数据段21000H22158H

1000H数组起始地址(6)基址变址寻址方式(BasedIndexAddressing)特点:(基址寄存器)+(变址寄存器)=操作数的偏移地址计算操作数物理地址的公式:1)操作数物理地址=(DS)16+2)操作数物理地址=(SS)16+(BP)+(BX)+(SI)(DI)(SI)(DI)21000H+0158H+1000H=22158H

要访问的存储单元物理地址为:设:(22158H)=1234H执行指令后:(AX)=1234H用途:可用于处理数组8几种可处理数组的寻址方式的比较:1.MOVAX,[BX]2.MOVAX,ARRAY[SI]3.MOVAX,[BX][SI]寄存器间接寻址方式变址寻址方式基址变址寻址方式特点:可读性好,指令中明确指出了要处理的数组。限制:写程序时必须清楚要处理什么数组。特点:适用于要处理的数组需要在程序运行中动态确定,并且修改BX就可以处理不同的数组。特点:适用于要处理的数组需要在程序运行中动态确定,且形式简单。上述1.和2.指令中的[寄存器]还可被哪些寄存器替换?DISIBP(加段跨越前缀DS:或ES)上述3.指令中的BX寄存器是否可被其他寄存器替换?DIBXBP(加段跨越前缀DS:或ES)next9指令2000HAX1234例:设(SS)=3000H (BP)=2000H ARRAY=0250H (SI)=1000HMOVAX,ARRAY[BP][SI]1000H30000H3412…………存储器代码段op5002堆栈段33250Hop……0250H栈顶数组首址(7)相对基址变址寻址方式(RelativeBasedIndexAddressing)特点:(基址寄存器)+(变址寄存器)+位移量=操作数的偏移地址30000H+2000H+0250+1000H=33250H

要访问的存储单元物理地址为:用途:便于访问堆栈中的数组10第一章基础知识第四章指令系统和寻址方式MOV指令注意事项:MOV指令可以在CPU内或CPU和存储器之间传送字或字节,它传送的信息可以从寄存器到寄存器,立即数到寄存器,立即数到存储单元,从存储单元到寄存器,从寄存器到存储单元,从寄存器或存储单元到除CS外的段寄存器(注意立即数不能直接送段寄存器),从段寄存器到寄存器或存储单元。MOV指令中的源操作数绝对不能是立即数和代码段CS寄存器;

MOV指令中绝对不允许在两个存储单元之间直接传送数据;

MOV指令中绝对不允许在两个段寄存器之间直接传送数据;

MOV指令不会影响标志位例:MOVAX,DATA_SEGMOVDS,AX注意:段寄存器(段地址)必须通过寄存器如AX寄存器进行立即数的初始化。例:MOVBX,OFFSETTABLE将TABLE的偏移地址(而不是内容)送到BX寄存器中。其中OFFSET为属性操作符,表示的是将其后的符号地址的值(不是内容)作为操作数。例MOVAX,Y[BP][SI]

把地址为16d×(SS)十(BP)十(SI)十位移量Y的存储单元的内容送给AX寄存器11例:

MOVAL,E指令执行后:(AL)=45H例:

判断下列指令是否合法:MOV DS,AX不允许两个操作数都是存储器单元

MOV CS,AXMOV CH,4050HMOV DL,5BHMOV DX,5BHMOV DX,ALMOV VA1,VA2MOV 45,DL目的操作数不允许是CS段寄存器目的操作数不允许是立即数数据类型不匹配数据类型不匹配next12第一章基础知识第四章指令系统和寻址方式(3)有效地址传输指令地址传送指令LEA有效地址送寄存器LDS指针送寄存器和DSLES指针送寄存器和ES这一组指令完成把地址送到指定寄存器的功能。1.LEA有效地址送寄存器格式:LEAREG,SRC执行过程:(REG)<-SRC完成功能:指令将有效地址送到指定的寄存器中。2.LDS指针送寄存器和DS格式:LDSREG,SRC执行的操作:(REG)〈一(SRC)(DS)〈-(SRC十2)把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中。该指令通常用来指定SI寄存器。3.LES指针送寄存器和ES格式:LESREG,SRC执行的操作:(REG)〈一(SRC)(ES)〈-(SRC十2)

把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中。该指令通常用来指定DI寄存器。13第一章基础知识第四章指令系统和寻址方式有效地址传输指令注意:以上三条指令,不能指定段寄存器,指令操作不影响标志位本组指令把变量的偏移地址(LEA)或段地址和偏移地址(LDS和LES)送给寄存器,以提供访问变量的工具。例:LEABX,[BX十SI十0F62H]如指令执行前(BX)=0400H,(SI)=003CH则指令执行后(BX)=0400十003C十0F62=139EH必须注意,在这里BX寄存器得到的是偏移地址而不是该存储单元的内容。例:LDSSI,[10H]如指令执行前(DS)=C000H,(C0010H)=0180H,(C0012H)=2000H则指令执行后(S1)=0180H,(DS)=2000H例LESDI,[BX]如指令执行前(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H则指令执行后(D1)=05AEH,(ES)=4000H14第一章基础知识第四章指令系统和寻址方式15第一章基础知识第四章指令系统和寻址方式16第一章基础知识第四章指令系统和寻址方式1718例4.1

解:

(1)写出对应的二进制地址码(2)确定芯片的数量及类型0110000000000000A15A14A13A12

A11A10…A7…

A4A3…

A0…01100111111111110110100000000000…01101011111111112K×8位1K×8位RAM2片1K×4位ROM1片2K×8位19(3)分配地址线A10~A0接2K

×

8位ROM的地址线A9~A0接1K

×

4位RAM的地址线(4)确定片选信号:A13A12A11CBA0110000000000000A15A13A11A10…A7…A4A3…

A0…01100111111111110110100000000000…01101011111111112K

×

8位1片ROM1K

×

4位2片RAM202K

×8位ROM

1K

×4位

RAM1K

×4位

RAM………&PD/ProgrY5Y4G1CBAG2BG2A……MREQA14A15A13A12A11A10A9A0…D7D4D3D0WR…………例4.1CPU与存储器的连接图………21(1)写出对应的二进制地址码:例:假设同前,要求最小8K为系统程序区,相邻16K为用户程序区,最大4K地址空间为系统程序工作区。

(2)确定芯片的数量及类型:(3)分配地址线:(4)确定片选信号:1片

8K×8位ROM--系统程序区

2片

8K×8位RAM1,2--用户程序区1片

4K×8位RAM3--系统程序工作区A12~A0接ROM和RAM1,2的地址线A11~A0接ROM和RAM3的地址线课堂练习22CBARAM2000H~5FFFHROM0000H~1FFFHRAMF000H~FFFFH对应的二进制地址码23逻辑连线图244.3.28086微机存储器系统8086存储器空间8086系统有20根地址线,16根数据线,寻址空间为1MB8086CPU的存储器组织采用2体结构,把1MB存储器分为2个512KB的存储体,即分为偶地址体与奇地址体(简称偶体和奇体)各512KB,仅当A0=0时,访问偶体中一个字节;仅当BHE=0时,访问奇体中一个字节,当二者均为0时,访问偶地址起始的一个字。偶地址数据由数据线低8位传送奇地址数据由数据线高8位传送奇、偶地址数据存取分别由BHE和A0控制(见下表)

258086存储器空间BHEA0操作所用总线00从偶地址读/写一个字D15~D010从偶地址读/写一个字节D7~D001从奇地址读/写一个字节D15~D8从奇地址读/写一个字01读/写低字节D15~D810读/写高字节D7~D0MEMRMEMWM/IORDWR存储器读命令存储器写命令存储器连接的控制信号268086存储器连接示意27偶地址(存储器的引脚连法)A3A2A1A0(对应的地址)00000000H00100002H01000004H01100006HA0全为0,为偶地址体,将CPU的A1接到存储器的A0。28奇地址(存储器的引脚连法)A3A2A1A0(对应的地址)00010001H00110003H01010005H01110007HA1全为1,为奇地址体,将CPU的A1接到存储器的A0。298086系统存储器连接举例例:由2片62256(32K×8RAM)组成64K×8RAM的8086微机存储器系统,试给出硬件电路连接图。(1)控制奇偶片选CS的存储器连接电路图地址信号A0~A19和BHE是8086CPU经锁存器8282或74LS373锁存后产生的信号数据总线D0~D15是8086CPU的AD0~AD15经8286或74LS245缓冲后产生的信号MEMR和MEMW在最小模式下由8086CPU的M/IO和RD、WR信号产生,在最大模式下由8288产生。308086系统存储器连接举例IC0为偶地址存储器,其数据由数据总线低8位传送。IC1为奇地址存储器,其数据由数据总线高8位传送。由A0和BHE控制写信号实现奇偶地址写操作。A16~A19由74LS138译码选中存储器三种情况mov[2000h],al;从偶地址开始写一个字节mov[2000h],ax;从偶地址开始写一个字mov[2001h],ax;从奇地址开始写一个字IC0(偶)IC1(奇)A19A18A17A160000XX0000XX范围00000~0FFFFH00000~0FFFFH地址分配

A15~A031(1)控制奇偶片选CS的存储器连接电路图32(2)控制奇偶写WE的存储器连接电路图33不译码例:用2片27256(32K×8EPROM)组成一个64KB存储器。这种译码方式将所有的地址空间都分配给了这2片EPROM34例题:8位CPU与存储器的连接ROM与8位CPU的连接设某系统需扩展6KB的ROM,地址范围安排在0000H~17FFH,选用3片EPROM2716构成。2716的容量2K×8位,8根数据线,11根地址线,CPU地址总线A10~A0与芯片的地址线直接接连,高位地址线A15~A11通过译码器74LS138产生,且3片2716的高位地址分别为00000,00001,00010。选择A13A12A11作为3位输入端,并保证A15A14分别低电平,为低电平有效,2716与8位CPU的连接线路示意图如图所示。3536例题:ROM、RAM与8位CPU连接某8位微处理器有地址线16根,数据线8根,存储器请求控制信号为,读控制信号,写控制信号,试为该CPU设计一存储器,要求扩展ROM6KB,地址从0000H开始(连续),RAM16KB,地址从4000H开始(连续)。37分析(1)芯片选择系统扩展ROM6KB,可选4K×8EPROM(2732)与2K×8EPROM(2716)各1片。扩展RAM可选8K×8SRAM(6264)2片。ROM、RAM与8位CPU的连接示意图如图所示。(2)地址分配与连接低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论