版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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: Dat
3、a START: mov ax, Data mov ds, ax,mov cx, 10 mov ax, 0 mov si, offset a lop: add ax, si loop lop mov sum, ax Code ends END START,指令语句,伪指令语句,指令的组成,操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分 操作数是指令执行的参与者,即各种操作的对象 有些指令不需要操作数,通常的指令都有一个或两个操作数,3.1 指令系统及指令格式,指令的助记符格式,操作数2,称为源操作数 src,它表示参与指令操作的一个对象 操作数1,
4、称为目的操作数 dst,它不仅可以作为指令操作的一个对象,还可以用来存放指令操作的结果 分号后的内容是对指令的解释,操作码 操作数1,操作数2;注释,指令的操作码和操作数,每种指令的操作码: 用一个唯一的助记符表示(指令功能的英文缩写) 对应着机器指令的一个二进制编码 指令中的操作数: 可以是一个具体的数值 可以是存放数据的寄存器 或指明数据在主存位置的存储器地址,寻找操作数的过程就是操作数的寻址,传送指令MOV的格式,MOV dst,src;dstsrc 功能:将源操作数src传送至目的操作数dst 例: MOV AL,05H;AL05H MOV BX,AX;BXAX MOV AX,SI;A
5、XDS:SI MOV AX,BP+06H;AXSS:BP+06H MOV 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位名称,EAX EBX ECX EDX ESP EBP EDI ESI,8
6、位名称,16位名称,EIP EFLAGS,名称 累加器 基址变址 计数 数据 堆栈指针 基址指针 目的变址 源变址,指令指针 标志,代码 数据 附加 堆栈,32位,16位,注意: 286以下绿色区域不可用; FS、GS 无专用名称,3.2 寻址方式,立即数寻址方式 寄存器寻址方式 存储器寻址方式,直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式,1. 立即数寻址方式,指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中) 这种操作数被称为立即数 它可以是8位数值(00HFFH) 也可以是16位数值(
7、0000HFFFFH) 立即数寻址方式常用来给寄存器赋初值,立即数可以是8位或16位(16位的立即数是高位字节放在高地址,低位字节放在低地址) 。 应用场合: 立即数常用来给寄存器或内存单元赋初值,例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、DL 16位寄存器: AX、BX、
8、CX、DX、SI、DI、BP、SP 段寄存器seg:CS、DS、SS、ES,寄存器寻址指令,MOV AX , 1234H;AX1234H MOV BX , AX;BXAX,注意: SRC 和 DST的字长一致 MOV AH , BX CS不能用MOV指令改变 MOV CS , AX,寄存器寻址,关于存储器的寻址方式,指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中 8086设计了多种存储器寻址方式 1、直接寻址方式 2、寄存器间接寻址方式 3、寄存器相对寻址方式 4、基址变址寻址方式 5、相对基址变址寻址方式,3.直接寻址方式,有效
9、地址EA在指令中直接给出 默认的段地址在DS段寄存器,可使用段超越前缀改变 有效地址EA:操作数的偏移地址 物理地址PA = (DS) 16d + EA MOV AX , 2000H ;AXDS : 2000H MOV 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,指令,存储器,操作数,直接寻址方式,操
10、作数,间接寻址方式,A,指令,EA,EA,5.寄存器相对寻址方式,有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI 有效地址EABX/BP/SI/DI8/16位位移量 段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变,MOV AX,DI+06H;AXDS:DI+06H MOV AX,BP+06H;AXSS:BP+06H,寄存器相对寻址,6.基址变址寻址方式,有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成: 有效地址EABX/BPSI/DI 段地址对应BX寄存器默认是DS,对应BP寄存器
11、默认是SS;可用段超越前缀改变,MOV AX,BX+SI;AXDS:BX+SI MOV AX,BP+DI;AXSS:BP+DI MOV AX,DS: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,相对基址变址寻址,段寄存器的默认和超越,用符号表示位移量,在寄存器相对寻址或相对基址
12、变址寻址方式中,位移量可用符号表示: MOV AX,SI+COUNT ;COUNT是事先定义的变量或常量(就是数值) MOV AX,BX+SI+WNUM ;WNUM也是变量或常量,多种表达形式,同一寻址方式可以写成不同的形式: MOV AX , BXSI ;等同于 MOV AX , BX+SI MOV AX , COUNTSI ;等同于 MOV AX , SI+COUNT MOV AX , WNUMBXSI ;等同于 MOV AX , WNUMBX+SI ;等同于 MOV AX , BX+SI+WNUM,立即寻址、寄存器寻址,例1】下列程序执行后,(AX)=?(BX)=? MOV AX,123
13、4H MOV BX,5678H ADD AX,BX ; AX (AX)+(BX,执行:1234HAX ; 5678HBX ; (AX)+(BX)AX 执行后:(AX)=68ACH,(BX)=5678H,直接寻址,例3】 已知(DS)=2000H , (ES)=3000H , (32000H)字节=15H, (32001H)字节=24H。 执行指令 MOV AX , ES: 2000H 执行后(AX),若执行 MOV AL , ES :2000H 则 (AL)=15H,EA = 2000H PA = (ES)10H+EA= 32000H (AX) = 2415H,直接寻址,例3】已知:(AX)=
14、1212H , (DS)=3000H, BUF为数据段定义的变量,其偏移地址是2000H,(32000H)=45H ,(32001H)=67H. 执行指令:MOV AX ,BUF 执行后:(AX)=,等价:MOV AX ,BUF MOV AX ,2000H,EA = 2000H PA = (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 = 0030H PA = (SS)10H+EA = (SS)16 + (BP) = 20030H (AX) = 1234H,寄存器相对寻址,例4】已知: (AX)=0040H,(BX)=0030H, (DS)=2000H, (20036H)=6050H 执行指令:MOV Word ptr 6 BX ,AX 执行后: (BX)=? , (20036H)=,EA = (BX) + 6 = 0036H PA = (DS)10H+EA = (DS)16 + (BX) + 6 = 20036H (200
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运城医疗考试题库及答案
- 2026五年级数学下册 折线统计图的认识
- 会计凭证传递交接制度
- 企业消防包保制度
- 代账公司风险控制制度
- 市政工作制定奖惩制度
- 机械设备销售奖惩制度
- 营销团队晋升奖惩制度
- 果树认养销售奖惩制度
- 土巴兔合作公司奖惩制度
- 《UML系统分析与设计教程(第2版)》全套教学课件
- 《多元统计分析-基于R(第3版)》课件全套 费宇 第1-13章-多元统计分析与R简介-多维标度分析
- 2023年8月广西桂林市七星区专职化社区工作者招聘5人笔试历年典型考题及考点剖析附答案带详解
- TD/T 1061-2021 自然资源价格评估通则(正式版)
- 2024年一年级综合课教案
- 藏香猪的特性(下)
- 餐饮连锁公司合伙人入股协议
- 工地停工复工计划书
- MOOC 知识创新与学术规范-南京大学 中国大学慕课答案
- 《煤矿防灭火细则》培训课件2024
- 诚信315消费者权益日
评论
0/150
提交评论