文档库 最新最全的文档下载
当前位置:文档库 › 4指令系统

4指令系统

4指令系统
4指令系统

4. 指令系统

4.1 算术运算及对标志位的影响

[实验目的]

(1)熟悉debug程序提供的常用命令;

(2)掌握机器指令的编写与执行过程;

(3)掌握算术运算指令的执行过程;

(4)掌握标志位的作用。

[实验要求]

编程进行相应的算术运算,并记录标志位的状态(以下内存单元均在数据段)。(1)41H+3BH,结果放在2000H单元中;

(2)AFH+7EH,结果放在2001H单元中;

(3)2FH-2FH,结果放在2002H单元中。

(4)F5H-3BH-9AH,结果放在2003H单元中;

(5)1FFFH+0001H,结果放在2004H和2005H两个单元中;

(6)1024H-50AFH,结果放在2006H和2007H单元中;

(7)无符号数24H与无符号数1AH相乘,结果放在2008H单元中;

(8)|-5|+8,结果放在2009H单元中。

(9)4567A9E1H+12346D2FH-789AH,结果放在200AH-200DH四个单元中;(10)02344652H+f0f0f0f0H,结果放在200EH-2011H四个单元中

[实验步骤]

(1)写出指令代码:例如41H+3BH;

MOV AH, 41

ADD AH, 3B

MOV [2000], AH

(2)在DEBUG下输入指令;

(3)运行程序,记录运行结果及标志位状态。

[相关问题]

(1)ADD指令与ADC指令的执行有何不同?

(2)算术运算会影响S、C、Z中哪几个标志位?

(3)用16位的寄存器如何完成32位的算术运算?

4.2 逻辑运算及对标志位的影响

[实验目的]

(1)掌握逻辑运算指令的执行过程。

(2)掌握标志位的作用。

[实验要求]

编程进行相应的逻辑运算,并记录标志位的状态(以下内存单元均在数据段)。(1)!00H,结果放在2000H单元中;

(2)5AH&A5H,结果放在2001H单元中;

(3)DFH|39H,结果放在2002H单元中;

(4)5AH?00H,结果放在2003H单元中;

(5)5AH⊕FFH,结果放在2004H单元中;

(6)用一条指令将AX寄存器中间4位置0;

(7)用一条指令将BX寄存器的高6位取反,其余位不变;

(8)用一条指令将DX寄存器的高3位置1,其余位不变;

[实验步骤]

(1)写出指令代码;

(2)在debug下输入指令;

(3)运行程序,记录运行结果及标志位状态,并完成实验报告。

[相关问题]

(1)标志位S、C、Z在何种情况下为1,在何种情况下为0?

(2)逻辑运算会影响S、C、Z中哪几个标志位?

(3)⊙、⊕运算如何用与、或、非运算实现?

4.3 循环程序的执行

[实验目的]

(1)熟悉循环的实现过程

(2)理解CX寄存器的作用

[实验要求]

将DS:2000开始的5个字节内存内容(依次赋初值为01H,02H,03H,04H,05H)相加,并把相加的结果存放在DS:2005内存单元中。

[实验步骤]

(1)写出指令代码;

(2)用命令a汇编程序段;

(3)运行程序,记录运行结果。

第4章指令系统层习题参考解答-汇编语言与计算机组成原理 答案

1.什么是“程序可见”的寄存器? 程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。 2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途? 基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。 通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。 3.80x86微处理器标志寄存器中各标志位有什么意义? 常用的7位: CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。在移位类指令中,CF用来存放移出的代码(0或1)。 PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。 当操作结果的最低位字节中1的个数为偶数时置1,否则置0。 AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。 ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。 SF符号标志:其值等于运算结果的最高位。 如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。 OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。 DF方向标志: 用于串处理指令中控制处理信息的方向。 当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。 4.画出示意图,简述实模式下存储器寻址的过程。 20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址 5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。 采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。

第四章指令系统习题参考答案

1.ASCll码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?为什 么? 解:指令字长设计为12位不是很合理。主存单元字长为32位,一个存储单元可存放4个ASCII 码, 余下4位可作为ASCII码的校验位(每个ASCII码带一位校验位),这样设计还是合理的。 但是,设计指令字长为12 位就不合理了,12位的指令码存放在字长32位的主存单元中,造成19位不能用而浪费了存储空间。 2.假设某计算机指令长度为20位,具有双操作数、单操作数、无操作数三类指令形式,每个操作数地址规定用6位表示。问: 若操作码字段固定为8位,现已设计出m条双操作数指令,n条无操作数指令,在此情况下,这台计算机最多可以设计出多少条单操作数指令? 解:这台计算机最多可以设计出256-m-n条单操作数指令 3.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 单字长二地址指令;

② 操作码OP可指定=64条指令; ③ RR型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16个寄存器 之一); ④ 这种指令格式常用于算术逻辑类指令。 4.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 双字长二地址指令;

② 操作码OP可指定=64条指令; ③ RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中; ④ 有效地址通过变址求得:E=(变址寄存器)± D,变址寄存器可有16个。 5.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 单字长二地址指令;

