微机原理之命令行讲述

上传人:最**** 文档编号:118355268 上传时间:2019-12-14 格式:PPTX 页数:56 大小:212.91KB
返回 下载 相关 举报
微机原理之命令行讲述_第1页
第1页 / 共56页
微机原理之命令行讲述_第2页
第2页 / 共56页
微机原理之命令行讲述_第3页
第3页 / 共56页
微机原理之命令行讲述_第4页
第4页 / 共56页
微机原理之命令行讲述_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《微机原理之命令行讲述》由会员分享,可在线阅读,更多相关《微机原理之命令行讲述(56页珍藏版)》请在金锄头文库上搜索。

1、 第三章 8086指令系统及汇编语言 8086微处理器的各种寻址方式 8086指令系统 8086汇编语言程序基本格式 8086汇编语言程序设计方法 1010 0000 0001 0111 0000 0100 0000 1010 1010 0010 0001 1000 10H 11H 12H 13H 14H 15H 16H MOV AL, (n) n ADD AL, OAH 0AH MOV (n), AL n 存储器地址号汇编语言 二进制机器指令 3.1 8086指令系统概述 指令是计算机执行某种操作的命令。从计算机组 成的层次结构来说,计算机的指令有微指令、机 器指令和宏指令。 机器指令简称指

2、令,完成某一种操作 微指令-执行某个最基本动作的控制命令,解释执行 机器指令 宏指令由若干条机器指令组成的软件指令,完成 某一特定功能。 指令系统是计算机所有指令的集合,表征一台计 算机的重要因素。它的格式和功能不仅直接影响 计算机的硬件结构,也直接影响到系统软件,影 响到机器的适用范围。 一、指令格式 计算机的指令由操作码和操作数两部分组成 操作码字段 表示指令的功能或操作的性质做什么,助记符表示 操作数字段 指令操作的对象或对象的位置对谁做,操作数 操作的对象怎么寻找和确定寻址方式 操作码 指令的操作码表示该指令应进行什么性质的操作。组成 操作码字段的位数一般取决于计算机指令系统的规模 固

3、定长度操作码:便于译码,扩展性差 可变长度操作码:能缩短指令的平均长度 操作数(地址码) 操作数字段一般有一个、两个或三个,多个操作数之间 用“,”分隔。 源操作数指令执行前后值不变 目的操作数指令执行后值改变 指令种类 零地址指令:指令的指令字中只有操作码,没有地址码 一地址指令:指令中只给出一个操作数地址A,另一个操作数 地址和目的操作数的地址均隐含(指定累加器AC) (AC) OP(A)-AC 二地址指令:指令中给出两个地址码字段,分别指明参与操 作的两个数在内存中或运算器通用寄存器的地址,其中地址 A1兼做存放操作结果的地址 (A1) OP(A2)-A1 三地址指令:指令中有两个源操作

4、数地址,A1,A2和一个目标 操作数地址A3 (A1) OP (A2)-A3 根据操作数存放的位置,操作数有三种: (1)立即数指令的操作数字段为操作数本身(数值 ) (2)寄存器操作数操作数包含在CPU的一个内部寄 存器中 (3)内存操作数操作数在内存单元,操作数字段包 含内存单元地址。 可做目的操作数:除立即数外的寄存器、内存操作数 可做源操作数:立即数、寄存器、内存操作数 8086中,任何内存地址由两部分组成: 段的基地址:单元所在段的基地址 段内偏移量:此单元与段基地址的距离 有效地址EA(Effective Address) 段内偏移量为适应各种数据结构的需要,可以有几部分 组成,所

5、以称为有效地址EA. 不同EA的求法就构成了不同的寻址方式。 二、机器字长与指令长度 机器字长 计算机能直接处理的二进制数的位数,它决定运算精度 指令字长指令的字节数 单字指令-指令字长度等于机器字长度的指令 半字长指令 指令长度等于半个机器字长度的指令 双字长指令指令字长度等于两个机器字长度 指令编码:等长和变长编码格式 3.2 8086指令寻址方式 指令系统设计了多种操作数的来源 寻找操作数的过程就是操作数的寻址 把寻找操作数的方式叫做操作数的寻址方式 寻址方式分两大类: 操作数的寻址方式与数据有关,8种 转移地址的寻址方式与程序转移有关,4种 操作数采取哪一种寻址方式 会影响处理器执行指

6、令的速度和效率 对程序设计也很重要 指令的组成 操作码:说明计算机要执行哪种操作,如传送、运算 等操作,它是指令中不可缺少的组成部分 操作数:是指令执行的参与者,即各种操作的对象 操作码操作数 例: MOV AX,CX ;将CX的内容送入AX中。 指令的助记符格式 操作数2,被称为源操作数src,它表示参与指令操 作的一个对象. 操作数1,被称为目的操作数dst,它不仅可以作为 指令操作的一个对象,还可以用来存放指令操作的结 果. 分号后的内容是对指令的解释 操作码 操作数1,操作数2 ;注释 操作数的来源 指 令 寄 存 器 内 存 I/O设备或端口 操作数 指令中的操作数直接存放在机器代码

7、中,紧跟在操作码之后( 操作数作为指令的一部分存放在操作码之后的主存单元中),这 种操作数被称为立即数imm。 可以是8位数值(00HFFH) 也可以是16位数值(0000HFFFFH) 立即数寻址方式常用来给寄存器赋值 MOV AX, 0102H;AX0102H MOV AL, 02H;AL02H 3.1.1 操作数的寻址方式 1、立即寻址 格式: 操作码 数字表达式 MOV AX, F58AH ; (字操作) F58AH称为立即 数 助记符 目的 源 (16位操作数) H表示 为十六进制数 dst src 完成的操作: AX F58AH MOV AH, F5H (字节操作) F5H称为立即

