第二章 指令系统(1).
MOV AX, 0102H
2018/10/11
;AX←0102H
10
立即数寻址方式
2018/10/11
11
例:
• 将立即数0102H送至AX寄存器 • 汇编指令: MOV AX,0102H ; • 指令功能: AX←0102H ; • 指令代码:B8 02 01
2018/10/11
12
代码段
2018/10/11
2018/10/11
17
3
存储器寻址方式
• 操作数在主存储器中,用主存地址表示 • 程序设计时,8088采用逻辑地址表示主存地址
– 段地址在默认的或用段超越前缀指定的段寄存器中 – 指令中只需给出操作数的偏移地址(有效地址EA)
8086设计了多种存储器寻址方式
1、直接寻址方式 2、寄存器间接寻址方式 3、基址寻址方式 4、变址寻址方式 5、基址变址寻址方式
2018/10/11 4
二、指令的助记符格式
操作码 操作数1,操作数2 ;注释
• 操作数2:常被称为源操作数src,它表示参与指令 操作的一个对象 • 操作数1:常被称为目的操作数dest,它不仅可以 作为指令操作的一个对象,还可以用来存放指令 操作的结果; dest OP src dest • 分号后的内容是对指令的解释
2018/10/11
6
四、程序
程序是为解决某一问题而编写在一起的指令序列。
机器语言程序:由机器指令书写的程序 汇编语言程序:由符号指令书写的程序 高级语言程序:由高级语言书写的程序,高级语 言的基础是语句,而不是处理器的指令系统 汇编语言程序和高级语言程序必须先翻译成机 器语言程序才能执行。这一翻译过程对汇编语 言程序叫做汇编(assemble),对高级语言程 序叫做编译(compilation)或解释 (interpretation)
2018/10/11 9
1
立即数寻址方式
• 指令中的操作数直接存放在机器代码中,紧跟在 操作码之后(操作数作为指令的一部分存放在操 作码之后的主存单元中) • 这种操作数被称为立即数imm – 可以是8位数值i8(00H~FFH) – 也可以是16位数值i16(0000H~FFFFH) • 立即数寻址方式常用来给寄存器和存储单元赋值, 多以常量形式出现
2018/10/11 18
1)直接寻址方式
• 直接寻址方式的有效地址在指令中直接给出 • 默认的段地址在DS段寄存器,可使用段超越前 缀改变 • 用中括号包含有效地址,表达存储单元的内容
13
说明:
• 立即数寻址方式常用来给寄存器和存储单元赋初值。
• 在汇编语言中,立即数是以常量形式出现的。常量可以是:
(1)二进制数(后缀字母B或b) MOV BL,01000110B (2)十进制数(不用后缀字母,或者用D或d)MOV AL,5 (3)16进制数(后缀字母H或h,以A-F开头则要加 个0) MOV AH,B8H 错 MOV AH,0B8H 正确 (4)字符串(用单或双引号括起的字符,表示对应 的ASCII码值,例如:‘A’=41H) MOV AL, ’A’ (5)标识符表示的符号常量、数值表达式 MOV AX, ’AB’ equ 314 • (符号常量通过汇编伪指令定义) PI
• 寄存器名表示其内容(操作数)
MOV AX, BX; AX←BX
2018/10/11 15
寄存器寻址方式
2018/10/11
Hale Waihona Puke 16说明:• 寄存器寻址方式的操作数存放于CPU的 某个内部寄存器中,不需要访问存储器, 因而执行速度较快,是经常使用的方法。 在双操作数的指令中,操作数之一必是 寄存器寻址得到的。
注意十进制数和BCD数的区别
2018/10/11
MOV AX,
PI+213
14
2
寄存器寻址方式
– 8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL – 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP – 4个段寄存器seg: CS、DS、SS、ES
• 操作数存放在CPU的内部寄存器reg中:
南京理工大学动力学院
2009年
2018/10/11
1
第二章 8086/8088 指令系统
2.1 概述 2.2 寻址方式 2.3 数据传送指令 2.4 算术运算指令 2.5 逻辑运算指令 2.6 串操作指令 2.7 程序控制指令
2018/10/11 2
•指令是微处理器执行某种操作的命令。 •微处理器全部指令的集合称为指令系统(指令集) •指令有两种书写格式:机器指令和符号指令。 机器指令—指令的二进制数描述 硬件只能识别机器指令,用机器指令书写的程序可 直接运行 符号指令—用规定的助记符和规定的书写格式书 写的指令 与机器指令一一对应,需要翻译成机器指令才能运 行 10110000 00000001 MOV AL, 1
2018/10/11
8
8086/8088CPU的寻址方式 (1) 操作数可以存放于操作码之后 MOV AL,3FH —立即数寻址方式 (指令中直接给出)
(2) 操作数可以存放于CPU内部的寄存器中 —寄存器寻址方式 MOV AX,BX (3) 操作数可以存放于存储器中 —存储器寻址方式 MOV AL,[1000H]
2018/10/11 7
2.2 操作数的寻址方式
• 指令系统设计了多种操作数的来源
• 寻找操作数的过程就是操作数的寻址
• 把寻找操作数的方式叫做(操作数)寻址方式 • 理解操作数的寻址方式是理解指令功能的前提 • 操作数采取哪一种寻址方式
–一方面,会影响处理器执行指令的速度和效率 –另一方面,对程序设计也很重要
2018/10/11
3
一、指令的组成 操作码 操作数
指令由操作码和操作数两部分组成 • 操作码说明计算机要执行哪种操作,如传送、运算、 移位、跳转等操作,它是指令中不可缺少的组成部 分
操作数是指令执行的参与者,即各种操作的对象
有些指令不需要操作数,通常的指令都有一个或两 个操作数,也有个别指令有3个甚至4个操作数
汇编语句格式
• 有些指令中隐含了第一操作数,如:MUL CL
2018/10/11 5
三、指令的操作码和操作数
• 每种指令的操作码:
– 用一个助记符表示(指令功能的英文缩写) – 对应着机器指令的一个或多个二进制编码
• 指令中的操作数:
– 可以是一个具体的数值 – 可以是存放数据的寄存器 – 或指明数据在主存位臵的存储器地址