第四章指令系统习题参考答案

1.ASCll 码是7位,如果设计主存单元字长为32 位,指令字长为12位,是否合理?为什么? 解:指令字长设计为12 位不是很合理。主存单元字长为32 位,一个存储单元可存放4 个ASCII 码,余下4 位可作为ASCII 码的校验位(每个ASCII 码带一位校验位),这样设计还是合理的。但是,设计指令字长为12 位就不合理了,12 位的指令码存放在字长32 位的主存单元中,造成19 位不能用而浪费了存储空间。 2. 假设某计算机指令长度为20 位,具有双操作数、单操作数、无操作数三类指令形式,每个操作数地址规定用6 位表示。问: 若操作码字段固定为8位,现已设计岀m条双操作数指令,n条无操作数指令,在此情况下,这 台计算机最多可以设计出多少条单操作数指令? 解:这台计算机最多可以设计岀256-m-n 条单操作数指令 3.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ①单字长二地址指令;

②操作码OP 可指定=64 条指令; ③RR 型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16 个寄存器 之一); ④这种指令格式常用于算术逻辑类指令。 4 .指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ①双字长二地址指令; ②操作码OP 可指定=64 条指令; ③RS 型指令,两个操作数一个在寄存器中(16 个寄存器之一),另一个在存储器中; ④有效地址通过变址求得:E= (变址寄存器)± D ,变址寄存器可有16 个。 5 .指令格式结构如下所示,试分析指令格式及寻址方式特点。

第四章指令系统习题参考答案

1. ASCll 码是 7 位,如果设计主存单元字长为 32 位,指令字长为 12 位,是否合理?为什 么? 解:指令字长设计为 12 位不是很合理。主存单元字长为 32 位,一个存储单元可存放 4 个 ASCII 码, 余下 4 位可作为 ASCII 码的校验位(每个但是,设计指令字长为 12 位就不合理了, ASCII 码带一位校验位),这样设计还是合理的。 12 位的指令码存放在字长 32 位的主存单元中, 造成 19 位不能用而浪费了存储空间。 2. 假设某计算机指令长度为20 位,具有双操作数、单操作数、无操作数三类指令形式,每个操 作数地址规定用 6 位表示。问: 若操作码字段固定为 8 位,现已设计出 m 条双操作数指令, n 条无操作数指令,在此情况下,这 台计算机最多可以设计出多少条单操作数指令? 解:这台计算机最多可以设计出 256-m-n 条单操作数指令 3.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 单字长二地址指令; ② 操作码 OP 可指定 =64 条指令; ③ RR 型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定 16 个寄 存器 之一); ④ 这种指令格式常用于算术逻辑类指令。 4.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 双字长二地址指令; ② 操作码 OP 可指定 =64 条指令; ③ RS 型指令,两个操作数一个在寄存器中( 16 个寄存器之一),另一个在存储器中; ④ 有效地址通过变址求得: E=(变址寄存器)± D ,变址寄存器可有 16 个。

第4章指令系统(考研组成原理)

4.1.2习题精选 一、单项选择题 1.以下有关指令系统的说法中错误的是( )。 A.指令系统是一台机器硬件能执行的指令全体 B.任何程序运行前都要先转化为机器语言程序 C.指令系统是计算机软件、硬件的界面 D.指令系统和机器语言是无关的 2.在CPU执行指令的过程中,指令的地址由( )给出。 A.程序计数器PC B.指令的地址码手段 C.操作系统D.程序员 3.下列一地址运算类指令的叙述中,正确的是( ) A.仅有一个操作数,其地址由指令的地址码提供 B.可能有一个操作数,也可能有两个操作数 C.一定有两个操作数,其中一个操作数是隐含的 D.指令的地址码字段存放的一定是操作码 4.运算型指令的寻址与转移型指令的寻址不同点在于( )。 A.前者取操作数.后者决定程序转移地址 B.后者取操作数,前者决定程序转移地址 C.前者是短指令,后者是长指令 D.前者是长指令,后者是短指令 5.程序控制类指令的功能是( )。 A.进行算术运算和逻辑运算B.进行主存与CPU之间的数据传送 C.进行CPU和I/O设备之间的数据传送D.改变程序执行的顺序 6.下列哪种指令不属于程序控制指令( )。 A.无条件转移指令B.条件转移指令 C.中断隐指令D.循环指令 7.下列哪种指令用户不准使用( )。 A.循环指令B.转换指令 C.特权指令D.条件转移指令 8.零地址的运算类指令存指令格式中不给出操作数的地址,参加的两个操作数来自( )。A.累加器和寄存器B.累加器和暂存器 C.堆栈的栈顶和次栈顶单元D.堆栈的栈顶单元和暂存器 注意:堆栈指令的访问次数,取决于采用的是软堆栈还是硬堆栈。如果是软堆栈(堆栈区由内存实现),对于双目运算,需要访问4次内存:取指、取源数1、取源数2、存结果;如果是硬堆栈(堆栈区由寄存器实现),则只需在取指令时访问一次内存。 9.以下叙述错误的是( )。 A.为了充分利用存储空问,指令的K度通常为字节的整数倍 B.单地址指令是固定长度的指令 C.单字长指令可加快取指令的速度 D.单地址指令可能有一个操作数,也可能有两个操作数 10.单地址指令中为了完成两个数的算术运算,除地址码指明一个操作数外,另一个数采用( )方式。 A.立即寻址B.隐含寻址 C.间接寻址D.基址寻址

