微机原理寻址方式ppt课件.ppt

上传人:牧羊曲112 文档编号:1973690 上传时间:2022-12-29 格式:PPT 页数:42 大小:1,012KB
返回 下载 相关 举报
微机原理寻址方式ppt课件.ppt_第1页
第1页 / 共42页
微机原理寻址方式ppt课件.ppt_第2页
第2页 / 共42页
微机原理寻址方式ppt课件.ppt_第3页
第3页 / 共42页
微机原理寻址方式ppt课件.ppt_第4页
第4页 / 共42页
微机原理寻址方式ppt课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《微机原理寻址方式ppt课件.ppt》由会员分享,可在线阅读,更多相关《微机原理寻址方式ppt课件.ppt(42页珍藏版)》请在三一办公上搜索。

1、第3章 8086的指令系统,学习目标,掌握8086指令格式和寻址方式掌握8086各类指令的使用及注意事项学会分析各种基本指令的使用初步掌握使用汇编指令书写程序段的基本方法,3.0基础知识: 什么是汇编语言,汇编语言是一种面向机器的低级程序设计语言汇编语言以助记符形式表示每一条计算机指令助记符是便于记忆、并能描述指令功能和操作数的符号助记符一般就是表明指令功能的英语单词或缩写用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序(.ASM)汇编语言的主要特点:汇编语言程序与处理器指令系统密切相关程序员可直接、有效地控制系统硬件形成的可执行文件运行速度快、占用主存容量少,基础知识:汇编语言开发步

2、骤,汇编语言程序与C语言程序的对照,假设:定义一个有10个元素数组a,并求所有元素的总和。,则C语言程序如下: # include main( ) int a10; int i , sum=0; for ( i=0; i10; i+ ) sum=sum+ai; printf(sum=%d, sum); ,汇编语言程序与C语言程序的对照,假设:定义一个有10个元素数组a,并求所有元素的总和。,而汇编语言程序如下: Data segment a dw 10 dup(?) sum dw 0 Data ends Code segment assume cs: Code, ds: Data START:

3、 mov ax, Data mov ds, ax,mov cx, 10 mov ax, 0 mov si, offset a lop: add ax, si loop lop mov sum, axCode ends END START,指令语句,伪指令语句,指令的组成:,操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分操作数是指令执行的参与者,即各种操作的对象有些指令不需要操作数,通常的指令都有一个或两个操作数,3.1 指令系统及指令格式,指令的助记符格式,操作数2,称为源操作数 src,它表示参与指令操作的一个对象操作数1,称为目的操作数 dst

4、,它不仅可以作为指令操作的一个对象,还可以用来存放指令操作的结果分号后的内容是对指令的解释,操作码 操作数1,操作数2;注释,指令的操作码和操作数,每种指令的操作码:用一个唯一的助记符表示(指令功能的英文缩写)对应着机器指令的一个二进制编码指令中的操作数:可以是一个具体的数值可以是存放数据的寄存器或指明数据在主存位置的存储器地址,寻找操作数的过程就是操作数的寻址,传送指令MOV的格式,MOV dst,src;dstsrc 功能:将源操作数src传送至目的操作数dst例:MOV AL,05H;AL05HMOV BX,AX;BXAXMOV AX,SI;AXDS:SIMOV AX,BP+06H;AX

5、SS:BP+06HMOV AX,BX+SI ;AXDS:BX+SI,传送指令MOV的功能,源操作数 src,目的操作数 dst,30H,30H,被传送的数据,8086的内部结构,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外 部 总 线,执行部分控制电路,ALU,标志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用寄存器,地址加法器,指令队列,执行部件 (EU),总线接口部件 (BIU),16位,20位,16位,8位,32位名称,EAXEBXECXEDXESPEBPEDIESI,8位名称,16位名称,EIPEFLAGS,名称累加器基址变址计

6、数数据堆栈指针基址指针目的变址源变址,指令指针标志,代码数据附加堆栈,32位,16位,注意: 286以下绿色区域不可用; FS、GS 无专用名称;,3.2 寻址方式,立即数寻址方式寄存器寻址方式存储器寻址方式,直接寻址方式寄存器间接寻址方式寄存器相对寻址方式基址变址寻址方式相对基址变址寻址方式,1. 立即数寻址方式,指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)这种操作数被称为立即数它可以是8位数值(00HFFH)也可以是16位数值(0000HFFFFH)立即数寻址方式常用来给寄存器赋初值,立即数可以是8位或16位(16位的立即数是高

7、位字节放在高地址,低位字节放在低地址) 。应用场合: 立即数常用来给寄存器或内存单元赋初值。,例1 MOV AX , 2056H 结果 ( AH ) = 20H ( AL ) = 56H 例2 MOV AL , 78 H 结果 ( AL ) = 78H,注意:只能用于源操作数字段,不能用于目的操作数字段。,低地址,高地址,立即数寻址,2. 寄存器寻址方式,操作数存放在CPU的内部寄存器reg中,可以是:8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器:AX、BX、CX、DX、SI、DI、BP、SP段寄存器seg:CS、DS、SS、ES,寄存器寻址指令,MOV AX , 1

