第4章 指令系统
计算机组成原理第4章指令系统课件

4.2 指令的格式
4.2.1 指令的编码格式
操作码OC
AC1
AC2
(1)把保存操作前原来操作数的地址称为源点地址(SS), 把保存指令执行结果的地址称为终点地址或目的地址(DD)。
(2)将源点与终点操作数进行操作码规定的操作后,将 结果存入终点地址。通常二地址指令又称为双操作数指令。
ADD R0,R1表示将R0寄存器的内容和R1寄存器的内容相加以
5 异或XOR
XOR指令对两个操作数进 行按位异或运算。
4.4 指令的种类
4.4.4 移位、循环类指令
CF
位移指令SAL/SHL操作示意图
CF
SAR操作示意图
CF 0
SHR操作示意图
4.4 指令的种类
4.4.4 移位、循环类指令
不带进位标志的循环左移指令ROL MSB 操作数 LSB
CF
不带进位标志的循环右移指令ROR MSB 操作数 LSB
例如:在IBM-PC指令系统中
MOV
AX,05FFH
4.3 寻址方式
4.3.2 常用的寻址方式
2.直接寻址方式
(1)含义: 是指地址字段直接指明操作数在存储器内的位置的寻址 方法。即形式地址等于有效地址。 (2)优缺点: A、优点:简单,不需要进行加法运算。 B、缺点:地址空间指令地址字段长度的限制。
4.2 指令的格式
4.2.3 指令助记符
通常采用一些符号来代表二进制数据,这些符号即指 令助记符。
指令助记符 ADD SUB MUL DIV
助记符示例
含义
指令助记符
相加
AND
相减
OR
相乘
LOAD
相除
STORE
第四章 指令系统[一]
![第四章 指令系统[一]](https://img.taocdn.com/s3/m/0cc630d349649b6648d74742.png)
译码开始
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
…
15条三地址指令 15条三地址指令
…
14条二地址指令 14条二地址指令
…
31条一地址指令 31条一地址指令
…
16条零地址指令 16条零地址指令
图4.1 指令译码逻辑图
•
注意事项: 注意事项: • 短操作码不能与长操作码 的前面代码部分相同; 的前面代码部分相同; • 各指令的操作码一定不能重复,而且各类指令的 各指令的操作码一定不能重复, 格式安排应统一规整. 格式安排应统一规整.
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 1(P151.题2):假设某计算机指令长度为20位 假设某计算机指令长度为20 单操作数、无操作数三类指令形式, 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示, 规定用6位表示,问: 若操作码字段固定为8 现设计出m条双操作数指令,n 若操作码字段固定为8位,现设计出m条双操作数指令,n 固定为 条无操作数指令,在此情况下, 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令? 多少条单操作数指令? 解 : 2 8 - m - n条
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的 机器字长: 位数,通常与主存单元的位数一致. 位数,通常与主存单元的位数一致.
例:设某机器的指令字长为16位,包括基本操作码4位 设某机器的指令字长为16位 包括基本操作码4 16 和三个地址字段,每个地址字段长4 其格式为: 和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 A1 OP 8 7 A2 4 3 A3 0
微机原理 第四章 微型计算机指令系统

例: 已知: DS=2000H; SI=1000H 指令: MOV [SI+disp],AX
青岛理工大学琴岛学院
寄存器间接相对寻址过程示意图
CPU
寄存器间接相对 SI=1000H
MOV [SI+20H] 程序 ,AX
CS 偏移1000H
DS
SS
ES
位移20H
青岛理工大学琴岛学院
寄存器相对寻址过程示意图
真正数据所在的地址
青岛理工大学琴岛学院
错误指令举例: 6)基址变址寻址: MOV [BX+CX],AX ; CX不能做变址寄存器 MOV [BX+BP],AX ; BP不能作为变址寄存器 操作数的有效地址 EA等于一个基址寄存器( BX或 MOV [BX+DI],ARRAY; BP)与一个变址寄存器( SI或DI)的内容之和;
总时间=基本执行时间+计算EA的时间+执行总线读/写周期的时间
指令的基本执行时间随指令类型的不同差异很大,访问存 储器既要执行总线的读/写周期,又要计算操作数的有效地址 EA,计算EA的时间又与指令的寻址方式有关。
青岛理工大学琴岛学院
4.2 8086/8088指令系统
数据传送类指令
算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理器控制类指令
21000H 20 位 物 理 地 址 真正数据所在的地址 Memory DS … 20000H
…
78H 21000H 56H
青岛理工大学琴岛学院
4)寄存器间接寻址:
此方式的操作数存放在存储器单元中,指令给出的 16位寄存器值就是该操作数所在存储单元的EA。
例: 已知: (DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 注:使用BX、SI、DI,操作数在DS段;BP时在SS段 其中寄存器只能是BX、SI、DI、BP
第4章 指令系统

3. 规整性
规整性包括指令系统的对称性,匀齐性,指令 格式和数据格式的一致性.对称性是指:在指 令系统中所有的寄存器和存储器单元都可同等 对待,所有的指令都可使用各种寻址方式.匀 齐性是指:一种操作性质的指令可以支持各种 数据类型.
4.兼容性 兼容性
系列机各机种之间具有相同的基本结构和共 同的基本指令集,因而指令系统是兼容的,即 各机种上基本软件可以通用.但由于不同机种 推出的时间不同,只能做到"向上兼容" .
目前在指令操作码设计上主要采用以下两 种编码方式 1. 固定长度操作码 操作码的长度是固定的,且集中放在 指令字的一个字段中,指令的其余部分全 部用于地址码.例如IBM370机和VAX-11系 列机,操作码的长度均为8位,可表示256 种不同的操作. 2. 可变长度操作码
4.2.2 地址码
地址码用于指定操作数和存放运算结果的地址, 通常称为操作数.操作数可以是一个直接的数或者 是一个数据所在的地址,它以空格与操作码分开.
例如: MOV AX,[SI]
假如用户用高级语言编程,根本不用 考虑寻址方式,因为这是编译程序的事,但 若用汇编语言编程,则应对它有确切的了解, 才能编出正确而又高效的程序.此时应认真 阅读指令系统的说明书,因为不同计算机采 用的寻址方式是不同的,即使是同一种寻址 方式,在不同的计算机中也有不同的表达方 式或含义. 思考:设计指令系统时,数据的寻址方式 越多越好吗?为什么?
4.直接寻址 指令中的形式地址A就是操作数的真实 地址EA,这种寻址方式称为直接寻址方式, 又称为绝对寻址方式.如图5-3所示.
OP 寻址特征 A 主存 A 操作数
图5-3 直接寻址方式
例如: MOV AL,[0080H] MOV AX,[1000H]
《计算机组成原理》教程第4章指令系统

4
二 指令的格式
即指令字用二进制代码表示的结构形式
包括 操作码:操作的性质 操作码 地址码:操作数(operand)的存储位置,即参加操作的 operand , 地址码 数据的地址和结果数的地址
操作码域(op) 地址码域(addr)
5
1.操作码 操作码
指令的操作码表示该指令应进行什么性质的操作。 组成操作码字段的位数一般取决于计算机指令系统的 规模。 固定长度操作码:便于译码,扩展性差 . 可变长度操作码:能缩短指令平均长度 操作码的的位数决定了所能表示的操作数,n位操 作码最多表示2n种操作
(2). 堆栈工作过程 .
(一)进栈操作 ① 建立堆栈,由指令把栈顶地址送入SP,指针 指向栈顶。 ② 进栈:(A)→Msp, (sp)-1→SP ;Msp:存储 器的栈顶单元 (二)出栈操作 (SP)+1→SP, (Msp)→A
22
五.指令类型
一个较完善的指令系统应当包括: 数据传送类指令: 例)move、load、store等 算术运算类指令: 例)add、sub、mult、div、comp等 移位操作类指令: 例) shl,shr,srl,srr 逻辑运算类指令: 例)and、or、xor、not等 程序控制类指令: 例)jump、branch、jsr、ret、int等 输入输出指令: 例)in、out等 字符串类指令: 例)如alpha中cmpbge、inswh、extbl等 系统控制类指令: 例)push、pop、test等
18
10) *段寻址方式 段寻址方式 Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。 由16位段寄存器和16位偏移量产生20位物理地址 11)*自动变址寻址 自动变址寻址 指在变址方式中,每经过一次变址运算时,都自动改变变址寄存 器的内容,以后在PDP-11中详讲.
计算机原理 第四章指令系统