第四章 指令系统

第四章 指令系统 一、本章主要内容 内 容 要 求 指令格式(含定长操作码指令格式和扩展操作码指令格 式) ***** 寻址方式(数据寻址和指令寻址,常见寻址方式的特点 和表示方法) ***** CISC 和RISC 的基本概念 * 二、知识结构 三、具体内容介绍 (一) 指令格式 1. 指令的基本格式:机器内部的指令格式由两大字段组成,操作码和操作数; ● 操作码规定本条指令所要进行的操作或完成的功能; ● 操作数字段给出本条指令操作的数据对象以及下一条将要执行的指令的地址,操作数字段有可能包含寻 址方式字段。 ● 指令系统中各指令的长度可以相同,也可以不同,一般取机器字长的倍数。 2. 定长操作码指令格式:所有指令的操作码位数相同。 重点掌握内容:操作码位数和指令总统所含指令条数的关系。n 位操作码,指令系统最多2n 条指令;反之,指令系统有n 条指令,至少log 2n 位操作码。 寻址方式 存储器寻址 定长操作码 不定长操作码 操作码 指 令 格 式 操作数 操作数的个数 立即数寻址 直接寻址 间接寻址 寄存器间接寻址 变址寻址 寄存器寻址 系统寻址 基址寻址 操作码 寻址1 数1 …… 寻址I 数i …… 寻址n 数n

3. 扩展操作码指令格式 在高级语言中,各语句的使用频率相差较大,比如C语言中,goto语句是限制使用的,一般程序不会使用goto语句,而几乎所有的程序都需要多次使用赋值语句。同样,指令系统中各条指令的使用频率也不一定相同,定长操作码指令给所有指令分配相同位数的操作码,使得极少使用的指令和经常使用的指令具有相同位数的操作码,对操作码的译码效率会产生影响。扩展操作码指令格式将根据指令的使用频率不同,分配不同位数的操作码,以提高指令系统的整体译码速度。比如使用频率高的指令操作码位数较短,使用频率低的指令操作码位数长一些。 二指令的寻址方式 指令的寻址方式指确定本条指令中所有操作数的地址以及下一条将要执行的指令的地址的方法。 1. 形式地址和有效地址 通常,指令中的操作数的位置有:指令中、内存中、CPU的寄存器中或者I/O接口中,所以指令中的操作数字段提供的值称为形式地址,把按照约定的寻址方式计算得到的地址称为有效地址。 2. 数据寻址及常见寻址方式 数据寻址:确定本条指令中所有操作数的地址,即寻找指令将要操作的数据的方法,常见数据寻址方式如下所示: 立即数寻址:指令的操作数字段给出的是操作数本身(操作数在指令中)。这是最简单最直接的寻址方式,执行指令时,数据随指令由内存读入CPU。 优点:简单、明确、速度快 缺点:由于操作数字段的位数是有限的,所以立即数表示数的范围也是有限的。比如每个操作数占6位,则无符号数的表数范围是0--63,有符号数的表数范围是-32---+31。 所以立即数寻址方式只适合操作数较小的情况,大一些的操作数无法应用。 直接寻址:操作数在内存,指令的操作数字段给出的是操作数的内存地址。执行指令时,指令由内存读入CPU后,再按照直接寻址字段给出操作数的内存地址读一次内存,即可将数据从内存 读入CPU。 优点:由于操作数在内存,操作数所占的内存单元数由数据的类型决定,所以数据的范围可以较大。比如操作数字段占6位,对应数据为16位,则无符号数的表数范围是 0--65535,有符号数的表数范围是-32768---+32767。 缺点:由于操作数字段的位数是有限的,所以操作数可存放的内存地址的范围也是有限的。 比如每个操作数占6位,操作数只可在0-63内存单元存放。所以直接寻址中操作数 的存放位置有限,可定义的操作数的个数就受限。 间接寻址:操作数在内存,指令的操作数字段给出的是操作数的内存地址所存放的内存单元地址,即操作数字段给出的是操作数的地址的地址。执行指令时,指令由内存读入CPU后,再按照 间接寻址字段给出操作数的内存地址的内存地址读一次内存,可得到操作数的内存地址, 按照这个地址再读一次内存,即将数据从内存读入CPU。 优点:由于操作数在内存,操作数所占的内存单元数由数据的类型决定,所以数据的内存地址以及范围可以较大。比如操作数字段占6位,内存单元均以16位为单位读写, 则对应操作数的内存地址占16位,则操作数的可存放地址范围是0—65535;对应

相关文档
相关文档 最新文档