8、234H;AX1234HMOV BX , AX;BXAX,注意:SRC 和 DST的字长一致 MOV AH , BXCS不能用MOV指令改变 MOV CS , AX,寄存器寻址,关于存储器的寻址方式,指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中8086设计了多种存储器寻址方式1、直接寻址方式2、寄存器间接寻址方式3、寄存器相对寻址方式4、基址变址寻址方式5、相对基址变址寻址方式,3.直接寻址方式,有效地址EA在指令中直接给出默认的段地址在DS段寄存器,可使用段超越前缀改变有效地址EA:操作数的偏移地址 物理地址PA = (DS)

9、 16d + EAMOV AX , 2000H ;AXDS : 2000HMOV AX , ES : 2000H ;AXES : 2000H,直接寻址,4.寄存器间接寻址方式,有效地址存放在基址寄存器BX、BP或变址寄存器SI、DI中段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变 MOV AX , SI;AXDS:SI MOV AX, BP;AXSS:BP,寄存器间接寻址,A,指令,存储器,操作数,直接寻址方式:,操作数,间接寻址方式:,A,指令,EA,EA:,5.寄存器相对寻址方式,有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX

10、、BP或SI、DI有效地址EABX/BP/SI/DI8/16位位移量段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变,MOV AX,DI+06H;AXDS:DI+06HMOV AX,BP+06H;AXSS:BP+06H,寄存器相对寻址,6.基址变址寻址方式,有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:有效地址EABX/BPSI/DI段地址对应BX寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变,MOV AX,BX+SI;AXDS:BX+SIMOV AX,BP+DI;AXSS:BP+DIMOV AX,DS:

11、BP+DI;AXDS:BP+DI,基址变址寻址,7.相对基址变址寻址方式,有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:有效地址EABX/BPSI/DI8/16位位移量段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变,MOV AX,BX+SI+06H ;AXDS:BX+SI+06H,相对基址变址寻址,段寄存器的默认和超越,用符号表示位移量,在寄存器相对寻址或相对基址变址寻址方式中,位移量可用符号表示:MOV AX,SI+COUNT;COUNT是事先定义的变量或常量(就是数值)MOV AX,BX+SI+WNUM;WN

12、UM也是变量或常量,多种表达形式,同一寻址方式可以写成不同的形式:MOV AX , BXSI;等同于 MOV AX , BX+SIMOV AX , COUNTSI;等同于 MOV AX , SI+COUNTMOV AX , WNUMBXSI;等同于 MOV AX , WNUMBX+SI;等同于 MOV AX , BX+SI+WNUM,立即寻址、寄存器寻址,【例1】下列程序执行后,(AX)=?(BX)=?MOV AX,1234HMOV BX,5678HADD AX,BX ; AX (AX)+(BX),执行:1234HAX ; 5678HBX ; (AX)+(BX)AX执行后:(AX)=68ACH

13、,(BX)=5678H,直接寻址,【例3】 已知(DS)=2000H , (ES)=3000H , (32000H)字节=15H, (32001H)字节=24H。执行指令 MOV AX , ES: 2000H 执行后(AX)?,若执行 MOV AL , ES :2000H 则 (AL)=15H,EA = 2000HPA = (ES)10H+EA= 32000H(AX) = 2415H,直接寻址,【例3】已知:(AX)=1212H , (DS)=3000H, BUF为数据段定义的变量,其偏移地址是2000H,(32000H)=45H ,(32001H)=67H.执行指令:MOV AX ,BUF执

14、行后:(AX)=?,等价:MOV AX ,BUF MOV AX ,2000H,EA = 2000HPA = (DS)10H+EA= 32000H(AX) = 6745H,寄存器间接寻址,【例3】已知:(AX)=0,(BP)=30H,(DS)=4000H, (SS)=2000H,(20030H)=34H ,(20031H)=12H执行指令:MOV AX ,Word ptr BP 执行后:(AX)=? (BP)=? (SS)=? (20030H)=?,EA = BP = 0030HPA = (SS)10H+EA = (SS)16 + (BP) = 20030H(AX) = 1234H,寄存器相对寻

15、址,【例4】已知: (AX)=0040H,(BX)=0030H, (DS)=2000H, (20036H)=6050H 执行指令:MOV Word ptr 6 BX ,AX执行后: (BX)=? , (20036H)=?,EA = (BX) + 6 = 0036HPA = (DS)10H+EA = (DS)16 + (BX) + 6 = 20036H(20036H) = (AX) = 0040H,基址加变址寻址,【例5】设执行前 (DS)=2100H,(BX)=158H,(DI)=10A5H ,(221FDH)=1234H. 执行:MOV AX,BX+DI MOV AX,BXDI,EA = (BX) + (DI) = 158H+10A5H = 11FDHPA = (DS) 10H +EA = (DS) 10H + (BX) + (DI) = 21000H + 11FDH = 221FDH执行后:(AX) =1234H,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号