首页 > 自考指南 > 自考资讯  > 

微型计算机及接口技术

微型计算机及接口技术(图1)

8086寻址方式分2类:数据寻址、转移操作寻址操作数的4种类型:

1)立即操作数:数据作为指令的一部分

2)寄存器操作数:数据存放在cpu的寄存器中

3)存储器操作数:数据放在存储器中

4)端口操作数,数据放在端口寄存器中

数据寻址的4种类型:立即寻址、寄存器寻址、存储器寻址(直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址变址寻址)、I/O端口寻址


立即寻址:MOV AL,8 指令执行后,(AL)=8; MOV AX,1234 执行执行后 (AX)=1234;上述指令的源操作数式立即寻址方式。立即数可以是数值常量、字符常量、符号常量或者数值表达式

寄存器寻址:MOV AL,CL 指令执行后,(AL)= (CL);MOV DS,AX 指令执行后,(DS)=(AX);上述指令,源操作数和目的操作都是寄存器寻址。该类指令,其机器码字节最少,执行速度最快存储器寻址:指令中的操作数存放在存储器,指令中给出存放操作数的存储器单元的地址;或者操作数的地址不直接给出,给出操作数地址的计算方法

计算机执行程序时,根据指令给出的寻址方式,技术操作数的地址,然后从该地址去吃操作数进行指定的操作,这种操作数的地址称为有效地址EA,或偏移地址。

偏移地址的计算公式:EA=基址 变址 位移量

基址放在基址寄存器BX,BP;

变址放在变址寄存器SI、DI;

位移量指包含在指令中的8位或16位的无符号常数

操作数物理地址由有效地址与所在段的段基址组合形成,若访问的数据不在默认段,需使用段超越前缀指出所访问的段,方法即在段寄存器名加冒号,如ES:、SS:等

直接寻址示意图


1)直接寻址:默认的段是DS,物理地址=(DS)*10H EA

格式1:表达式中直接给出存储单元有效地址段数值形式。

MOV AX,[1234H] 指取出DS:[1234H]-->AL,DS:[12345H]-->AH

MOV BL,SS:[10H]指段超越,取出SS:[10H]字节单元内容-->AH

格式2:用变量名代表存储单元的有效地址。一个源程序中,不允许有重复定义的变量 名。源程序经过编译后,存储器的有效地址就赋给了变量名。

MOV AX,VAR 指的是取出数据段中 以VAR命名的单元的内容--->AX

2)寄存器间接寻址:存储器的操作数的有效地址放在一个基址寄存器(BX,BP)或变址寄存器(SI,DI)中,指令中出现的是寄存器编号,在通过计算公式找到有效地址

使用BX、SI和DI作为基址/变址寄存器,默认段DS:

物理地址=(DS)*10H (BX)/(SI)/(DI)

使用BP作为基址寄存器,默认段ss:

物理地址=(SS)*10H (BP)

MOV AX,[SI];访问DS段,从DS:[SI]取一个字-->AX

MOV BL,[BP];访问SS段,从SS:[BP]取一个字节-->BL

ADD AX,ES:[BX];访问ES段,从ES:[BX]取一个字与AX相加--->AX

上述,源操作数的寻址方式为寄存器间接寻址

3)基址寻址:以基址寄存器(BX,BP)的内容为基准地址,再加上指令中给出的一个8位或16位的地址位移量而得到存储器操作数的有效地址

使用BX作为段基址,默认段DS:

物理地址=(DS)*10H (BX)

使用BP作为段基址,默认段ss:

物理地址=(SS)*10H (BP)

MOV BL,10H[BP];访问SS段,从SS:[BP 10H]取一个字节-->BL

ADD AX,ES:[BX 200H];访问ES段,从ES:[BX 200H]取一个字与AX相加--->AX

MOV AX,[BX 10H];访问段DS,从DS:[BX 10H]取一个字-->AX

位移量可以是常数,也可以是变量。位移量为变量,则参与有效地址计算的是变量名代表的地址,而不是变量值。

MOV AX,VAR[BX];若变量名的有效地址为0200H,则访问DS段,从DS:[BX 0200H]取一个字-->AX

4)变址寻址:指令中给出一个位移量作为基准地址,再痛变址寄存器的内容相加作为存储器操作数的有效地址

变址寄存器只能是SI和DI,默认DS段:

物理地址=(DS)*10H (SI)/(DI)

MOV AX,[SI 120H];访问段DS,从DS:[SI 120H]取一个字--->AX

5)基址变址寻址:基址寻址和变址寻址的组合

两种格式:无位移量的基址变址寻址和有位移量的基址变址寻址

物理地址的计算:

以BX为基址寄存器无位移量:物理地址=(DS)*10H (BX) (SI)/(DI)

以BX为基址寄存器有位移量:物理地址=(DS)*10H (BX) (SI)/(DI) 位移量

以BP为基址寄存器无位移量:物理地址=(SS)*10H (BP) (SI)/(DI)

以BP为基址寄存器有位移量:物理地址=(SS)*10H (BP) (SI)/(DI) 位移量

I/O端口寻址:操作数在I/O端口中,有专门的I/O指令。

1)I/O端口直接寻址:将8位的端口地址直接放在指令码后的一字节,寻址范围00H~FFH

2)I/O端口间接寻址:由DX寄存器间接给出I/O端口地址,为2字节,最多可寻址2^16=64k个端口地址

微信号咨询

请添加微信号咨询:19071507959

在线报名

微型计算机及接口技术由自考帮手网自考资讯栏目发布,感谢您对自考帮手网的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“微型计算机及接口技术