第四章 指令系统、寻址方式
第4章_计算机指令构成和寻址方式
Pentium指令系统所支持的数据类型:
1. 整数:补码表示的二进制数,字节(8位)、字(16位)和双字(32 位)3种。
2. 序数:无符号二进制数,字节(8位)、字(16位)和双字(32位)3 种。
3. UBCD数:未压缩的(unpacked)BCD数,数字值0到9,每个数字 占一个字节。 4. BCD数:压缩的BCD数,一个字节可以表示2位数字,从00到99。 5. 指针:32位有效地址,指出段内的地址偏移量。
二地址指令
一地址指令 零地址指令
add r1,r2
add r1 add
r1←r1+r2
A←A+r1 T←T+(T-1)
寻址方式:
寻址方式指的是如何描述一个操作数或下一条指令的地址, 即确定操作数或下一条指令地址的方法。常用的寻址方式有 立即数寻址、寄存器寻址、直接寻址、间接寻址、相对寻址 等。
指令长度: 指令长度有固定长度和可变长度两种。RISC处理机一般采用 固定长度的指令格式,例如SUN SPARC的指令长度均为32位, 与数据字长相同。定长指令格式的好处在于指令译码和流水 线执行比较容易。Pentium处理机的指令长度是可变的,常用 指令用较少的二进制位表示,不常用的指令使用较多的位表 示,它的好处是可以缩短指令的平均长度。 指令系统设计中的问题: 指令种类和寻址方式越多越好,还是越少越好?指令种类越 多、寻址方式越复杂,说明处理机的功能越强。但同时,实 现一条复杂指令需要较多的逻辑门电路,执行一条复杂指令 所化费的时间也比较长,而且处理机的设计复杂度提高、设 计周期增长,并且复杂指令的使用频率较低。指令种类少、 寻址方式简单的好处是可以提高时钟频率,缩短指令周期, 从而很快完成一条指令的执行。但并不是越简单越好,指令 太简单,完成一次比较复杂的操作往往需要一长串的简单指 令序列,也会使执行时间变长,同时也使程序变长。
微机原理 第四章 微型计算机指令系统
例: 已知: 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
MCS-51单片机的指令系统
整理ppt
12
4.2 寻址方式
51汇编语言有42种操作码助记符,用来描述33种操作功 能。一种操作码可以使用一种以上的数据类型,又由于 助记符规定了其访问的存储器空间,所以一种功能可能 有几个助记符(如MOV、MOVX、MOVC)。功能助记 符与寻址方式组合,得到111条指令。
整理ppt
13
4.2 寻址方式
1)无操作数单字节指令
这类指令只有操作码字段,操作数隐含在操作码中。
例如:INC DPTR
指令码为 :
数据指针隐含其中
整理ppt
6
指令的组成及字节数
2)含有操作数寄存器号的单字节指令 单字节的指令码由操作码字段和指示操作数所 在寄 存器号的字段组成。 例如;MOV A,Rn 指令码为:
其中,rrr为寄存器Rn的编号
整理ppt
2
4.1 指令和指令程序
“指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
与CPU的能力、使用的方便灵活性密切相关。 指令的记忆问题?指令本身是二进制代码。
例如以下的51单片机指令:
把10放到累 740AH 加器A中 为பைடு நூலகம்便于记忆 指令助
A加20,结 果仍在A中
整理ppt
8
指令的组成及字节数
3.三字节指令(17条)
这条指令的指令码的第1字节为操作码;第2和第3字节为 操作数或操作数地址,有如下3类。 1)16位数据 例如:MOV DPTR,#26ABH 指令码为:
整理ppt
9
指令的组成及字节数
2)8位地址和8位数据 例如:MOV 74H,#0FFH 指令码为:
在MCS-51指令中,若操作数是以R0~R7来表示操作数时, 就属于寄存器寻址方式。
《计算机组成原理》教程第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章指令系统习题解答
楼第4章指令系统习题解答习题解答:1.什么是寻址模式?8086/8088 CPU的寻址模式是什么?答:指令的寻址方式就是指获得操作数所在地址的方法。
8086/8088cpu指令的寻址方式可分为8种,为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址。
2.指示源操作数和目标操作数在以下指令中的寻址方式(1)movax,[si]源操作数:寄存器寻址目的操作数:寄存器间接寻址(2)movdi,100源操作数:寄存器寻址目的操作数:立即寻址(3)mov[bx],al源操作数:寄存器间接寻址目的操作数:寄存器寻址(4)mov[bx+si],cx源操作数:基址变址寻址目的操作数:寄存器寻址(5)adddx,106h[si]源操作数:寄存器寻址目的操作数:寄存器相对寻址3.阅读以下说明(1)sti对(2)call1000h错(3)divax,dl错(4)shlal,4错(5)popax对(6)inal,[30h]错(7)inccs错(8)out40h,al对4.地址是根据已知的物理条件计算的。
已知:SS=1000h,ES=2000h,DS=3000h,CS=4000H,BX=5000h,di=1200h,BP=2300h(1)(2)(3)(4)(5)5.将SP的初始值设置为2400h,ax=4000H,BX=3600h,然后在执行pushax指令后,SP=?,执行pushbx和popax后,SP=?答:则执行指令pushax后,sp=2400h-2=23feh,再执行pushbx和popaxMovax,[2300h]计算公式:DS×16+2300hmov[BX][di],ax计算公式:DS×16+BX+diaddax,es:[2100h]计算公式:es×16+2100hsubdx,[BP+6]计算公式:SS×16+BP+6movax,[di]计算公式:DS×16+di后sp=23feh。
计算机组成原理-第4章_指令系统
7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。
计算机组成原理(白中英)第4章指令系统
计算机组成原理(白中英)第4章指令系统指令系统概述寻址方式指令系统20XX年3月15日10时45分概述指令:是指示计算机某种操作的命令。
微指令,机器指令,宏指令指令系统:一台计算机中所有机器指令的集合。
它是机器硬件设计的依据,也是软件设计的基础。
它决定了一台计算机硬件的主要性能和基本功能。
是硬件和软件间的界面。
系列计算机:有共同的指令集,相同的基本体系结构。
CISC和*****X年3月15日10时45分2一个完善的指令系统应满足:1.完备性:指令丰富,功能齐全,使用方便。
1.完备性:指令丰富,功能齐全,使用方便。
完备性 2.有效性程序占空间小,执行速度快。
有效性: 2.有效性:程序占空间小,执行速度快。
3.规整性对称性,匀齐性,规整性:3.规整性:对称性,匀齐性,指令格式和数据格式的一致性。
据格式的一致性。
4.兼容性兼容性:4.兼容性:向上兼容”----系列机中低档机上运行“向上兼容”----系列机中低档机上运行的软件可以在高档机上运行。
的软件可以在高档机上运行。
20XX年3月15日10时45分计算机语言与硬件结构的关系高级语言的语句和用法与具体机器的指令系统无关;低级语言分机器语言和汇编语言,他们和具体机低级语言分机器语言和汇编语言,器的指令系统密切相关。
器的指令系统密切相关。
汇编语言与硬件的关系密切,编写的程序紧凑、汇编语言与硬件的关系密切,编写的程序紧凑、占内存小、速度快,占内存小、速度快,特别适合与编写经常与硬件打交道的系统软件;打交道的系统软件;而高级语言不涉及机器的硬件结构,通用性强、编写程序容易,件结构,通用性强、编写程序容易,特别适合与编写与硬件没有直接关系的应用软件。
编写与硬件没有直接关系的应用软件。
20XX年3月15日10时45分4概述机器指令的要素C C C C 操作码源操作数目的操作数下一条指令的引用指令字(简称指令)即表示一条指令的机器字。
指令字(简称指令)即表示一条指令的机器字。
第四章 指令系统2
二、RISC
4、较少的指令数和寻址方式,容易解释 较少的指令数和寻址方式, 5、固定的指令格式,用以解释 固定的指令格式, 6、CPU内大量设置通用寄存器,减少对内存的 CPU内大量设置通用寄存器, 内大量设置通用寄存器 访问,提高速度 访问, 7、硬布线控制器,提高速度 硬布线控制器,
进栈操作为: 进栈操作为: ,(SP)- )-1→SP (A)→Msp ,( )- ) 其中( )表示通用寄存器A的内容, 表示 其中(A)表示通用寄存器A的内容,SP表示 堆栈指示器, 堆栈指示器,Msp 表示堆栈指示的存储器栈 顶单元。 顶单元。 出栈操作为: 出栈操作为: )+1→SP,( ,(Msp)→A (SP)+ )+ ,( ) A
4.5指令类型自己看
RISC和CISC 一、复杂指令系统计算机CISC 复杂指令系统计算机
1、指令系统复杂庞大,指令数目一般2、3 指令系统复杂庞大,指令数目一般2 百条,需要用复杂的控制器支持。 百条,需要用复杂的控制器支持。 2、寻址方式多,影响速度 寻址方式多, 指令格式多, 3、指令格式多,难以解释 4、指令字长不固定,解释复杂 指令字长不固定,
3.特点: 3.特点: 特点
堆栈能够具有程序员要求的任意长度; (1) 堆栈能够具有程序员要求的任意长度; 只要程序员喜欢,愿意建立多少堆栈, (2) 只要程序员喜欢,愿意建立多少堆栈, 就能建立多少堆栈; 就能建立多少堆栈;
3.特点( 3.特点(续): 特点 (3) 可以用对存储器寻址的任何一条指令来 对堆栈中的数据进行寻址。 对堆栈中的数据进行寻址。 (4) 在存储器类型的堆栈中,需要一个堆栈 在存储器类型的堆栈中, 指示器,它是CPU中一个专用的寄存器。 CPU中一个专用的寄存器 指示器,它是CPU中一个专用的寄存器。堆 栈指示器指定的存储器单元, 栈指示器指定的存储器单元,就是堆栈的栈 这一部分就不能用作其他用途。 顶。这一部分就不能用作其他用途。
第4章Intel 80868088指令系统
物理地址=30000H+1150H=31150H
执行后: (AX)=5678H。
第四章 Intel 8086/8088指令系统
5. 相对基址变址寻址
特点:操作数的有效地址是一个基址寄存器与一个变址寄 存器的内容之和再加上8位或16位位移量。同样,当基址寄存器 为BX时,用DS作为段寄存器; 而当基址寄存器为BP时,则用 SS作为段寄存器。因此物理地址为 (SI) 8位 位移量 物理地址=(DS)×16+ (BX)+ + (DI) 16位 (SI) 8位 位移量 + 物理地址=(SS)×16+ (BP)+ (DI) 16位
执行后: (AX)=1234H, (BX)不变。
第四章 Intel 8086/8088指令系统
4.1.4 存储器寻址
操作数在存储器中。存储器是分段管理的, 要找到操作数, 必须指明操作数所在的段(段基址由段寄存器指明)及段内偏 移地址(以有效地址EA的形成方式指出)。 1. 直接寻址方式 特点:指令中直接给出操作数在段内的偏移量,段基址隐 含给出或用段前缀指明。该寻址方式适用于处理单个变量。
4.1.1 8086/8088的通用指令格式 机器语言指令是由二进制代码组成的。一条指令是由操作 码与操作数字段构成的,其一般格式为 操作码字段 + 操作数字段 操作码字段指明计算机所要执行的操作(即功能);操作 数字段指出在指令执行过程中所需要的操作数。 例如: ADD AX, BX
第四章 Intel 8086/8088指令系统
变址寄存器内容之和。 (SI) 物理地址=(DS)×16+ (BX)+ (DI) (SI) 物理地址=(SS)×16+ (BP)+ (DI) 适用表格或数组处理,表格或数组首地址可存放在基址寄存器中。
第4章 指令系统(二)
课程名称 授课时间 教学目标 教学重点 教学难点 教学时数 教学内容: 第 4 章 8086/8088 寻址方式及指令系统(二) 计算机组成原理(第二十八讲) 任课教师 地点 多媒体 授课班级 1. 掌握跨段知识 2. 掌握 8086/8088 指令系统 1. 跨段应用 2. 8086/8088 指令系统 1. 数据传送指令 2. 乘法指令 3. 控制转移指令 讲授法、演示法、实践操 教学手 2节 教学方法 作法 段 陈 平 人数
4
执行的操作:(POTR)<-- AL (字节操作) (PORT+1,PORT)<-- (AX) (字操作) 短格式为: OUT DX,AL (字节操作) OUT DX,AX (字操作) 执行的操作:((DX))<-- AL (字节操作) ((DX)+1,(DX))<-- (AX) (字操作) 在 IBM PC 机里,所有 I/O 端口与 CPU 之间的通信都由 IN 和 OUT 指令来完成。其中 IN 完 成从 I/O 到 CPU 的信息传送,而 OUT 完成从 CPU 到 I/O 的信息传送。CPU 只能用累加器(AL 或 AX)接收或发送信息。外部设备最多可有 65536 个 I/O 端口,端口号(即外设的端口地址)为 0000~FFFFH。其中前 256 个端口(0~FFH)可以直接在指令中指定,这就是长格式中的 PORT, 此时机器指令用二个字节表示,第二个字节就是端口号。所以用长格式时可以在指令中直接 指定端口号,但只限于外设的前 256 个端口。当端口号≥256 时,只能使用短格式,此时,必 须先把端口号放到 DX 寄存器中(端口号可以从 0000~FFFFH), 然后再用 IN 或 OUT 指令来传送 信息,必须注意。这里的端口号或 DX 的内容均为地址,而传送的是端口中的信息,而且在用 短格式时 DX 的内容就是端口号本身,不需要由任何段寄存器来修改它的值。 输入,输出指令不影响标志位。 (3)XLAT(Translate)换码指令 格式为: XLAT OPR 或 XLAT 执行的操作:(AL)<-- ((BX)+(AL)) 3.地址传送指令 (1)LEA(Load effective addres)有效地址送寄存器指令 格式为: LEA REG,SRC 执行的操作: (REG)<-- SRC 指令把源操作数的有效地址送到指定的寄存器中。 (2)LDS(Load DS with Pointer)指针送寄存器和 DS 指令 格式为: LDS REG,SRC 执行的操作:(REG)<-- (SRC) (DS)<-- (SRC+2) 把源操作数指定的 4 个相继字节送到由指令指定的寄存器及 DS 寄存器中。该指令常指定 SI 寄存器。 (3)LES(Load ES with Pointer)指针送寄存器和 ES 指令 格式为: LES REG,SRC 执行的操作:(REG)<--(SRC) (ES)<--(SRC+2) 把源操作数指定的 4 个相继字节送到由指令指定寄存器及 ES 寄存器中。 该指令常指定 DI 寄存器。 以上三条指令指定的寄存器不能使用段寄存器,且源操作数必须使用除立即数方式及寄 存器方式以外的其它寻址方式。这些指令不影响标志位。 本组指令把变量的偏移地址(LEA)或段地址和偏移地址(LDS 和 LES)送给寄存器,以提供 访问变量的工具。 例 4.3.7: LEA BX,[BX+SI+0F62H] 如指令执行前:(BX)=0400H,(SI)=003CH 则指令执行后:(BX)=0400+003C+0F,(SP))<-- (SRC) (3) POP(Pop from the stack)出栈指令 格式为: POP DST 执行操作:(DST)<-- ((SP) + 1,(SP)) (SP) <-- (SP) + 2 这两条堆栈的进栈和出栈指令。堆栈是以“后进先出”方式工作的一个存储区,它必须 存在于堆栈段中,因而此段地址存放于 SS 寄存器中。它只有一个出入口,所以只有一个堆栈 指针寄存器 SP,SP 的内容在任何时候都指向当前的栈顶,所以 PUSH 和 POP 指令都必须根据 当前 SP 的内容来确定进栈或是出栈的存储单元,而且必须及时修改指针,以保证(SP)指向当 前的栈顶。 堆栈的存取必须以字为单位,所以 PUSH 和 POP 指令只能作字操作。它们可以使用除立即 数以外的其他寻址方式。指令也可以指定段寄存器作为操作数,但 POP 指令不允许用 CS 寄存 器。这两条堆栈指令不影响标志位。 例 4.3.3: PUSH AX 堆栈在计算机工作中起着重要的作用,如果在程序中要用到某些寄存器,但它的内容却 在将来还有用,这时就可以用堆栈把它们保下来,然后到必要时再恢复其原来的内容。例如: PUSH AX PUSH BX „ 其间程序用到 AX 和 BX 寄存器 „ POP BX POP AX 堆栈在子程序结构的程序及中断程序中也很有用,这将在以后加以说明。 (4) XCHG(Exchange) 交换指令 格式为: XCHG OPR1,OPR2 执行操作:(OPR1)<--> (OPR2) 其中 OPR 表示操作数。该指令的两个操作数中必须有一个在寄存器中,因而它可以在寄 存器之间或者在寄存器和存储器之间交换信息,但不允许使用段寄存器。指令允许字或字节 操作,且不影响标志位。 2.累加器专用传送指令 这组指令只限于使用累加器 AX 或 AL 传送信息,不影响标志位。 (1) IN(Input)输入指令 长格式为: IN AL,PORT (字节操作) IN AX,PORT (字操作) 执行的操作:(AL)<-- (PORT) (字节操作) (AX)<-- (PORT+1,PORT) (字操作) 短格式为: IN AL,DX (字节操作) IN AX,DX (字操作) 执行的操作:(AL)<-- ((DX)) (字节操作) (AX)<-- ((DX)+1,(DX)) (字操作) (2)OUT(Output)输出指令 长格式为: OUT PORT,AL (字节操作) OUT PORT,AX (字操作)
汇编语言第四章:指令系统和寻址方式
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
根据d的不同进行选取
第四章 第一章 指令系统和寻址方式 基础知识
d=1时的操作
第四章 第一章 指令系统和寻址方式 基础知识
d=0时的操作
第四章 第一章 指令系统和寻址方式 基础知识
如果2000H单元在附加段,指令为: MOV AX, ES:[2000H] 段跨越前缀: 段寄存器名: —— 改变默认使用的段寄存器
第四章 第一章 指令系统和寻址方式 基础知识
可以使用属性操作符 type PTR 来进行属性说明
第四章 第一章 指令系统和寻址方式 基础知识
(4)寄存器间接寻址方式 (Register Indirect Addressing ) 特点: (寄存器) = 操作数的偏移地址 计算操作数物理地址的公式:
next
(7)相对基址变址寻址方式 ( Relative Based Index Addressing ) 特点:(基址寄存器) + (变址寄存器)+位移量 = 操作数的偏移地址
例:设 ( SS ) = 3000H ( BP ) = 2000H ARRAY = 0250H ( SI ) = 1000H MOV AX, ARRAY[BP][SI] 要访问的存储单元物理地址为: 30000H+2000H +0250+1000H 30000H = 33250H
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
Байду номын сангаас
寻址方式与指令系统
13
第4章 寻址方式与指令系统
3. 存储器寻址
• 如果操作码所需操作数存放在内存储器中,
则指令中需要给出操作数的地址信息。为了提高
程序的灵活性,8086指令系统提供了多种存储器
6、基址变址寻址方式 7、相对基址变址寻址方式
9
第4章 寻址方式与指令系统
1、立即寻址方式
操作数直接放在指令中,紧跟在操作码的后面
与操作码一起放在代码段区域中。立即数可以是 8 位
的,也可是16位。
立即寻址主要是用来给寄存器赋初值
AX
AH AL
例: MOV AX , 1234H
· · · 操作码 3 4 1 2 · ·
2、单操作数指令 如:PUSH AX
3、双操作数指令 如:ADD AX , BX
4
第4章 寻址方式与指令系统
4.2 指令寻址方式
4.2.1 寻址、寻址方式的概念
1、基本概念
地址--数据和程序在存储器中的位置; 指令地址--存放指令的地址;
操作数地址--存放数据的地址,简称操作数地址;
寻址方式--寻找指令地址和操作数地址的方式;
的内容传送至寄存器AX中 也可表达为: MOV AX , [VALUE]
17
第4章 寻址方式与指令系统
(2)、寄存器间接寻址
“操作数”一定在存储器中,存储单元的有效地址 由寄存器指出。
即 EA=
[BX]
[BP]
[SI]
[DI]
18
第4章 寻址方式与指令系统
这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。
第四章 TMS320C54x数据寻址方式-蓝
[ ]中的 内容为可 选择部分
2010-12-14
供本程序的其它部分或其它程序调用。 标号是任选项,标号后面可以加也可 以不加冒号“:”。
指令统 2
要 点
1.标号必须从第1列写起, 1.标号必须从第1列写起, 标号必须从第 2.标号最多可达32个字符,可以是A 2.标号最多可达32个字符,可以是A~Z,a~z,0~9, 标号最多可达32个字符 _,以及$,但标号的第1个字符不能是数字。 以及$ 但标号的第1个字符不能是数字。 3.引用标号时,标号的大小写必须一致。 3.引用标号时,标号的大小写必须一致。 引用标号时 4.标号的值就是段程序计数器SPC的值。 4.标号的值就是段程序计数器SPC的值。 标号的值就是段程序计数器SPC的值 5.如果不用标号,则第一个字母必须为空格、分号 5.如果不用标号,则第一个字母必须为空格、 如果不用标号 空格 或星号(*)。 星号(
17
例:做A=X+Y=1500H .text RSBX CPL LD #3 , DP LD @X , A LD #4 , DP ADD @Y , A X: 01FFH Y: 0200H 0180H
数据存存器 0001 1000 0500
0000 0001 1111 1111B 0000 0001 1000 0000B
2010-12-14
5.间接寻址 .
(1)单操作数寻址 LD *AR1, B
单数据存储器( 可以使用的辅助寄存器: 单数据存储器(Smem)操作数间接寻址可以使用的辅助寄存器: )操作数间接寻址可以使用的辅助寄存器 AR0、AR1、AR2、AR3、AR4、AR5、AR6、 AR0、AR1、AR2、AR3、AR4、AR5、AR6、AR7
2010-12-14
寻址方式及指令系统
协同发展提高计算机性能
通过寻址方式和指令系统的协同发展,可以不断提高计 算机的性能和灵活性,满足不断变化的计算需求。
谢谢
THANKS
序的可读性和可维护性。此外,间接寻址方式还可以用于实现间接函数调用、数组元素的访问等。
基址寻址方式
总结词
基址寻址方式是指将基址寄存器BX或BP 的内容加上位移量DISP。
VS
详细描述
在基址寻址方式中,操作数的有效地址是 由基址寄存器BX或BP的内容与位移量 DISP相加得到的。基址寻址方式常用于 数组元素的访问和变址运算等场景。通过 基址寻址方式,可以方便地实现数组元素 的遍历和跳转等操作。
变址寻址方式
总结词
变址寻址方式是指将变址寄存器的内容加上 位移量DISP。
详细描述
在变址寻址方式中,操作数的有效地址是由 变址寄存器的内容与位移量DISP相加得到 的。变址寻址方式常用于数组元素的访问和 程序中的循环结构等场景。通过变址寻址方 式,可以实现数组元素的动态遍历和循环变 量的自增等操作。
02 指令系统概述
CHAPTER
指令系统的定义
指令系统的定义
指令系统是计算机硬件能够直接执行 的指令集合,它规定了计算机所具有 的基本功能。
指令系统的特点
指令系统是计算机体系结构的核心组 成部分,其特点包括指令集的规模、 指令的功能、寻址方式、操作码的长 度等。
指令系统的组成
指令格式
01
指令格式是指令系统中每条指令的固定格式,包括操作码和地
间接寻址方式
总结词
间接寻址方式是指操作数通过间接指定的地址来访问,而不是直接给出操作数的值或寄 存器名称。
详细描述
在间接寻址方式中,指令中的地址码指示的是一个内存单元的地址,而不是直接给出操作数的值或寄存器名 称。通过访问该内存单元,可以得到操作数的值。间接寻址方式的优点是可以隐藏操作数的实际值,提高程
第4章 寻址方式与指令系统(二)
6
传送指令
作用
把数据或地址传送到寄存器或存储器单元中
分类
分四大类 共14条指令
《微机接口技术》
7
传送指令的列表
分组 助记符 MOV PUSH POP XCHG 累加器专用传送指 令 功能 传送 压栈 弹栈 交换 操作数类型 字节/字 字 字 字节/字
通用数据传送指令
XLAT
1000H BX 0200H DI 1206H BX 0200H DI
执行前
执行后
注意区别于: MOV BX, [BX+DI+6H]
《微机接口技术》
27
b)LDS指令和LES指令说明
LDS指令(Load pointer into register & DS) 格式:LDS REG, SRC 操作:将源操作数(SRC)指定的FAR型指 针装入指定寄存器(REG)和DS寄存器 说明:
04H AL 66H AL
执行前
执行后
《微机接口技术》
21
b)IN指令和OUT指令说明
IN指令(输入) 格式:IN AC, PORT 操作:把外设端口的内容输入到AL或AX OUT指令(输出)
格式:OUT PORT, AC 操作:把AL或AX的内容输出到外设端口
《微机接口技术》
22
IN指令和OUT指令的寻址方式
XCHG指令示例
XCHG AL, BL XCHG BX, CX
XCHG [BX], CX
XCHG DS:[2530H], CX
《微机接口技术》
17
XCHG指令示例
用XCHG指令改进“存储器中两个字节单元 内容的交换”的程序段
MOV BL, DS:[2035H] MOV CL, DS:[2045H] MOV DS:[2045H], BL MOV DS:[2035H], CL MOV BL, DS:[2035H]
白中英计算机组成原理第四章答案
第4章 指令系统
第一页,编辑于星期日:四点 四十三分。
3、指令格式结构如下所示,试分析指令格
单字长单地址指令
寻址方式 寻址特征X 有效地址E
直接寻址方式
00
E=D
立即寻址方式
01
D=Imm
剩余8位作为形式地址; 变址寻址方式
10
E=(R)+D
设计方案:
相对寻址方式
11
E=(PC)+D
方案1:专用变址寄存器;
方案2:通用寄存器作为变址寄存器;
第五页,编辑于星期日:四点 四十三分。
方案1:专用变址寄存器
6位
2位
OP 寻址特征
8位 形式地址
各操作数的寻址范围: 立即数寻址方式
指令中的立即数不能超过8位;
直接寻址方式
直接地址为8位,可直接寻址范围为28个单元;
变址寻址方式
E=(R)+D,其中变址寄存器R为16位; 由于主存容量64K字,可直接寻址整个主存空间;
相对寻址方式
E=(PC)+D,可直接寻址整个主存空间;
4位
形式地址D 18位
64种操作
操作码占6位;
16个通用寄存器一个操作数和基址寄存器各占4位;
单字长指令 形式地址占32 – 6 – 4 – 4 = 18位;
操作数S的地址E =(R1)+D,其中R1为32位的;
若系统的地址总线≤32位,则可寻址整个主存;
若系统的地址总线>32位,则可寻址的最大存储空间为232+218
微型计算机原理-第4章(2)微机原理与接口技术(第三版)(王忠民)
西安邮电大学计算机学院 宁晓菊
第四章 80x86 指令系统(第二讲) 第一章 微型计算机系统导论(第一讲)
本讲主要内容
1 数据寻址方式之二: 存储器寻址方式
第四章 80x86 指令系统—存储器寻址方式
存储器寻址方式 存储器寻址方式的操作数存放在存储器单元中。因此,要存 取操作数就必须知道其存储器的单元地址。在指令中可以直接给出 或间接给出操作数的地址,以达到存取操作数的目的。
段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认 是SS;可用段超越前缀改变
第四章 80x86 指令系统—存储器寻址方式
(BX)
(DI)
EA= (BP) + (SI)
MOV AH, [BP][SI]
SS:40000H
M
BP: 2000H + SI: 1200H
43200H
……
AH
40000H
有效地址是寄存器内容与有符号8位或16位位移量之和,寄 存器可以是BX、BP或SI、DI 有效地址=BX/BP/SI/DI+8/16位位移量
段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是 SS;可用段超越前缀改变
第四章 80x86 指令系统—存储器寻址方式
MOV CL, [BX+1064H]
第四章 80x86 指令系统—存储器寻址方式
指令中给出的地址只是操作数的有效地址(EA),并且是 放在方括号(“[ ]”)中。若要从存储器中存取操作数还须 得到实际的地址(物理地址)。
物理地址=段基址左移四位+有效地址
物理地址=
CS
DS SS
× 10H
+ EA
ES
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、立即寻址
指令中给出的操作数就是实际操作数,不用寻址。
例:MOV A,#70H ;#表示立即数
二、直接寻址
指令中直接给出操作数存放的地址,直接就是结果地址。 例:ANL 70,#48H ;若(70H)=0FH,结果(70H)=?
说明:
1、内部RAM 2、特殊功能寄存器(SFR),而 且是唯一的方式 3、位地址空间
四、堆栈传送(2条)
Rn
Rn
MOV Rn, #Data MOV Rn, Direct MOV Rn, A
A
A
#Data #Data Direct
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
A, #Data A, Direct A, @Ri A, Rn Direct, #Data Direct, Direct Direct, @Ri Direct, A Direct, Rn @Ri, #Data @Ri, Direct @Ri, A
指令归纳(24条) 典型指令说明:
B
MUL AB DIV AB
ADD A, <X> ADDC A, <X> SUBB A,<X>
Rn
#Data
A
INC <X> DEC <X> DA A DPTR
INC DPTR Direct
@Ri
一
举例:
例1:A=85H, (20H)=AFH, C=1
执行 ADD A,20H和 ADDC A,20H 求:C= AC= P= OV= A= ? 例2:两个三字节二进制数相加。 (52H)(51H)(50H)←(32H)(31H)(30H)+(42H)(41H)(40H) 8C 2C 1D 35 97 98 56 94 85
3、 SWAP A; 高低半字节自交换 (1条)
高4位
低4位
堆栈操作指令(2条)
(1)PUSH direct 进栈或压栈 4 (2) POP direct 出栈或弹出 堆栈的概念 是一种存储器操作,按先进后出规则
3
2 1
另一种操作称队列,按先进先出规则
例:设初始输入序列为1,2,3,4,5,利用一栈操作产生一个 输出序列,下列哪一个序列是不可能通过栈操作产生的? A、1,2,3,4,5 C、4,3,2,1,5 B、5,3,4,1,2 D、3,4,5,2,1
MOV A, 30H
ADD A, 40H MOV 50H, A MOV A, 31H ADDC A, 41H
MOV A, 32H
ADDC A, 42H MOV 52H, A JC OVER
MOV 51H, A
DA A ;BCD码的加法调整, 1字节(D4H),1周期 IF[(A3-0)>9] OR [AC=1] THEN (A3-0)+6 AND IF[(A7-4)>9] OR [C=1] THEN (A7-4)+6 例3:两个三字节二进制数相加。 (52H)(51H)(50H)←(32H)(31H)(30H)+(42H)(41H)(40H) 92 92 83 35 97 98 56 94 85 MOV A, 30H ADD A, 40H DA A MOV 50H, A MOV A, 31H ADDC A, 41H DA A MOV 51H, A MOV A, 32H ADDC A, 42H DA A MOV 52H, A
第四章 指令系统
4.1 概述
指令系统:计算机所能识别和执行的所有指令的集合。
原始的指令格式和现行指令格式 第一个操作 第二操作数 操作码 数地址 地址
MCS-51总共有111条指令: 字 长 单字节指令 49条
结果数地 址
下一条指令 地址
时 间 1个机器周期指令 64条
双字节指令
三字节指令
45条
17条
SP→ 07 08 SP→ 09 0A 0B 0C
XX 10H 36H
(2)POP direct
2字节 2周期 D0H XXH SP→ 07 08 SP→ 09 0A 0B 0C XX 10H 36H
编码: 1101 0000 功能:进栈
direct (direct) ← (SP)
SP ←SP-1
编码: 1110 0101
direct
E5 XX
(3)MOV A,@Ri 1字节 编码: 1110 011i (4)MOV A,#data 2字节
; A ←((Ri))
1周期 i = 0,1 , E6H , E7H
A ←data(立即数)
1周期 74H XXH
编码:0111 0100 #data(8位)
2个机器周期指令
4个机器周期指令
45条
2条
举例: 1、单字节指令 MOV R0, A D7 1 D6 1 D5 1 D4 1 D3 1 ; R0← (A) D2 0 D1 0 注:()表取内容 D0 0 F8H
2、 双字节指令 MOV 20H,R0 ;20H←(R0)
D7 1 0 D6 0 0 D5 0 1 D4 0 0 D3 1 0 D2 0 0 D1 0 0 D0 0 0 操作码 88H
;与、或、异或
单操作数:CLR、CPL、RL、RLC、RR、RRC ;清零、取反、左移、带进位左移、右移、带进位右
移
左循环: RL A 带进位左循环:RLC A
右循环:RR A
带进位右循环:RRC A
高低四位交换:SWAP A
字节逻辑运算(24条)
单操作数:CLR、CPL 、RL、RLC 、RR、RRC Rn Direct 双操作数:ANL、ORL、XRL
操作:A(商),B(余数) A/B 对标志位的影响:C=0,若原来B=0则OV=1,否则OV=0 例5:A=58H, B=10H 执行:DIV AB
B= ?
08H
A= ?
05H
C= ?
0
OV= ?
0
4.3.3 逻辑运算 (36条)
字节逻辑运算(24条)
1、字节逻辑运算
位逻辑运算 (12条)
双操作数:ANL、ORL、XRL
Direct
@Ri
@Ri
片内字节传送 (15条)
片内字节传送指令举例 格式:MOV 〈目的字节〉,〈源字节〉 功能:传送位数据。〈目的字节〉←〈源字节〉
举例:
(1)MOV 1字节 编码: 1 1 0 1 A,Rn 1周期 1rrr E8H~EFH ;n=0~7 , A ←(Rn)
r r r 从 000~111 对应工作寄存器R0~R7 (2)MOV A,direct 2字节 1周期 ; A ←(direct)
举例:MOV C, 06H
@Ri @DPTR
MOVX A, @DPTR MOVX @DPTR, A MOVX A, @Ri MOVX @Ri, A ;外RAM低8位地址
A
外 RAM @Ri @DPTR
;高8位地址, MOV P2, X
2、访问程序存储器(内外统一) (2条)
MOVC A, @A+PC
MOVC A, @A+DPTR
例:设栈的状态如右图,执行 POP 20H POP 30H
问: (20H)= ? (30H)= ? SP= ? 及栈的变化。
举例:A=1FH,DPTR=0123H 主程序
PUSH A
PUSH DPL PUSH DPH LCALL S1 POP DPH 调用子程
POP DPL
POP A
4.3.2 算术运算
(1)PUSH direct 2字节 2周期 direct SP ←SP+1 C0H XXH
编码: 1100 0000 功能:进栈
(SP) ←(direct)
例:设A=10H,B=36H,SP=07H,执行 PUSH 0E0H PUSH 0F0H 问:A= ? B= ? SP= ? 及栈的变化。 仿真
操作数
20H
3、三字节指令 MOV 60H,#2FH ;60H← 2FH D7 D6 D5 D4 D3 D2 D1 D0
0
0 0
1
1 0
1
1 1
1
0 0
0
0 1
1
0 1
0
0 1
1
0 1
操作码
75H
操作数地址60H
操作数 2FH
4.2 寻址方式
将指令中操作数的形式地址→物理地址(或结果地址)的方式。 在MCS-51系统中有7种寻址方式: 1、立即寻址 5、变址寻址 2、直接寻址 3、寄存器寻址 4、寄存器间接寻址 6、相对寻址 7、位寻址
综合举例:
内部RAM:(30H)=40H; (40H)=10H; P1口上数据为CAH。 MOV R0, #30H
MOV A, @R0
MOV R1, A MOV B, @R1 MOV @R1, P1 MOV P2, P1 结果:(R0)= (R1)= (A)= (B)= (40H)= (P1)= (P2)=
六、相对寻址
专门为程序转移设置,(PC)+偏移量作为转移地址。 例: JC 10H ;若C=1转
1000 40 10 JC 10H 1002
…
1012
七、位寻址 在指令中直接给出位地址。
指令系统
指令系统:计算机所能识别和执行的所有指令的集合。
MCS-51总共有111条指令: 单字节(49条)、双字节(45条)、三字节(17条) 1机器周期(64条)、2机器周期(45条)、4机器周期(2条) MCS-51有7种寻址方式: 1、立即寻址 2、直接寻址 #Data Direct 5、变址寻址 6、相对寻址
MUL AB ;乘法,1字节(A4H),4周期 操作: (B)15-8(A)7-0 AB 对标志位的影响:C=0,若结果B=0则OV=0,否则OV =1 例4:A=50H, B=A0H