4. 寄存器间接寻址方式
指令给出寄存器号,寄存器中存放着操作数的地址。
优点:寄存器的位数 较长(一般为机器字 长),足以访问整个 内存空间,这样既有 效地压缩了指令长度, 又解决了寻址空间太 小的问题。
主存单元 例: ADD (R1),(R2) R0 1000H 1000H 3A00H
R1
2C00H+ 3B00H → 3000H单元 R2
计 算 机 组 成 原 理
指令扩展举例 1
16位指令字 三地址指令范围 xxxx
0000 1110 1111 1111 1111 1111 1111 1111
xxxx xxxx xxxx
A1 A1 0000 1110 1111 1111 1111 1111 A2 A2 A1 A1 0000 1110 1111 1111 A3 A3 A2 A2 A1 A1 0000 1111
2.变长操作码,定长指令码。
操作码长度不固定,但指令码的长度固定。这种设计当操作码变 长时,地址码就缩短(地址个数变少),但指令字总长不变。 〔例〕 设某机器的指令长度为16位,包括基本操作码4位和三个 地址字段,每个地址字段长4位,其格式为: 15 14 13 12 OP 11 10 9 8 AD1 7 6 5 4 AD2 3 2 AD3 1 0
第四章
§4.1 指令格式
指令系统
(P148)
§4.2
寻址方式
§4.3 指令类型 §4.4 § 4.5 CISC和RISC 实验模型机的指令系统汇总表
§4.1 指令格式
计算机指令是计算机硬件能够识别并直接执行的操作命令,又称为 机器指令。
一、指令格式
一条指令应包括两方面的信息:操作码信息和地址码信息。 操作码OP 地址码AD
第4章 指令系统
存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二
计算机组成原理-第4章_指令系统
7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。
计算机组成原理-第4章 指令系统
0000 0001
AA11
AA22
AA33
…
…
…
…
1110 A1 A2 A3
1111 0000 1111 0001
AA22
AA33
…
…
…
…
1111 1110 A1 1111
0000 0001
AA33
…
…
…
…
1111 1111 1110 A3
1111 1111 1111 0000 1111 1111 1111 0001
操作码字段
地址码字段
•操作码:表征指令的操作特性和功能。不同指令有不 同编码。
•地址码:指定参与操作的操作数的地址。
4.2 指令格式
一、操作码设计 1、分类 • 固定长度操作码:操作码的长度固定,且集中放在指令字 的一个字段中 – 便于译码,扩展性差 • 可变长度操作码:操作码的长度可变,且分散放在指令字 的不同字段中 – 能缩短指令平均长度;指令的译码复杂
2、操作码位数的确定 1)要点:组成操作码字段的位数取决于指令系统的指令条数。 2)举例 • 指令系统8条指令8=23 3位操作码 • 指令系统32条指令32=25 5位操作码 • 指令系统2n条指令n位操作码
3) 扩展(可变长度)操作码技术
•基本思路: • 让操作数地址个数多的指令操作码 字段短些,让操作数地址个数少的 指令操作码字段长些
– 等长指令字结构:在一个指令系统中,各种指令字长度是相等的。结 构简单,取指快、译码简单
– 变长 指令字结构: …………………,…………………….不相等 结 构灵活,可提高编码效率,控制复杂
4.1指令系统的基本概念
4、指令系统:一台机器中所有机器指令的集合。它对计算机性能的影响主要体 现在三个方面: – 机器的硬件结构 – 机器的系统软件 – 机器的适用范围
第四章 指令系统小结
串联本章的问题 1问:数据可以在计算机中表示,但计算机如何 数据可以在计算机中表示, 对这些数据进行处理。 对这些数据进行处理。 答:通过指令 2问:什么是指令,指令如何构成? 什么是指令,指令如何构成? 答:指令是指示计算机执行何种操作的命令, 指令是指示计算机执行何种操作的命令, 它由操作码和地址码构成? 它由操作码和地很多指令,每条指令格式都 计算机中有很多指令, 一样吗? 一样吗? 答:不一样? 指令类型 不一样? 4问:既然不一样,那在设计指令的时候应该遵 既然不一样, 循什么原则,才能使指令系统简洁而有效呢。 循什么原则,才能使指令系统简洁而有效呢。 答:涉及的知识点:设计指令时应该考虑的因 涉及的知识点: 素
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章指令系统本章主要介绍计算机指令系统的基本概念、指令格式及寻址方式,讨论指令系统的设计理论。
在这基础上介绍指令的分类及指令系统举例,其中重点介绍8086体系结构的寻址方式及其8086指令系统。
一、指令系统的基本概念1、指令系统及计算机语言计算机程序是由一条条机器指令组成的。
机器指令是计算机唯一能够识别的语言。
一条机器指令所提供的信息主要包括:告诉机器应该做什么操作,从何处取操作数,把数据运算的结果送往何处以及从何处取出下一条将要执行的指令等内容。
一台计算机中实现各种功能的机器指令的集合称为该机器的指令系统。
计算机语言从早期的由二进制0、1表示的机器语言,发展出了用助记符表示的低级语言(汇编语言),进而发展出方便人类记忆、编程的高级语言(C语言)。
高级语言编写的程序,便于人们书写和识别,但是计算机硬件不能直接识别,需要由相应高级语言的编译程序把它翻译成相应的机器语言。
汇编语言编写的程序,需要由相应汇编语言的汇编程序把它翻译成机器语言。
2、计算机中指令的存储及执行在计算机内部存储及处理的信息分为数据信息和控制信息两大类。
数据信息是计算机处理的对象。
控制信息主要是由构成程序的机器指令组成。
在计算机中,指令是以二进制代码的形式表示的。
通过把利用机器的指令系统中的各种指令所编写的、控制机器运行的程序存放在存储器中的方式,使计算机能够连续不断地执行相应程序,这就是存储程序概念。
计算机中程序执行的一般过程:计算机在开机启动后,到主存中找到需要执行的程序中的第一条机器指令,把其从主存读取到指令寄存器中;通过对所需要执行的相应机器指令进行译码,控制机器硬件电路进行不同的动作,完成不同的功能。
机器在执行完一条指令后,根据程序的需求,再取出下一条应该执行的指令继续执行。
以此方式,循环往复,直到一段程序执行完,则完成了相应的一个任务。
二、指令格式1、指令格式及指令字长度指令格式一般由操作码字段和地址码字段两部分组成。
操作码字段表示指令的功能及操作特征,地址码字段通常指定参与操作的操作数地址或直接给出操作数。
指令字长度是指一条指令中包含的二进制代码的位数。
机器字长是指CPU能同时并行处理的用二进制表示的数据位数,计算机的运算精度由机器字长所决定。
通常把指令字长度小于或等于机器字长的指令称作短指令,把指令字长度大于机器字长的指令称作长指令。
短指令的设计可以节省指令的存储空间,减少读取指令所需的访存次数,提高执行每条指令的速度。
长指令设计可以使一条指令包含较强的功能,便于进行程序设计,访问长指令会降低程序的执行速度。
2、操作码结构的设计操作码的位数决定着指令系统中完成不同操作指令的数量。
(4位操作码可以设计有16条不同操作的指令。
)3、地址码结构的设计①四地址指令OP为操作码,表示加、减、乘、除、传送、移位等操作性质;A1 为第一操作数地址,也可称作源操作数地址;A2 为第二操作数地址,也可称作源操作数地址;A3 为存放结果的地址;A4 为下一条将要执行指令的地址。
PC(IP)指出。
③二地址指令(A1)OP(A2)A1它表示把A1中的操作数与A2中的操作数按照OP操作性质进行相应的操作,把运算结果送入地址A1中。
A1为目的地址,A2为源地址。
OP(A1)A1 它表示把A1中的操作数按照OP操作性质进行相应的操作,把运算结果仍送入地址A1中。
双操作数指令:(REG)OP(A1)REG它表示把REG中的操作数与A1中的操作数按照OP操作性质进行相应的操作,把运算结果送入地址REG中。
⑤零地址指令没有地址码,只有操作码(1)指令不需要操作数,只发出一定的命令指挥机器完成相应的操作。
(停机指令、空指令) (2) 指令所需要的操作数是隐含指定的。
(入栈及出栈指令)结论:在设计指令系统时,应考虑尽可能地缩短指令长度,这样才可能减少程序占用的空间,同时也相应减少访存的次数,提高程序的总体运行速度。
通常可以采用下述几种方法来缩短指令长度:(1)把运算结果放在目的操作数地址中。
这样可以缩减一个地址长度。
(2)用CPU中的寄存器隐含存放一个操作数。
(3)不用完整、较长的主存地址,把主存较长地址码的全部或部分存放在寄存器中,在地址码字段只给出较短的寄存器地址编码。
这样可以极大地缩短地址码的长度。
4、指令助记符与机器指令代码对机器指令中用二进制编码表示的操作码和地址码采用相应的若干个英文字母表示,通常称为指令助记符。
三、寻址方式寻找所要处理的指令或操作数地址的各种方式。
1、指令寻址方式①顺序寻址方式②跳转寻址方式PC不仅需要有自动加1的功能,还应具有接收转移地址的功能。
2、操作数寻址方式①隐含寻址指令中的操作数或操作数地址隐含存放在特定的寄存器或主存单元中,不在指令的地址码字段给出,而是按指令设计时的约定存放。
②立即寻址指令的地址码字段给出的不是操作数地址,而是操作数本身。
③寄存器寻址指令中所要处理的操作数存放在寄存器中。
④直接寻址寻找存储器操作数地址的一种基本方法。
指令中的地址码字段直接给出了操作数所在主存单元的有效地址EA。
⑤间接寻址指令的地址码字段给出的地址不是存放操作数的有效地址,而是存放操作数有效地址的主存单元地址(操作数地址的地址)。
⑥寄存器间接寻址指令的地址码部分给出寄存器编号,在给定的寄存器中存放操作数所在主存单元的地址,按此地址去访问操作数。
⑦变址寻址⑧基址寻址基址寻址方式的设置主要是面向系统,解决多道程序在主存中的定位以及扩大寻址空间等问题。
变址寻址方式的设置主要是面向用户,使用户可以方便地对字符串、数组及向量等成批数据进行访问,解决程序的循环控制等问题。
⑨相对寻址⑩堆栈寻址3、8086寻址方式示例在8086指令系统中,寻址方式主要有与数据相关的寻址方式、与转移地址相关的寻址方式以及与I/O端口相关的寻址方式三类。
⑪8086中央处理器(CPU)及主存储器8086CPU是16位的处理器,数据通路宽度为16位,支持1MB主存空间的访问,并提供64K 个外设端口地址。
①8086的CPU结构总线接口部件BIU:完成CPU对主存或外设之间的信息访问工作。
执行部件EU:负责对BIU指令队列中应该执行的指令进行译码,控制执行该指令。
②8086的寄存器结构14个16位寄存器通用寄存器(8个)AX 累加器BX 基址寄存器CX 计数器DX 数据寄存器SP 堆栈指针寄存器BP 基址指针寄存器SI 源变址寄存器DI 目的变址寄存器段寄存器(4个)CS 代码段DS 数据段ES 附加段SS 堆栈段指令指针寄存器IP(指向下一条即将执行的指令首地址的偏移地址)CS:IP 20位主存物理地址标志寄存器(FR)FR的内容称程序状态字(PSW)9个标志位(6个状态标志3个控制标志)CF、PF、AF、ZF、SF、OF 记录程序运行时的状态信息,由CPU根据指令执行的结果自动设置。
TF:陷阱标志单步标志或跟踪标志,用于程序的调试IF:中断标志DF:方向标志③8086的主存储器结构主存每个单元的物理地址是唯一的,但其逻辑地址可以不同。
逻辑地址的表示段基值:偏移量(2)与数据相关的寻址方式以汇编语言的数据传送指令为例介绍各种与数据相关的寻址方式MOV DST,SRCDST表示目的操作数地址SRC表示源操作数地址①立即寻址MOV AX,1326HMOV AL,12H②寄存器寻址MOV AL,BHMOV AX,BX③直接寻址MOV AX,V AR 用符号地址表示MOV AX,DS:[1200H]④寄存器间接寻址MOV AX,[BX]MOV AX,SS:[BP]⑤变址寻址MOV AX,V AR[SI]MOV AX,1200H[SI]例:一维数组ARRAY1顺序存放在主存的数据段中,假设ARRAY1数组的首地址位于数据段偏移2300H处,(DS)=2000H,数组的每个元素占两个字节。
使用指令:MOV AX,ARRAY1[BX] 可以把ARRAY1数组中的元素取出传送到通用寄存器AX中。
⑥基址变址寻址MOV AX,V AR[BX][SI]MOV [BP][DI],AX例:具有10行、10列的二维数组ARRAY2按照第一行(0~9个元素)、第二行(0~9个元素)…的顺序连续存放在主存的数据段中,假设ARRAY2数组的首地址位于数据段偏移3400H处,(DS)=2000H,数组的每个元素占两个字节。
如果需要把数组的第1行第6个元素ARRAY2(1,6)传送到通用寄存器AX中时,则可以把BX设置成20(14H)(1×20),把SI设置成12(0CH)(6×2),使用下述指令即可完成所需数据的传送:MOV AX,ARRAY2[BX][SI] ARRAY2(1,6)传送到AX中⑦与串操作相关的寻址方式源串DS:[SI] 允许存放在其他段目的串ES:[DI] 只能存放在附加段(3)与转移地址相关的寻址方式①段内直接寻址JMP JMPLAB②段间直接寻址JMP FAR PTR JMPLAB③段内间接寻址JMP BXJMP WORD PTR [BX]④段间间接寻址JMP DWORD PTR [BX](4)I/O端口寻址方式①直接I/O端口寻址方式IN AX,26H②间接I/O端口寻址方式MOV DX,378HOUT DX,AL注:前256个(0~FFH)端口地址可以直接在指令中给出,其余的端口地址要放到DX中。
四、指令的分类及指令系统1、指令种类数据传送类指令算术运算类指令逻辑运算类指令程序控制类指令串处理类指令输入/输出类指令系统控制类指令2、8086指令系统类型1、传送类指令(1)数据传送指令MOVPUSHPOPXCHG(2)专用累加器传送指令INOUTXLAT(3)标志位传送指令LAHFSAHFPUSHFPOPF(4)地址传送指令LEALDSLES2、算术运算类指令(1)加法运算指令ADD ADC INC(2)减法运算指令SUB SBB DEC NEG CMP(3)乘法运算指令MUL IMUL(4)除法运算指令DIV IDIV(5)类型转换指令CBW CWD(6)十进制调整指令DAA DAS AAA AAS AAM AAD3、逻辑运算类指令(1)逻辑运算指令AND OR NOT XOR(2)测试指令TEST(3)移位指令SHL SHR SAL SARROL ROR RCL RCR4、控制转移类指令(1)无条件转移指令JMP(2)条件转移指令JO JNO JS JNS JZ JNZ JP JC …比较两个无符号数JA JB JAE JBE比较两个带符号数JG JL(3)CX寄存器的值测试转移指令JCXZ(4)循环控制指令LOOP LOOPZ LOOPNZ(5)子程序的调用与返回指令CALL RET(6)中断子程序的调用与返回指令INT INTO IRET5、串处理指令(1)串处理指令MOVSCMPSSCASLODSSTOS(2)与串处理指令配合使用的重复前缀指令REPREPEREPNE6、处理器控制类指令(1)标志位处理指令CLCSTCCMCCLDSTDCLISTI(2)空操作指令NOP(3)处理机控制指令HLTWAITESCLOCK3、8086指令系统详解①传送类指令(1)MOV 数据传送指令指令的执行不影响标志位注:DST不能为立即数SRC为立即数时,DST不能是段寄存器(立即数不能直接传送到段寄存器中)SRC和DST不能同时为主存单元地址,也不能同时为段寄存器例1:把立即数2010H送段寄存器DS中。