微机原理_第3章-01寻址方式
时间:2025-07-11
时间:2025-07-11
第三章 8086/8088的寻址方式和指令系统
概
述
程序设计分为以下3级: 机器语言程序 : 计算机能理解和直接执行的程序。是由二进制 代码组成的; 汇编语言程序: 用助记符语言表示的程序。计算机不能直接识 别,需经过汇编程序的翻译把它转换成机器语言方能执行;
机器语言指令与汇编语言指令基本上一一对应。 高级语言程序 : 用高级语言编写的程序。高级语言是不依赖于 具体机型只面向过程的程序设计语言,用它所编写的程序,需 经过编译程序或解释程序的翻译方能执行。
第一节
指令的基本格式
人们用来指挥和控制计算机进行某种操作的命令称 为指令。 计算机通过解释每一条指令的含义 , 来执行指令所 规定的各种操作。为此 , 每条指令应包括下列基本 信息:① 指明计算机的有关部件执行什么操作。 ② 指明参加操作的是一些什么样的数。 ③ 指明这些操作数存放在什么地方 ,以及通过什么 方式才能够找到它们。 ④ 指明后继指令从哪里取出。
一、机器码格式指令由操作码和操作数两部分构成。 指令的基本格式如下图所示:操作码(OP) 操作数(OD)1 操作数(OD)2 ……
8086指令的机器码是可变长的,有1~6个字节。 其中第一个字节为操作码,后面的部分为操作数。
1. 操作码(Operation Code,简称OP)字段 该字段指明计算机所要执行的操作类型。在机器语 言中由一组二进制代码表示 , 在汇编语言中用助记 符代表。例如 , 加法操作用 “ ADD”, 乘法操作用 “MUL”。 2. 操作数(Operated Data,简称OD)字段 指令执行的操作过程中所需的操作数 。 操作数 字段可以是操作数本身、操作数地址或操作数地址的 运算方法 , 还可以是指向操作数地址的指针或其它的 有关操作数的信息。
8086指令可分为无操作数指令、单操作数指令、 双操作数指令 。一个操作数称为单操作数,两个操作数称为双操作 数。
操 作 数 有 源 操 作 数 src(Source) 和 目 的 操 作 数 dst(Destnation) 之分 。 在指令执行前 ,src 和 dst 均可以是参加运算处理的操作数,指令执行后,dst 中则存放运算处理的结果。
如果操作数直接在OD字段中给出,此数据称作立即 数,指令把它拿来直接处理。 如果操作数存放在 CPU的寄存器中 ,则只要给出寄 存器号。 如果操作数存放在存储器中或I/O端口中,则要给出 有效地址 EA(Effect Address), 或者给出形成有效 地址的方法。 指令中操作数究竟以何种形式给出 , 以及操作数的 地址如何形成 , 这就是靠寻址方式 —— 寻找操作数 的方式。
二、8086/8088符号指令的书写格式8086符号指令语句格式如下:
[标号:] 指令助记符 操作数 [; 注释]其中带[ ]号
的标号和注释可以缺省。 标号 是给该指令语句所在地址取的名字。 后面必须跟冒号,可缺省。标识符应以字母打头,不超 过31个字符长度。 是指令功能的代表符号,它是指令语句的关键 字,不可缺省。
指令助记符
二、8086/8088符号指令的书写格式[标号:] 指令助记符 操作数 [; 注释] 操作数 是参加本操作的数据。 有些指令不需要操作数;有些指令需要两个操 作数,此时必须用逗号分开;有些操作数可以 用表达式来表示。 是以“ ;” 开头的说明部分 , 可以用英文或中文 写,注释允许缺省。
注释 书
第二节 8086/8088 的寻址方式8086/8088 的操作数可位于寄存器、存储器或 I/O 端口中。对位于存储器的操作数可采用多种不同 方式进行寻址。
一条指令一般都有源操作数 (src) 和目的操作数 (dst),要说明一条指令为何种寻址方式,应就源操 作数(src)和目的操作数(dst)分别加以说明。 寻址方式的实质是由指令中的逻辑地址生成物 理地址的方法(即PA与EA的关系)。
一、立即数寻址方式(Immediate Addressing)在这种寻址方式下,操作数直接包含在指令中,它是 一个 8 位或 16 位的常数 , 也叫立即数 。 这类指令翻 译成机器码时,立即数作为指令的一部分,紧跟在操 作码之后 ,存放在代码段内。如果立即数是 16位数 , 则高字节存放在代码段的高地址单元中 , 低字节放 在低地址单元中。
MOV AX,ImAX AH AL 操作码 ImL ImH 代 码 段
它表示将立即数Im送到AX寄存器中,其中将Im的 低 8 位 ( 用 ImL 表示 ) 送到 AL 中 , 将 Im 的高 8 位 ( 用 ImH表示)送到AH中。 立即数Im可以是8位的,也可以是16位的。
例如: MOV AX,1234H ;执行后AX=1234H, ;其中AH=12H,AL=34H。 MOV AX,1000 ;执行后AX=03E8H, ;其中AH=03H,AL=0E8H。 MOV AL,80H ;执行后AL=80H。
以A~F打头的数字出现在指令中时 ,前面一定要加 一个数字0。 MOV AX,0FF00H ;执行后AX=0FF00H 。
特点及注意事项特点: 1.执行速度快: 操作数是直接从指令中取得 ,不执行 总线周期,所以执行速度快;
2.立即数只能作源操作数,不能作目的操作数;3.主要用来给寄存器或存储器赋初值。
特点及注意事项注意事项: 源操作数与目的操作数类型必须匹配! 8位(字节)立即数可装入8位或16位寄存器,16位(字) 立即数只能装入16位寄存器。例如: MOV AL,14H 执行后,AL=14H MOV AX,14H 执行后,AX=0014H MOV BP,1234H 执行后,BP=1234H 而指令MOV AL,1234H 是错误的,因为立即数1234H 是16位的,而AL都是8位寄存器。
二、寄存器寻址方式(Register Addressing)操作数存放在寄存器中,由指令指定寄存器的名称。 16 位寄存器 : AX 、 BX 、 CX 、 DX 、 SI 、 …… 此处隐藏:706字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:《数据库原理》试题库及答案