收藏 分享(赏)

桂林电子科技大学 微机原理课件D2.4.ppt

上传人:dreamzhangning 文档编号:3336917 上传时间:2018-10-15 格式:PPT 页数:26 大小:319.50KB
下载 相关 举报
桂林电子科技大学 微机原理课件D2.4.ppt_第1页
第1页 / 共26页
桂林电子科技大学 微机原理课件D2.4.ppt_第2页
第2页 / 共26页
桂林电子科技大学 微机原理课件D2.4.ppt_第3页
第3页 / 共26页
桂林电子科技大学 微机原理课件D2.4.ppt_第4页
第4页 / 共26页
桂林电子科技大学 微机原理课件D2.4.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、MOV AX , SI ,在哪里?,寻找数据位置(地址),在哪里?,做什么,目的操作数,源操作数,2.4 8086寻址方式,寻找操作数存放地址的方式称为寻址方式,8086的寻址方式分为两类: 数据寻址方式 转移地址寻址方式,本节,8086寻址方式,2.4.1 立即寻址,2.4.2 寄存器寻址,2.4.3 存储器寻址,2.4.3.1 直接寻址,2.4.3.2 寄存器间接寻址,2.4.3.3 带位移的基址寻址,2.4.3.4 带位移的变址寻址,2.4.3.5 基址变址寻址,2.4.3.6 带位移的基址变址寻址,该寻址方式中,指令直接给出8/16位的操作数(立即数)。操作数紧跟在操作码之后,作为指令

2、的操作数字段存放在指令代码中。如果是16位立即数,那么低位字节数存放在低地址单元中,高位字节数存放在高地址单元中。,2.4.1 立即寻址,例2.2 MOV AX,3578H;AX 3578H指令存放在代码段中,图中OP表示该指令的操作码部分。,操作数在寄存器中,指令给出存放操作数的寄存器号(寄存器名称)即可。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP和CS、DS、SS、ES等;对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。该寻址方式由于操作数在寄存器中,不需访问存储器,故可得到较高的运算速度。,2.4.2 寄存器寻址,例2.3 M

3、OV AX , BX若指令执行前,AX=3064H,BX=1234H。,3064H,1234H,AX,BX,1234H,问题: (1) 如果指令为MOV AL , BL呢?,则指令执行后,AX=1234H,BX=1234H。,(2) 如果指令为 MOV AX , 3456H,操作数的寻址方式各是什么?,存储器寻址的操作数在某个/某几个存储单元中。存储器单元的逻辑地址由两部分组成:段地址:偏移地址。段地址通常由DS提供。如果通过基址指针BP寻址,则段址由SS提供。,2.4.3 存储器寻址,BX SI 8位 EA= + + 位移量BP DI 16位,以上3个分量的不同组合,可以构成6种不同的有效地

4、址形成方式,即6种寻址方式。,偏移地址(有效地址、EA)由下面3个地址分量计算得到:,EA=基址+变址+位移量,直接寻址在直接寻址方式中,操作数的有效地址由指令直接给出。 EA=位移量在指令机器码中,16位有效地址存放在代码段指令操作码后的操作数字段中。,例如:设DS=1241H, AX=7390H ,而指令如下: MOV AX,3000H,代码段,数据段,CS,15410H,15411H,AX,45H,48H,直接寻址,寄存器间接寻址操作数的有效地址由基址寄存器BX、BP或变址寄存器SI、DI提供。,BXBPEA=SIDI,例如:设DS=2000H, AX=8040H ,BX=1000H M

5、OV AX,BX,数据段,DS,21000H,21001H,AX,50H,A0H,BX,10H 00H,带位移的基址寻址操作数的有效地址由基址寄存器的值与位移量相加形成,即,BX EA= + 位移量BP,12H,例如:设SS=3000H, BP=2000H MOV AX, BP+4000H或 MOV AX,4000HBP ;,代码段,数据段,CS,36000H,36001H,AX,34H,SS,BP,带位移的变址寻址 操作数的有效地址由变址寄存器的值与位移量相加形成,即 EA=变址+位移量,例2.8 MOV AL,COUNTSI或 MOV AL,SI+COUNT其中位移量COUNT为符号地址,

6、可由伪指令来定义,(详见第3章伪指令)。其功能是:将数据段中EA=(SI+COUNT的16位偏移量)的内存单元的8位操作数送给AL:即 AL (SI+COUNT),基址变址寻址操作数的有效地址是基址寄存器的值与变址寄存器的值相加形成,即:EA=基址+变址,12H,例如:设DS=3000H, BX=6780H, DI=0041H MOV AX,BXDI或MOV AX, BXDI ;,数据段,367C1H,367C2H,AX,34H,DS,BX,DI,带位移的基址变址寻址操作数的有效地址是一个基址寄存器的内容,一个变址寄存器的内容与位移量之和,即:EA=基址+变址+位移量,56H,例如:设DS=3

7、000H, BX=2000H, SI=1000H, MASK=0250H MOV AX, BXSIMASK或MOV AX,MASKBX+SI或MOV AX, MASKBXSI,数据段,33250H,33251H,AX,78H,DS,BX,SI,汇编语言源程序:data segmentdata endsstack segmentstack endsextra segmentextra endscode segmentcode ends,逻辑空间,物理空间,data segment ; 数据段string db hello, $ ; 字符串 data ends code segment ; 代码段

8、assume cs:code ,ds:data ; 段分配start: mov ax, datamov ds, ax ; 段寄存器初始化lea dx, string ; 将字符串string的首地址送dx寄存器mov ah, 09h ; 将显示字符串DOS功能号送ah寄存器int 21h ; DOS系统功能调用显示字符串mov ah, 4ch ; 程序代码结束,返回DOS系统int 21h code ends end start ; 汇编程序结束,1241:0000 48 45 4C 4C 4F 1241:0010 ,data segmentstring db hello data ends,

9、逻辑地址,存储单元内容,汇编程序数据段,内存实际数据段,;*源程序代码段* code segment 1243:0000 B84112 mov ax,1241 1243:0003 8ED8 mov ds, ax 1243:0005 8D16000 lea dx, 0000 1243:0009 B409 mov ah,09 1243:000B CD21 int 21 1243:000D B44C mov ah,4C 1243:000F CD21 int 21code ends,机器代码,指 令,逻辑地址,内存实际代码段,一条指令的机器码通常包含操作码(OP)和操作数两部分。指令的机器码格式如下:,操作码(OP)表示指令执行什么操作(必有) 操作数(OPRD)表示参加操作的数或数的存放地址,例如,MOV AL,SI ;源操作数 SOPD(src)目的操作数 DOPD(dst)操作码 (OP),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报