指令mov ax 4c00h,[0040H] 的有效地址EA和物理地址PA各是多少?

指令MOV AX,100H[0100H]源操作数的有效地址EA和物理地址PA各是多少?_百度知道寻址就是寻找操作数的地址。
寻址方式就是寻找操作数的方法。
操作数可以跟随在指令操作码之后,称为立即数;操作数也可以存放在CPU内部的寄存器中,称为寄存器操作数。绝大多数的操作数存放在内存储器中,称为存储器操作数。指令指定操作数的位置,即给出地址信息,在执行时需要根据这个地址信息找到需要的操作数。
位移量:就是指令中的位移量字段,是一个8位或16位的二进制数。
基地址(基址):基址寄存器BX或基址指针BP中的内容。
变地址(变址):变址寄存器SI或DI中的内容。
1.立即寻址方式
&&& 立即寻址即指令中直接给出操作数本身,采用该寻址方式的操作数与指令代码一起存放在码段中,以立即数或常数的形式出现,它是紧跟在指令操作码后面的一个可用8位或16位二进制补码表示的有符号数。
立即寻址主要用来为寄存器赋值,执行速度快。
(1)立即寻址通常用于二地址指令中,且只能用于源操作数,不能用于目的操作数。
(2)数据传送,应理解为复制传送,源操作数不会因为传送而失去数据
【例】MOV&&&& AX,1234H;
执行:1234H &AX
执行后:(AX)=1234H
&&& 2.寄存器寻址方式
&&& 指令指明的寄存器就是操作数的存放地址,操作数在指令指明的寄存器中。
&&& 对于16位的操作数,操作数放在CPU内部寄存器AX、BX、CX、DX、SI、DI、SP和BP等,对于8位操作数可以为AH、AL、BH、BL、CH、CL、DH和DL。
【例1】下列程序执行后,(AX)=?,(BX)=?
MOV& AX,1234H;
&&&&& MOV& BX,5678H;
&&&&& ADD& AX,BX;
执行:1234H&AX&&&&&&&&&
(AX)+(BX)&AX
执行后:(AX)=68ACH,(BX)=5678H
【例2】MOV&& AX,BX;
若执行前(AX)=1234H,(BX)=56EDH,
&& 则执行后(AX)=56EDH, BX内容不变。
&&& 3.直接寻址方式
直接寻址即指令中给出操作数所在存储单元的有效地址,缺省的段为数据段。为了区别于立即数,有效地址用&[ ]&括起。
物理地址=(DS)&10H/(16)+EA
&&& 操作数的16位偏移地址EA紧跟在指令操作码后面,即操作数的偏移地址EA与操作码一起存放在代码段中,而操作数可以放在数据段(DS)、也可以放在其它段,如代码段(CS)、附加段(ES)和堆栈段(SS),默认情况下操作数放在数据段。
【例1】:MOV& AX,[2000H]&&&&&
&&&& 默认的段寄存器是DS,如(DS)=3000H,
&&&& 物理地址 PA=3000H&10H+2000H
【例2】:MOV& AX,ES :[2000H]
&&&&& 物理地址PA=(ES)&10H+2000H
在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。试比较下列指令中源操作数的寻址方式(VARW是内存字变量):
&&& MOV AX,1234H&&& MOV AX,[1234H] 前者是立即寻址,后者是直接寻址
&&& MOV AX,VARW&&&& MOV AX,[VARW]& 两者是等效的,均为直接寻址
&&& 4.寄存器间接寻址方式
&&& 操作数存放在存储器中,而操作数的偏移地址EA存放在指令中指明的寄存器中,即寄存器的内容为操作数的偏移地址。这种寻址方式是通过寄存器间接寻址的,故称为寄存器间接寻址。其中[& ]中的寄存器只能是BX、BP、SI、DI这四个寄存器中的任一个,其它的寄存器不行,如[AX],这种写法是错误的。其中,BX、SI、DI所对应的偏移地址是相对数据段(DS)段首的偏移地址,BP所对应的偏移地址是相对堆栈段(SS)段首的偏移地址。
物理地址=DS&10H/(16)+SI或DI或BX
物理地址=SS&10H/(16)+BP
【例】MOV& AX,[BX] ;
&若(DS)=3000H,(BX)=2000H
&&& 则EA=(BX)=2000H&
&&& 物理地址 PA= 3H
&&&& (AX)=(32000)=1234H
&&& 5.寄存器相对寻址方式
&&& 操作数在寄存器中,而操作数偏移地址EA是指令中指明的寄存器的内容与指令中给出的位移量X(8位或16位的常数)相加之和。其中寄存器只能是BX、BP、SI、DI这四个寄存器中的任一个,BX、SI、DI所对应的偏移地址是相对数据段(DS)段首的偏移地址,BP所对应的偏移地址是相对堆栈段(SS)段首的偏移地址。
&&& 【例】MOV AL,8[BX]
&&&&&&& 若DS=3000H,BX=100H
EA=BX+disp=108H;
物理地址PA=3H
&&& 6.基址变址寻址方式
&&& 操作数在存储器中,操作数的偏移地址EA是指令中指定的基址寄存器(BX,BP)内容、变址寄存器(SI,DI)内容之和。基址与变址搭配情况有四种:[BX+SI]、[BX+DI]、[BP+SI]、[BP+DI],其中BX所对应的偏移地址是相对数据段(DS)段首的偏移地址,BP所对应的偏移地址是相对堆栈段(SS)段首的偏移地址。
&&& EA1=BX+DI/DI或EA2=BP+SI/BP;
PA1=DS&10H+EA1
PA2=SS&10H+EA2
【例1】MOV AL,[BP][SI]
设SS=3000,BP=100H,SI=5;
EA=BP+SI=100H+5H=105H
PA=SS&10H+EA=3H
【例2】MOV AX,ES:[BX][DI]
设ES=2000H,BX=300H,SI=5;
EA=BX+DI=305;
PA=ES&10H+EA=20305H
&&& 7.相对基址变址寻址方式
&&& 操作数在存储器中,操作数的偏移地址EA是指令中指定的基址寄存器(BX, BP)内容、变址寄存器(SI, DI)内容及位移量X三项之和。
&&& 【例】MOV AX, 8[BX][SI]
指令中的源操作数8[BX][SI]的寻址方式为相对基址变址寻址方式。
执行前:若(AX)=45H,(BX)=30H,(SI)=28H,(DS)=1000H,
&&& 物理地址=(DS) &10H+BX+SI=10058H
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2586次
排名:千里之外微计算机组成的五个部分:运算器,控制器,存储器,输入设备,输入设备。
微计算机的工作原理:
第一步:由输入设备将事先编好的程序和原始数据输入到存储器指定的单元存放起来。并在存储器中或出存放中间
结果和最终结果的单元。
第二步:启动计算机从第一条指令开始执行程序。
第三步:将最终结果直接由运算器或存储器经输出设备输出。
第四步:停机。
8086微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元EU和总线接口单元BIU。
1、 执行单元EU包括:4个通用寄存器(AX,BX,CX,DX,每个都是16位,又可拆位2个8位)
4个从专用寄存器(BP,SP,SI,DI)
标志寄存器FLAG(6个状态标志和3个控制标志)
算术逻辑单元ALU
EU功能:从BIU取指令并执行指令;计算偏移量。
2、 总线接口单元BIU包括:4个16位段寄存器(CS,DS,ES,SS)
16位指令指针寄存器IP
20位地址加法器
6字节(8088位4字节)的指令队列
BIU功能:形成20位物理地址;从存储器中取指令和数据并暂存到指令队列寄存器中。
3、执行部件EU和总线接口部件BIU的总体功能:提高了CUP的执行速度;降低对存储器的存取速度的要求。
CPU内部寄存器:
设置段寄存器原因:系统中,需要用20位物理地址访问1MB的存储空间,但是CPU的每个地
址寄存器都只是16位,因而采用分段存储结构,每个逻辑段的最长度为64KB。
8086MN/MX 引脚作用:选择工作模式。MN/MX=’1’为最小模式;MN/MX=’0’为最大模式。
段内偏移地址又称为有效地址EA。
存储单元地址(以字节为单元)分为逻辑地址和物理地址。
逻辑地址=段基址(16):偏移地址(16)=CS:IP
DS×10H+SI/DI/BX
物理地址PA=段基址×10H+偏移地址EA=
SS×10H+SP/BP
CS×10H+IP
I/O端口地址:I/O空间不分段。
8086用16条AB,I/O空间为64KB。
8088用10条AB,I/O端口为1024个字节端口。
采用独立编制方式,采用IN,OUT指令。
指令寻址方式:
1、隐含寻址
2、立即寻址:MOV BL,50H ;将8位立即数50H传送到寄存器BL中。
MOV AX,2000H ;将16位立即数2000H传送到累加器AX中。
3、寄存器寻址:MOV BX,CX ;将CX寄存器中的内容复制到BX中。
MOV DS,AX ;将AX中的内容复制到DS段寄存器中。
4、存储器寻址:
直接寻址:MOV AX,DS:[2000H] 或MOV AX,[2000H];将存储器中逻辑地址DS:2000H字节单元的内
(求出的物理地址所对应的单元内容)传送到AX。
寄存器间接寻址:MOV AX,[BX]或[BP]或[SI]或[DI];[ ]内存放的是AX所需数据的有效地址。所以是先求物
理地址,再将它所对应的单元内容传送到AX。
寄存器相对寻址 :MOV AX,[BX+5]或MOV AX,5[BX];先求物理地址,再将它所对应的单元内容传送到AX。
MOV AX,DATA[BX]或MOV AX,[BX+DATA];
基址变址寻址:MOV AX,[BX/BP][SI/DI]或MOV AX,[BX/BP+SI/DI];同上
相对基址变址寻址:MOV AX,1234H [BX+SI]或MOV AX,[BX+SI+1234H];同上
MOV AX,DATE
[BX+SI]或MOV AX,[BX+SI+DATE];同上
指令系统:
3.3.1 数据传送类指令:
1、通用传送指令
(1)一般传送指令――MOV
(2)数据交换指令――XCHG
指令格式:XCHG
REG/M,REG
例:实现存储单元MEM1和MEM2之间内容交换的几种方案。
(3)入栈、出栈指令――PUSH、POP
PUSH(入栈)指令:将需要暂存的信息压入堆栈。
指令格式:PUSH
例句:PUSH
② POP(出栈)指令:将信息从堆栈中弹出恢复到原处。
指令格式:POP
PUSH CS指令是合法的,但POP CS是非法的。
③ 堆栈操作的特点:先进后出或者后进先出
④ 堆栈操作过程,改堆栈指针SP。
入栈,SP减2,使SP始终指向栈顶。例句:PUSH
AX;SP←SP-2,SP←AL,SP+1←AH
出栈,SP加2,使SP始终指向栈顶。例句:POP
BX;SP←SP+2,SP←BL,SP+1←BH
(4)查表转换指令――XLAT
指令格式:XLAT
表格在DS段
表名无实际意义,可缺省
ES:TAB;表格在ES段
2、输入、输出指令――IN、OUT
(1)指令――IN
指令格式:IN
累加器,端口地址
AC,PORT;
AL,20H;从20H端口输入一个字节至AL
AX,20H;从20H和21H端口输入一个字至AX
(2)输出指令――OUT
指令格式:OUT 端口地址,累加器
20H,AL;将AL中一字节输出到端口
20H,AX;将AX中一个字输出到端口
3、目的地址传送指令――LEA
LEA――将16位有效地址装入通用寄存器。
指令格式:LEA
Reg,Mem16;
Reg通用寄存器,Mem存储器操作数
例句: LEA
SP,[0500H];
BX,[BX+SI+06H];BX←BX+SI+06H
BX,AREA;
AREA是变量名
3.3.2 算术运算类指令
8位二进制:有符号-128~+127;无符号0~255
16位二进制:有符号-32768~+32767;无符号0~65535
有进位:CF=1。有溢出:OF=1
1、加法指令
(1)不带进位加法指令――ADD
指令格式:ADD
mem/reg1,data
mem/reg ,mem/reg2
举例: MOV CL,0E5H;CL=0E5H
ADD CL,0A4H;CL=0E5H+0A4H=89H
(2)带进位加指令――ADC
指令格式:ADC mem/reg,data
ADC mem/reg1,mem/reg2
例句: ADC AL,78H ;
AL←AL+78H+CF
ADC AX,CX ;
AX←AX+CX+CF
ADC BX,WORD PTR[DI] ;BX←BX+[DI+1][DI]+CF
(3)加1指令――INC
程序段如下:
MOV CX,4;
设置循环次数为4
MOV SI,0;
将SI的初值设置为0
将进位标志CF清零
LOP:MOV AL,BUF2[SI];
取BUF2存储区0号单元内容到AL
ADC BUF1[SI],AL ;
SI←SI+1 修改操作数地址
CX←CX-1 修改循环次数
若(CX)≠0,则转LOP,程序将再执行一次
2、减法指令
(1)不带借位减法指令――SUB (该指令影响标志位)
指令格式: SUB
DST,SRC;
MEM/REG, DATA
MEM/REG1, REG2
指令功能: DST ←DST―SRC微型计算机原理与接口技术第3章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
微型计算机原理与接口技术第3章
上传于||暂无简介
大小:611.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 ea pa什么意思 的文章

 

随机推荐