8、数(8位操作数 ) MOV AL, 8AH (字节操作) 8AH称为立即数 完成的操作: AH F5H , AL 8AH 立即寻址操作过程 3456H 3457H AL=8A 字寻址方式 存储器 CS段 8A F5 操作码 AL=8A AH=F5 存储器 CS段 8A F5 操作码 AH=F5 操作码 字节寻址方式 MOV AX,F58AH MOV AH,F5H MOV AL,8AH 指令对立即数格式的要求 8086/8088指令对立即数的格式有三种: 1)立即数可以是16进制的数 MOV AL,57H 2)立即数可以是10进制的数,但指令运行后CPU自动把 10进制数转换为16进制数,然后完

9、成给定功能的操作。 MOV AL,57 ;指令执行后将AL 39H 3)立即数可以是2进制的数 MOV AL,01010111B ;指令执行后将AL 57H 为十进制数时,数后不加H,2进制数时,数后加B,CPU以此来辨别 是那种类型的数据。 2、 直接寻址方式 直接寻址方式的有效地址在指令中直接给出,默认的段地址 在DS段寄存器,可使用段超越前缀改变段。 中括号包含有效地址,表达存储单元的内容 MOV AX, 2000H;AXDS:2000H MOV AX, ES: 2000H ;AXES:2000H MOV AX,BUFFER ; BUFFER:符号地址 指令格式: 操作码 寄存器(16位

10、) , 地址表达式 直接寻址方式的操作数的16位偏移地址(有直接地址值和 标号两种形式)直接包含在指令中,它与操作码一起存放在 代码段中的操作码之后。 段地址DS隐含,也可指定其它段,必须需在指令中指 明。 存储器物理地址地址为:DS:偏移地址 或 ES:偏移地 址。 例: MOV AX,ES:2000H (读数据,RD线为低 电平) 将ES:2000H单元内容送入AX。 例: MOV AX,LABLE 或 MOV AX, LABEL 将标号为LABLE(存放操作数单元的符 号地址) , 即DS:LABLE中的内容送入AX。 LABLE必须在段定义中指明。 例:MOV AX,(2000H);

11、字操作 MOV AL,(2000H); 字节操作 MOV AH,(2001H); 字节操作 此两条指令的功能与字操作指令的功能相同! 16位段内偏移地址直接包含在指令中。 直接寻址 存储器 DS段 8A F5 XX AL=8A AH=F5 存储器 CS段 操作码 代码段 数据段 00 20 DS:2000 DS:2001 字寻址方式 存储器 DS段 8A F5 XX AL=8A AH=F5 存储器 CS段 操作码 代码段 数据段 00 20 DS:2000 DS:2001 字节寻址方式 操作码 01 20 MOV AX,(2000H ) MOV AL,(2000H ) MOV AH,(2001

12、H ) 3、寄存器寻址方式 操作数存放在CPU的内部寄存器reg中 1)8 位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 2)16 位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 3)4个段寄存器seg: CS、DS、SS、ES 寄存器名表示其内容(操作数) MOV AX, BX;AXBX 格式: 操作码 寄存器,寄存器 MOV AX,BX ;AX BX MOV BX,AX ;BX AX MOV AL,BH ;AL BH MOV AH,AL ;AH AL MOV DS,AX ;DS AX MOV SI,AX ;SI AX 注意:目的和源寄存器的 位数必须相同

13、,不同 位数寄存器之间 不能传送数据处理 如: MOV BX,AH p如果要将数据送入段寄存器(CS、DS、ES、SS),必须先将这个 数送入一个非段寄存器,然后再送到段寄存器 段寄存器写入方法: MOV CS,3000H ; 错! MOV AX,3000H ; (该指令不影响RD和WR控制 线均为高电平) MOV CS,AX ;正确(但在使用中不允许 随便修改CS的内容!) MOV SS,1000H ;错! MOV DI,1000H MOV SS,DI ;正确 , (该指令不影响RD 和WR控制线均为高电平) 4、 寄存器间接寻址方式 MOV AX, BX;AXDS:BX MOV AX, E

14、S:BX;AXES:BX MOV AH,DS:BP MOV ES:DI,AL 格式:操作码 寄存器,(寄存器) 有效地址存放在基址寄存器BX、BP或变址寄存器SI、DI中; 对于BX、SI、DI,默认的段地址在DS段寄存器,可使用段 超越前缀改变; 对于BP,默认的段地址在SS段寄存器,可使用段超越前缀 改变 注意:寄存器间接寻址要用方括号或圆号括起来,以便与寄存器操作数相区别。 例: MOV AX,BX;将由BX决定的存储单元的内 容送到AX寄存器,要求对BX事前定义。 间接寻址 AX 0000 0001 0002 0003 BB AA TAB: AH AL AA BB 数据段 0001H BX= (BX) (SI) (DI) (BP) 段寄存器为DS 段寄存器为SS 有效地址 = 操作数在存储器中,指令中寄存器内容作为操作 数所在单元的有效地址。 物理地址计算方法: 物理地址 = (DS)16 + (BX)或(SI)或(DI) 物理地址 = (SS) 16 + (BP) 例:已知:(DS)=2100H,(DI)=2000H 指令:MOV AX,DI;(AX) (DI) 物理地址=(DS)16 +(DI) =2100H 16 + 2000H =21000H+2000H =23000H 指令

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号