《《机器指令系统》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《机器指令系统》PPT课件.ppt(40页珍藏版)》请在人人文库网上搜索。
1、机器指令系统课件 制作: 钱光明,主要内容:1 1、基本概念; 2、指令格式; 3、寻址方式; 4、相关重要硬件(PC、 PSW、及堆栈); 5、典型指令系统;,1. 基本概念 指令:要计算机执行的某种操作命令。 指令系统:一般指一台计算机中所有机器指令 的集合。 它是机器硬件设计的依据,也是软件设计的基础。是硬件和软件间的界面。 系列计算机:ARM, IBM,PDP-11,VAX-11,Intel CISC-复杂指令系统计算机 RISC-精简指令系统计算机 注: 本章下面谈到的指令均指机器指令.,考研真题*: (2009年)17、下列有关RISC的叙述中,错误的是 A . RISC普遍采用微。
2、程序控制器 B. RISC大多数指令在一个时钟周期内完成 C. RISC的内部通用寄存器数量相对CISC多 D. RISC的指令数、寻址方式和指令格式种类相对CISC少.,一个指令系统一般应考虑: 1).完备性:指令丰富,功能齐全,使用方便。 2).有效性:程序占空间小,执行速度快。 3).规整性:对称性,匀齐性,指令格式和数据格式的一 致性。 4).兼容性: “向上兼容”-系列机中低档机上运行的软件可以在高档机上运行。,三星S3C2440指令举例: LDR R0, R1, #4; R0 (R1)+4 ADD R0, R0,#0 x11; R0 (R0)+0 x11 注意重要硬件-寄存器。,麓。
3、芯1号指令举例: MOV R0, R1; (R0)R1 000110 10 000 10 001 ADD R0, R1; (R0)+ (R1) R1 000111 10 000 10 001 注意重要硬件-寄存器。,2. 指令格式 表示一条指令的机器字,称为指令字,简称指令。 它以二进制代码存往指令寄存器(重要硬件)。 指令字的组成: 操作码(OPCODE)+地址码(Address code) 和/或称操作数(OPERAND) 指令字的长度:定长 或变长 2.1操作码(OP)-操作的性质 1)指令系统中的每条指令都要对应一个操作码; 2)OP的位数取决于指令系统的规模;,2.2 地址码(Add。
4、ress code)和/或操作数 1) 按地址的数目可分为: 三地址指令 OP A1 A2 A3 (A1)OP(A2) A3 二地址指令 OP A1 A2 (A1)OP(A2) A1 一地址指令 OP A (AC)OP(A) AC 注意重要硬件AC 零地址指令 OP 只有OP,无地址码。如停机,空操作,堆栈指令等。 2)从操作数的物理位置分: 访问内存 访问寄存器 访问内存和寄存器型,为什么一般少设计三地址指令?,2.3 指令格式举例 1).PDP-11指令格式 单字长格式 10 3 3 寻址方式 寄存器号 4 3 3 3 3 源操作数 目的操作数 2). 8088/8086指令格式(略),3。
5、. 寻址方式(Addressing Mode) 所谓寻址方式,就是寻找指令或操作数的有效地址 的方式。 3.1 指令的寻址方式 1)顺序寻址 程序指令在主存中顺序存放; 执行时逐条取出并逐条执行; CPU中必须有一个程序计数器PC(或指令指针IP), 每执行一条指令,PC加 1(或2或一个其它固定值),以指出下条指令的地址。 注意重要硬件PC。,指令顺序寻址过程: 程序(指令)内存:,101,100,PC:,100,:,+1,:,2)跳跃寻址 当程序中出现分支或循环时,就会改变程序的执行顺序。下条指令的地址由指令本身给出。,3.2 操作数的寻址方式 形成操作数有效地址的方法。 单地址: 操作码。
6、 特征码 形式地址 双地址: 操作码 特征码1 形式地址1 特征码2 形式地址2 机型不同,寻址方式各异.,地址码的构成: X, D,OP,X1,D1,X2,D2,1)立即寻址 地址码字段不是操作数的地址, 而是操作数本身。 例1:8086机 MOV AX, 2038H ;2038HAX 例2:PDP-11机 ADD #200, R0 ;(R0)+200 R0 注意重要硬件: 通用寄存器,2)寄存器(直接)寻址(Register Addressing) 操作数在CPU的内部寄存器中。 例1:8086机 MOV AX, BX; AX(BX) INC AX; AX(AX)+1 例2:PDP-11机。
7、 MOV R1, R0 ;(R1)R0 INC R1; (R1)+1R1,3)(存储器)直接寻址(Direct Addressing) 由地址码字段直接给出操作数在内存中的地址。 一般形式举例: E=D,编码举例: X=00 立即寻址 X=01 寄存器寻址 X=10 直接寻址 X=11 间接寻址,4). 间接寻址(Indirect Addressing),D是操作数地址的地址 E=(D) (存储器)间接寻址举例:,(寄存器)间接寻址举例: PDP-11指令: ADD (R0), R1; (R0)+(R1)R1,5). 相对寻址(Relative Addressing),D加(PC) 作为操作数。
8、的地址.,PC,6).变址寻址(Index Addressing),一个特殊寄存器R,称为变址寄存器. R,OP,X4,200,3000,操作数,R,3200,7).基值寻址(Base Addressing),与变址类似. 基值 (变址)寻址的主要作用: 扩大寻址能力;-基值寻址 实现程序和数据的浮动; -基值寻址 易于用循环程序处理数组问题; -变址寻址 变址与基值寻址的不同之处*: 基值寻址: (多由OS提供)基值R提供基准量,指令提供位移量; 变址寻址: (多由用户提供)变址R提供修改量,指令提供基准量.,8).复合寻址(Composite Addressing),将间址、相对、变址和基。
9、值等组合. 变址间址举例:先变址,后间址.,R,考研真题*: (2009年)16、某计算机的字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第一字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功以后的目标地址是 A2006H B. 2007H C. 2008H D. 2009H.,4. 堆栈及程序状态字PSW,4.1堆栈-存放程序运行轨迹的特殊单元区. 一组专门的寄存器.或是一块专门的内存区. 特点:后进先出。 下面只讲存储器堆栈: 用一部分主存空间专作堆栈.。
10、 优点: a.长度可随意; b.堆栈的数目可随意指定; c.寻址简单-用访内指令.,重要硬件支持: SP(stack pointer)-堆栈指示器(栈指针),CPU中一个专门寄存器. SP的内容是栈顶的单元地址,改变SP的内容即可移动栈顶的位置. 注意:主存中某一部分作为堆栈区后,该部分不能作其它用途.,一种堆栈方式: 进栈举例: PUSH R; (R)(SP),(SP)-1SP,R,出栈举例: POP R; (SP)+1SP ,(SP) R,R,另一种堆栈方式: 8086 堆栈指令 例:PUSH AX 分两次完成:(SP) 1 SP,(AH) (SP); (SP) 1 SP, (AL) (S。
11、P); POP AX 分两次完成:(SP) AL , (SP) +1 SP; (SP) AH , (SP) +1 SP;,进栈举例: PUSH AX;,108,107,106,108,SP,AX,1234,出栈举例: POP AX;,AX,SP,108,107,106,12,34,106,偶数地址表示举例:,本机型(80X86)SP始终指向“满”单元。,关于堆栈要注意两点: 是“向下增长”还是“向上增长”; SP是指向“满”单元还是指向“空”单元。,4.2.程序状态字PSW(Program Status Word) 状态条件寄存器(PSW程序状态字):存放机器和程序运行的当前状态. 以8086。
12、为例: 8086 标志寄存器FR(Flag Register) O 溢出 D 方向 I 中断允许 T 追踪 S 符号 Z 零 A 辅助进位 P 奇偶 C 进位,以PDP-11为例: C;产生进位或借位时,C置为1,否则置0;Carry V:运算产生溢出时,V置为1,否则置0;Overflow Z:运算结果为零时,Z置为1,否则置0;Zero N:运算结果为负时,N置为1,否则置0;Negative T:跟踪标志位,程序调试时用来设置断点; 57位:这3位反映现行程序的优先级别。,5. 典型指令系统 5.1 8088/8086 1).数据传送类 取数 MOV AX,TEMP 存数 MOV TEM。
13、P,AX 传送 MOV AX,CX 2).算术运算类 ADD,ADC, SUB, INC,DEC, MUL,DIV等. 求补 NEG,比较 CMP等. 3).逻辑运算类 NOT,AND,OR,XOR等.,注意次序是从“右”到“左”,4).移位指令-(下页有例子*) 算术移位、逻辑移位(及循环移位)。SHR SAR ROR RCR 5).程序控制类 无条件转移 JMP; 转子程序 JSR 条件转移 JNZ JNC JZ JC 子程序返回 RET 中断返回 IRET 6).输入/输出类 IN AX,n OUT n, AX 7).其他类 标志操作:CLC(clear carry flag) STC 。
14、(set carry flag) CLI (clear interrupt elable flag) HLT,WAIT等,注意PDP-11无IN和OUT指令,移位指令举例*: 例1:MOV CL, 5; 设定移位次数 SAR DI, CL; 算术右移 设指令执行前:(DS)=0F800H, (DI)=180AH, (0F980A)=0064H. 则指令执行后:(0F980A)=0003H,CF=0. 例2:MOV CL, 2; 设定移位次数 SHL SI, CL; 逻辑左移 设指令执行前: (SI)=1450H. 则指令执行后: (SI)=5140H ,CF=0.,5.2 PDP-11指令 常。
15、见英文缩写: BNE: Branch Not Equal BEQ: Branch on Equal BPL: Branch on Plus BMI: Branch on Minus BGT: Branch on Greater BLT: Branch on Less Than Zero BR: Branch RTS: Return from Subroutine,注意传数次序是从左到“右”,PDP-11程序段举例* R0=%0 ;0赋值给R0 R1=%1 R2=%2 R3=%3 ;循环变量 =500 DATA:WORD A, B, C, D, S START:MOV #3, R3 MOV #DATA, R0 ;开始AR1 MOV(R0+, R1 M: ASL R1 ;开始第一次A*10 MOV R1, R2 ; R1 R2 ASL R1 ASL R1 ADD R2, R1 ; ADD(R0)+, R1 ;A*10+B DEC R3 BNE M MOV R1,(R0) ;放结果 HALT END START,注意传数次序是从左到“右”,* 次数:1357533 已用完,请联系开发者。