计算机组成原理 指令

计算机组成原理 指令
计算机组成原理 指令

8086/8088指令

除串操作指令外,所有指令只允许有一个操作数在存储器中。

1. 传送类指令

(数据传送指令,专用累加器传送指令,标志位传送指令,地址传送指令)(一)数据传送指令

(1) MOV数据传送指令

指令格式:MOV DST,SRC;

操作数可以是字节、字,源、目的操作数位数必须一致且不能同时在存储器中。源操作数:可在通用R、段R、存储器中、或为立即数。

目的操作数:不能为立即数。

目的地址是段R名时,源操作数不能是立即数(立即数不能直接传给段R)段R 间不能直接传送数据。

例 1:立即数送R或存储单元

? MOV AH,2AH;字节传送;

? MOV CX,1234H;字传送;

? MOV DA_BYTE, 02FH; 字节传送;

? MOV DA_WORD,1020H; 字传送;

例 2: 寄存器之间传送 MOV AL, BL; MOV ES, AX;

例 3:R 与 M 之间传送。 MOV AL, DB_BYTE

例 4: 把DA_BYTE1字节单元内容传送到DA_BYTE2字节单元中。

MOV AH, DA_BYTE1

MOV DA_BYTE2, AH

例 5: 把立即数1020H传送给DS ,ES。

MOV AX , 1020H

MOV DS , AX

MOV ES , AX

(2)XCHG交换指令

XCHG DST, SRC

(SRC DST) 将源地址的内容与目的地址内容相互交换。

交换数据可为字、字节,只能在通用R之间或R 与M 之间进行。不能使用段R、立即数。

例、数据段中定义了两个字变量VAR1和VAR2,(VAR1)= 1234H,(VAR2)= 5678H;将这两个字单元内容互换。

MOV AX,VAR1 XCHG VAR2,AX MOV VAR1,AX(或:XCHG VAR1,AX)

(3)PUSH进栈指令格式:PUSH SRC

<1> 8086的堆栈由SS指定的一段存储器( 64KB)构成。

自下向上生成的堆栈。 SP初始化:堆栈段长(MAX:FFFFH)

SP初始值指向:(SS)*16 + 段长;(即:栈底+2单元

<2> 8086/8088堆栈规定:以字(2个字节)为单位进行存取。

低地址存放字的低字节单元的内容;高地址存放字的高字节单元的内容。

<3> 堆栈操作:

设置堆栈:对堆栈段R(SS)及堆栈指针(SP)赋初值。编程设置堆栈段。(4)POP出栈指令格式:POP DST

(5)、IN(input)输入指令

1、直接I/O端口寻址方式:

IN AL,pn (字节) IN AX,pn (字)

指令功能:AL/AX ←(pn);其中:pn表示I/O端口地址(或称作:I/O端口号)。

2、间接I/O端口寻址方式:

IN AL,DX (字节) IN AX,DX (字)

指令功能:AL/AX ←(DX);其中:DX中的内容为I/O端口地址。

例、把I/O端口379H的字节内容传送到主存数据段的VARBYTE字节单元中。

MOV DX,379H

IN AL,DX

MOV VARBYTE,AL

(6)OUT(output)输出指令

1、直接I/O端口寻址方式:

OUT pn,AL (字节) OUT pn,AX (字)

指令功能:pn ←(AL/AX);其中:pn表示I/O端口地址(或称作:I/O端口号)。

2、间接I/O端口寻址方式:

OUT DX,AL (字节) OUT DX,AX (字)

指令功能:DX ←(AL/AX);其中:DX中的内容为I/O端口地址。

例、把主存数据段的VARBYTE字节单元中的内容传送到I/O端口230H中。

MOV DX,230H

MOV AL,VARBYTE

OUT DX,AL

(7)XLAT(translate)换码指令

指令格式:XLAT [TABADDR]

指令功能:AL ←((BX)+(AL))

其中: [TABADDR]中的方括号表示本项内容可以省略,TABADDR表示换码表首地址的符号地址。BX的内容为换码表的首地址在数据段中的偏移量,AL的内容是相对于表格首地址的偏移量。

例、把十进制数“3”转换为相应的ASCII码。

在主存的数据段设置一个转换表,内容为0~9的ASCII码(30H~39H),表名为TAB1,位于数据段偏移2字节处,假定(DS)=1200H。可用下述指令完成转换:

MOV BX,0002H

MOV AL,3

XLAT TAB1

指令执行后,(AL)=33H,即:十进制数“3”的ASCII码。

(二)标志位传送指令对标志位进行存取操作,无操作数

(1)取标志指令LAHF:将标志R的低八位传送到AH中。

(2)存标志指令SAHF:将AH内容传送给标志R的低八位。

(设置或恢复SF、ZF、AF、PF、CF,对高八位无影响)。

例:将标志R的低8位清0 。

MOV AH ,00H; SAHF

(3)标志R进栈指令:PUSHF

16位标志R内容送SP所指栈顶字单元中。

(4)标志R出栈指令:POPF

栈顶字单元内容弹出到标志R中。

(三)地址传送指令

将存储器操作数的地址(偏移量、段基值)传送给R。

(1)装入有效地址指令

LEA DST,SRC;将源OP数的有效地址(偏移量)传送到目的地址中。

例: LEA SI ,BUF;

?源操作数须是存储器操作数(可以是字节也可以是字) 。

?目的操作数只能是16位通用R。

(2)装入地址指针指令(LDS/LES)

存储单元的地址指针:4个字节

段基值:存于2个高字节单元中

偏移量:存于2个低字节单元中

指令功能:从存放地址指针的4个字节存储单元中,同时取出段基值和偏移量,分别送到段R(DS/ES)和通用R中。

LDS DST ,SRC; 从存放地址指针的4个单元中,同时取出

?LES DST ,SRC; 段基值→ DS(ES) 偏移量→通用R

SRC: 存储器OP数 DST: 16位通用R

例: LDS SI, ADDR_TABLE[BX];

? DS:ADDR_TABLE[BX]中存放的偏移量→ SI,新的段基值→ DS。

2、算术运算类指令

(一)加法运算指令

(1)加法指令

指令格式: ADD DST, SRC; (SRC)+(DST) → DST

设置标志寄存器的OF、SF、ZF、AF、PF、CF标志位。

源操作数:可在通用R、存储单元中,或为立即数。

目的操作数: 在通用R或存储单元中。

(2)带进位加法指令

指令格式:

ADC DST,SRC; (SRC)+(DST)+CF → DST (主要用于大于16位数的加法运算)

例:32位无符号数存放在DX(高16),AX(低16位)中,若要加上常数76F1A23H,则用下述指令实现: ADD AX,1A23H

ADC DX,76FH;(将低16位进位加上)

(3)加“1”指令: 指令格式:INC DST;(不影响CF)

(DST)+1 → DST (OP数:字、字节、无符号数 ) 只能在通用寄存器或存储单元中,不能是立即数。主要用于计数或修改地址指针。(二)减法运算指令

(1)减法指令

指令格式: SUB DST , SRC; (DST)-(SRC) → DST

例:SUB AL,DA_BYTE;

(AL)-(DA_BYTE) → AL

(2)带借位减法指令指令格式: SBB DST, SRC; (DST)-(SRC)-CF → DST (3)减“1”指令指令格式: DEC DST;

(DST)-1 → DST(不影响CF) (OP数:字、字节、无符号数 )

只能在通用寄存器或存储单元中,不能是立即数。

主要用于计数或修改地址指针。

(4)求负数指令指令格式: NEG DST; 0-(DST) → DST

?字节操作数:-128;字操作数:-32768;执行NEG后,操作数不变,OF置“1”。

?操作数为0,NEG后仍为0,CF置0;否则CF置1。

例: (AL)=25H=(00100101)2

? NEG AL; (AL)=DBH=(11011011)2

(5)比较指令

指令格式: CMP DST,SRC; (DST)-(SRC) →置标志位 ,不保留两数相减结果若:ZF=1,则(DST)=(SRC)

无符号数: CF=0:(DST)≥(SRC);

带符号数: OF=SF:(DST)>(SRC); OF≠SF:(DST)<(SRC);

(三)乘法指令

(1)无符号数乘法指令

指令格式: MUL SRC ; (另一操作数在AL或AX中)

?字节无符号数相乘:(SRC)*(AL) → AX;

? AH为全0 , CF=OF=0; 否则:CF=OF=1 ;

?字无符号数相乘 :(SRC)*(AX) → DX: AX;

? DX为全0, CF=OF=0;否则: CF=OF=1;

?只影响CF,OF标志位。

例: 两个字节存储单元BYTE1、BYTE2内容(无符号数)相乘,乘积放在字单元PROC 中。 MOV AL,BYTE2

MUL BYTE1

MOV PROC,AX

(2)带符号数乘法指令

指令格式:IMUL SRC;

操作数及乘积均带符号,且用补码表示。若乘积的高半字AH(字节乘法)、或DX(字乘法)不是低半部的符号扩展,则为乘积的符号和有效数:CF=OF=1;否则,CF=OF=0。(四)除法指令

(1)无符号数除法指令指令格式: DIV SRC;

SRC存除数,8位(字节)或16位(字)

字节除法:(AX)/(SRC) → AL, 余数→ AH

字除法:(DX:AX)/(SRC) → AX, 余数→ DX

当:除数为0,即(SRC)=0 ;或商溢出:即(AL)>0FFH 或 (AX)>0FFFFH ;

产生0型中断(除法出错中断)。

(2)带符号数除法指令指令格式: IDIV SRC

操作数、商及余数均带符号且用补码表示。

当除数为0 或商超出最大值或最小值时,产生0型中断。

最大正数商:+127(字节),+32767(字) 最小负数商:-128(字节), -32768(字) (五)类型转换指令

指令格式:CBW/CWD;隐含使用AH/DX

CBW :扩展AL中的符号位至AH中

CWD:扩展AX中的符号位至DX中

例: 两个8位带符号数存于BYTE1,BYTE2字节单元中,将BYTE1除以BYTE2,商放

入QUOT字节单元中。

MOV AL , BYTE1 CBW IDIV BYTE2 MOV QUOT , AL

3.逻辑运算类指令

(一)逻辑运算指令(按位进行逻辑运算)

指令格式:

逻辑与:AND DST ,SRC; SF,ZF,PF 逻辑或:OR DST,SRC;

按结果设定逻辑异或:XOR DST,SRC; CF,OF总为0 AF不确定

逻辑非指令:NOT DST; 对标志位无影响

例: (AL)=10100101, AND AL,0FH 指令运算结果:

( AL ) = 10100101

∧ 0F = 00001111

——————————

00000101 → AL

标志位:SF=0,ZF=0,PF=1

例:AL中最高位置1; OR AL ,80H

例: AL中最低位求反; XOR AL ,01H

(二)测试指令

指令格式: TEST DST, SRC; 按位与,结果不送DST(同AND)影响 SF,ZF,PF。

例:测试AL的第3位是否为0;TEST AL,08H; ZF=1: 则为0 ZF=0: 则不为0

(三)移位指令 (8条,对R或M中的操作数进行指定移位)

(1)算术移位指令

指令格式:算术左移:SAL DST , COUNT 算术右移:SAR DST, COUNT

(2)逻辑移位指令

指令格式:逻辑左移:SHL DST ,COUNT 逻辑右移:SHR DST, COUNT

(3)循环移位指令

指令格式:循环左移:ROL DST ,COUNT 循环右移:ROR DST, COUNT

带进位循环左移: RCL DST , COUNT 带进位循环右移: RCR DST , COUNT

注意: DST: R或M ; 字或字节;

COUNT: 移位次数;

COUNT=1:可用“1”代替。

COUNT≠1:用CL代替。

左、右移中移出的位均送CF中。算术/逻辑移位: 修改 OF,ZF,SF,PF,CF。

循环移位:修改OF,CF。只移一位且移位前后操作数的符号位发生变化:OF=1,否则

OF=0。若移位位数大于1,则OF不定。

例1:AX中存放一带符号数,完成(AX)*3/2运算。

例2: 把存放在M+4,M+2,M 三个字单元中的一个无符号数右移一位。

例1 MOV DX, AX 例2 SHR M+4,1 SAL AX , 1; 乘2 → AX RCR M+2,1 ADD AX, DX; 乘3 → AX RCR M ,1 SAR AX, 1 ; (AX)*3/2

4、控制转移类指令

(一)无条件转移指令JMP 目标地址

(二)条件转移指令JXXX 目标地址

指令功能:

测试条件满足:IP ←(IP)+ 8位位移量

其中:(IP)的值为JXXX指令下一条指令的地址,8位位移量采用补码表示;

测试的条件满足,则转到目标地址执行

测试的条件不满足,则顺序执行下一条指令

(三)CX寄存器的值测试转移指令

指令格式:JCXZ 目标地址

指令功能:测试 CX内容,(CX)=0,转到目标处,否则,顺序执行。

(四)循环控制指令位移量是8位二进制以补码表示的带符号数。

(1)LOOP指令格式:LOOP 目标地址

功能:循环次数(CX)-1 CX;(CX)不为零,继续循环,转到目标处,否

则,顺序执行。

(2)LOOPE/LOOPZ指令格式: LOOPE/LOOPZ 目标地址功能:循环次数(CX)-1 → CX;若(CX)不为零,且ZF=1,转到目标处,继续执行,否则((CX)=0或ZF=0),顺序执行。

(3)LOOPNE/LOOPNZ指令格式: LOOPNE/LOOPNZ 目标地址功能:循环次数(CX)-1 →CX;(CX)不为零,且ZF=0,转到目标处,继续执行,否则((CX)=0或ZF=1),顺序执行。

(五)子程序的调用与返回指令

(1)CALL调用子程序指令CALL 目标地址返回地址入栈转移到(过程名所代表的)入口地址

CALL SUB1

CALL BX

CALL WORD PTR [BX]

(2)RET从子程序返回指令指令格式:RET [PARA]

过程返回地址从栈中弹出到 IP (CS)中返回原来的调用点

(六)中断子程序的调用与返回指令

(1)INT软中断指令指令格式:INT n (其中:n为中断类型码)指令功能: PUSHF,TF、IF清0,CS、IP入栈按中断类型码n,从中断向量表对应位置取出将要调用的功能子程序的入口地址→CS,IP

(2)IRET从中断子程序返回指令指令格式:IRET

指令功能:从中断子程序返回断点

5、处理器控制类指令

(一)标志位处理指令

(1)清除进位标志指令 CLC:置CF=0(2)进位标志置位指令STC:置CF=1 (3)进位标志取反指令CMC: CF取反(4)清除方向标志指令CLD:置DF=0 (5)方向标志置位指令STD:置DF=1 (6)清除中断标志指令CLI:置IF=0 (7)中断标志置位指令STI:置IF=1

(二)处理器控制指令

(1)HLT :停机指令(2)WAIT:等待指令(CPU等待外部事件就绪达到同步目的) (3)ESC:换码指令,外部协处理器指令的前缀

(4)LOCK:总线封锁前缀指令(5)NOP:空操作指令,用于延时

七、CISC与RISC指令系统

1. CISC (Complex Instruction Set Computer)

复杂指令系统计算机

①执行一条指令要多次访问主存。

②执行一条指令需要多个微周期。

③流水线作业中,长指令的执行,妨碍其他指令的操作。

④寻址方式复杂,不易优化。

第八章汇编语言

五、汇编语言数据与运算符

1.常数数值常数:二、八、十、十六进制B,O,D,H 字符串常数

(1)在指令语句的原操作数中作立即数. MOV AL, 0A9H MOV BX, ‘AB’

(2) 存储器操作数的寻址方式中作位移量。MOV AL, DS: [340H]

(3)在数据定义语句中,对存储单元预置初值。DB 12H, 34H

2. 变量

(1) 用数据定义语句定义并预置初值后,变量代表存储单元的数据,并作为该单元的符号地址。

例如在某数据段已定义一变量:DATA_V AR DB 40H DUP (?)

几种含有变量名的地址表达式为:

直接寻址:DATA_V AR+08H

基址变址寻址:DATA_V AR [BX] [DI]

?地址表达式的值:存放操作数的存储单元偏移量。

?地址表达式的类型:同变量名的类型。

2. 变量

(2)在用DW或DD的数据定义语句中,若操作数字段引用了变量名,则在分配的存储单元中,预置被引用的变量名的地址部分:偏移量、段基值NUM1 DB 10H DUP (?)

NUM2 DW 10H DUP (?)

ARRAY DB 10H DUP (‘ABCD’)

ADR1 DW A RRAY

ADR2 DD ARRAY

3. 标号:一条指令的符号地址。段属性偏移属性类型属性

NEAR:段内转移,作为标号所在段的转移、调用指令的目标地址。

FAR:段间转移,作为其他段的转移、调用指令的目标地址。

类型属性设置:

(1)隐含方式:NEXT:MOV AX,3000

(2)用LABEL伪指令设置类型属性:

标号伪指令LABEL格式:名字LABEL 类型?与指令语句配合使用:

名字(新标号)LABEL 类型(NEAR/FAR)

SUB1_FAR LABEL FAR

SUB1:MOV AX,1234H

?与数据定义语句配合使用:

名字(新变量名)LABEL 类型(DB/DW/DD)

DATA _BYTE LABEL BYTE

DATA _WORD DW 20H DUP(563H)

4. 运算符

(1)算术运算符

只有减法运算可以用同一段内的两个变量相减

NUM = 15*5 ;NUM=75

NUM = NUM/8 ;NUM=9

NUM = NUM MOD 5 ;NUM=4

NUM = -NUM-6 ;NUM= -10

NUM = -NUM ;NUM= 10

ORG 30H ;下面定义数据的起始偏移是30H

DA1 DB ‘ABCDEFGH’

DA2 DB ‘IBM PC COMPUTER’

COUNT EQU DA2 - DA1 ;38H-30H=8

DA3 EQU DA2+4

NUM=11011011B

DATA1 DW NUM SHL 3 , NUM SHR 2

...

MOV AX , NUM SHL 3 MOV AX , 011011011000B

MOV BX , NUM SHR 2 MOV BX , 00110110B

MOV CX , NUM SHL 8 MOV CX , 1101101100000000B MOV CX , NUM SHL 16 MOV CX , 0

MOV DX , NUM SHR 8 MOV DX , 0

MOV DX , NUM SHR 16 MOV DX , 0

DATA1 D W 6D8H , 36H

...

算术运算符移位运算符和移位指令区别

移位运算符不能对寄存器或存储单元进行移位运算

MOV AX,CX SHL 5

MOV DX,DATA1 SHR 3

(2)逻辑运算符

MOV AL , NOT 0F0H

MOV DX , NOT 0F0H

MOV BL , 55H OR 0F0H

AND BH , 55H AND 0F0H

XOR CX , 55H XOR 50H

(3)关系运算符

全1为真,全0为假比较时,若为常数按无符号数比较,如果是变量按偏移量比较

DATA SEGMENT

ORG 10H

NUM1=1234

NUM2=1234H

DA_BYTE DB 10H DUP(0)

DA_WORD DW 10H DUP(0)

DA_V AR1 DW

NUM2+DA_BYTE GT NUM1+DA_WORD

DA_V AR2 DB NUM1 LE NUM2

DATA ENDS

...

MOV AX , NUM1 LT NUM2

MOV BL , NUM1 GE NUM2

MOV CX , DA_WORD GT DA_BYTE

...

DA_V AR1 DW 0FFFFH

DA_V AR2 DB 0FFH

...

MOV AX , 0FFFFH

MOV BL , 0

MOV CX , 0FFFFH

...

可以对两个常数进行比较,不能用常数与偏移量进行比较

(4)数值返回运算符

格式:<运算符> <地址表达式>

运算对象是存储器操作数,由变量名或标号组成地址表达式SEG : 返回变量所在的段值OFFSET:返回变量所在偏移TYPE:返回变量的类型LENGTH:返回数组变量的元素个数SIZE:返回数组变量所占的总字节数SIZE= TYPE* LENGTH 假设DATA的段基值是7A4EH

DATA SEGMENT

ORG 30H

DA1 DB 20H DUP(12H)

DA2 DW D A1

...

DATA ENDS

...

MOV AX , SEG DA1

MOV BX , SEG DA2

MOV SI , OFFSET DA1

MOV CX , DA2

MOV DI , OFFSET DA2

MOV DX , OFFSET DA1+4

MOV AX , 7A4EH

MOV BX , 7A4EH

MOV SI , 30H

MOV CX , DA2

MOV DI , 50H

MOV DX , 34H

TYPE 运算符

用数字形式表示变量和标号的类型属性

DA_BYTE DB 12H

DA_WORD DW 3456H

DA_DWORD DD 789AH

...

MOV AL , TYPE DA_BYTE

MOV BL , TYPE DA_WORD

MOV CL , TYPE DA_DWORD

...

MOV AL , 1

MOV BL , 2

MOV CL , 4

LENGTH与SIZE运算符

LENGTH运算符

返回数组变量的元素个数如果变量用DUP定义,Length为外层DUP的值如果没有DUP定义,结果为1

SIZE运算符

数组变量所占的总字节数SIZE是LENGTH和TYPE的乘积

DATA SEGMENT

V AR1 DB 10H DUP(0)

V AR2 DB 10H, 20H, 30H, 40H

V AR3 DW 10H DUP(‘A’, 4 DUP(3))

V AR4 DB ‘COMPUTER’

DATA ENDS

...

MOV AL , LENGTH V AR1 ; (AL)=10H

MOV AH , SIZE V AR1 ; (AH)=10H

MOV BL , LENGTH V AR2 ; (BL)=1

MOV BH , SIZE V AR2 ; (BH)=1

MOV CL , LENGTH V AR3 ; (CL)=10H

MOV CH , SIZE V AR3 ; (CH)=20H

MOV DL , LENGTH V AR4 ; (DL)=1

MOV DH , SIZE V AR4 ; (DH)=1

求数组ARRAY的各数据项的累加和,从数组最后一个数据项开始进行累加。

ARRAY DW 20H DUP(4)

...

XOR AX , AX

MOV SI , OFFSET ARRAY

ADD SI , SIZE ARRAY-TYPE ARRAY

MOV CX , LENGTH ARRAY

LOP: ADD AX , [SI]

SUB SI , TYPE ARRAY

LOOP LOP

(5)属性运算符

PTR: 类型PTR 地址表达式

类型可以是:BYTE ,WORD,DWORD 或NEAR FAR

仅在当前语句中有效,是一种临时设置。

DA_BYTE DB 20H DUP(0)

DA_WORD DW 10H DUP(0)

MOV WORD PTR DA_BYTE [10], AX

ADD BYTE PTR DA_WORD [DI], BL

INC BYTE PTR [SI]

SUB WORD PTR[BX],30H

JMP FAR PTR SUB1

THIS:THIS 类型

THIS常与等值语句EQU一起用,形成新变量名或标号,使它们具有THIS 后所指的类型,而段基值和偏移量与紧接的变量名或标号相同。

例:DATA _BYTE EQU THIS BYTE

DATA _WORD DW 20H DUP(0)

JUMP_FAR EQU THIS FAR

JUMP_NEAR :XOR AX,AX

(6)分离字节运算符

HIGH 表达式

LOW 表达式

分离运算对象的高字节和低字节部分表达式必须具有常量值,如常数、地址表达式,不能是存储器操作数或寄存器内容

DATA SEGMENT

ORG 20H

CONST EQU 0ABCDH

DATA1 D B 10H DUP(?)

DATA2 D W 20H DUP(?)

...

DATA ENDS

...

MOV AH , HIGH CONST MOV AH , 0ABH

MOV AL , LOW CONST MOV AL , 0CDH

MOV BH , HIGH (OFFSET DATA1) MOV BH , 0

MOV BL , LOW (OFFSET DATA2) MOV BL , 30H

MOV CL , LOW (CONST SHL 3) MOV CL , 68H 7)运算符的优先级

1. 段定义伪指令

段名SEGMENT [定位类型] [组合类型] [‘类别名’]

...

段名ENDS

定位类型(Align Type):

PAGE(页):本段从一个页的边界开始,起始地址能被256整除。

PARA(节):本段从一个节的边界开始,起始地址能被16整除。

WORD(字):本段从偶字节地址开始。

BYTE(字节):本段从任意地址开始。

1. 段定义伪指令

组合类型(Combine Type):

?NONE:本段与其它段无连接关系,是独立的。

?PUBLIC:本段与其它同段名同类型的段相连接在一起,然后为所有这些段指定一个共同的段基地址,形成一个新的逻辑段。

?COMMON:本段与其它同段名同类型的段设置相同的段基址,共享相同的存储区,段长度由同名段中最大的段确定。(覆盖段)

?STACK:与PUBLIC段相似,但此段为堆栈段,系统自动对SS 寄存器和SP指针初始化。

?AT表达式:本段的起始单元可以定位在表达式所示的节边界上。

?MEMORY:本段定位在所有其它段的最高地址,有多个段,只把第一遇到的当作此段。类别名(Class)

2. 段寻址伪指令

ASSUME 段寄存器名:段名,段寄存器名:段名,...

DS_DATA SEGMENT

V AR1 DB 12H

DS_DATA ENDS

ES_DATA SEGMENT

V AR2 DB 34H

ES_DATA ENDS

CODE SEGMENT

V AR3 DB 56H

ASSUME CS:CODE , DS:DS_DATA

START: ......

...

INC V AR1

INC V AR2

INC V AR3

...

CODE ENDS

END START

可用关键字NOTHING取消前面的某些设置。

例:ASSUME DS:NOTHING;取消对DS的设置ASSUME NOTHING;取消全部4个段R的设置

3.段寄存器的装入

?DS,ES的装入

DATA_DS SEGMENT

DB1 DB 10H DUP(?)

DATA_DS ENDS

CODE SEGMENT

ASSUME CS:CODE , DS:DATA_DS , ES:DATA_ES START: MOV AX , DATA_DS ;设置DS

MOV DS , AX

MOV AX , DATA_ES ;设置ES

MOV ES , AX

...

CODE ENDS

?SS的装入

(1) STACK1 SEGMENT PARA STACK

DW 20H DUP(?)

STACK1 ENDS

(2) STACK2 SEGMENT

DW 30H DUP(?)

TOP LABEL WORD

STACK2 ENDS

...

CODE SEGMENT

...

MOV AX , STACK2 ;设置SS

MOV SS , AX

MOV SP , OFFSET TOP ;修改SP

?CS的装入

...

CODE SEGMENT

ASSUME CS:CODE , ......

...

START:............

...

CODE ENDS

END START

七、过程定义伪指令

过程名PROC [NEAR/FAR]

...

RET

过程名ENDP

1.有三个属性

2.一个过程内,至少有一条返回指令RET

3.调用过程使用CALL 过程名

4.段内返回与段间返回

八、其它伪指令

1. ORG , $

ORG 表达式

将表达式的值赋给位置计数器

$ 存放位置计数器的当前值

ORG , $举例

DATA SEGMENT

ORG 30H

DB1 DB 12H , 34H

ORG $+20H

STRING DB ‘STRING’

DATA ENDS

ORG , $举例

DATA SEGMENT

DA1 DB 10H DUP(?)

DA2 DB 12H , 34H

DA3 DW 56H , $+10H , 78H , $+20H

...

DATA ENDS

CODE SEGMENT

...

ORG 50H

MOV AX , OFFSET $

MOV BX , OFFSET $

...

CODE ENDS

MOV AX , 0050H

MOV BX , 0053H

2. EVEN 伪指令定位偶地址

3. INCLUDE伪指令

INCLUDE 文件名

例:INCLUDE FILE.MAC

INCLUDE B:\MASM\ABC.ASM

4. PUBLIC

PUBLIC 符号1,符号2,......

5. EXTRN 伪指令

EXTRN 符号1:类型,符号2:类型,... PUBLIC NUM1 , STRING , SUB1 , LOOP1

DATA1 S EGMENT

NUM1 EQU 1234H

...

STRING DB ‘CHARACTER STRING’

...

DATA1 E NDS

...

CODE1 SEGMENT

...

SUB1 PROC FAR

...

SUB1 ENDP

EXTRN NUM1:ABS , STRING:BYTE

EXTRN SUB1:FAR , LOOP1:NEAR

:

CODE2 SEGMENT

:

MOV AX , NUM1

LEA BX , STRING

:

CALL SUB1

:

JMP FAR PTR LOOP1

:

CODE2 ENDS

END

5. TITLE (标题)伪指令,指定一个标题

格式:TITLE 文本字符不超过80个例:TITLE EXAMPLE PROGRAM

例:

MULTAX10 MACRO

PUSH BX

SAL AX,1

MOV BX,AX

SAL AX,1

SAL AX,1

ADD AX,BX

POP BX

ENDM

九、宏指令

1. 宏定义

宏名MACRO [形参1,形参2,...]

...

ENDM

EXCHANGE MACRO MEM1,MEM2,REG MOV REG,MEM1

XCHG REG,MEM2

MOV MEM1,REG

ENDM

2. 宏调用

宏名[实参1,实参2,...]

EXCHANGE DA_BY1 , DA_BY2 , AL 3. 宏展开

宏定义

MULTAX10 MACRO

PUSH BX

SAL AX,1

MOV BX,AX

SAL AX,1

SAL AX,1

ADD AX,BX

POP BX

ENDM

;------------------------------------------------------------ EXCHANGE MACRO MEM1,MEM2,REG MOV REG,MEM1

XCHG REG,MEM2

MOV MEM1,REG

ENDM

设置数据段

DATA SEGMENT

DA_W01 DW 1234H

DA_W02 DW 5678H

DATA ENDS

;设置堆栈段

STACK1 SEGMENT PARA STACK

DW 20H PUP(?)

STACK1 ENDS

;设置代码段

COSEG SEGMENT

计算机组成原理-指令扩展实验解析

《计算机组成原理A》课程设计性实验报告 开课实验室:计算机组成原理实验室年月日 实验题目指令扩展实验 一、实验目的 深入了解教学计算机微程序控制器的组成和设计技术,包括Am2910器件的功能与具体用法,教学计算机的总体组成和部件之间的连接方法,总之应该深入理解控制器部件的组成、设计、控制与使用等诸项知识。 二、设备与环境 TEC-XP+教学机,微机(装有Windows XP、ISPLEVER、ispVM System等软件)。 三、实验内容 在现有的基本指令系统上,扩展2条指令,分别是: 指令一:NXOR DR,SR ,其功能是(DR⊕SR) DR 。 指令二: SWRM DR,[SR] ,其功能是DR与[SR]的值互换,实现寄存器与内存单元(通过间接寻址方式)之间的数据传送。 四、实验步骤 1、CPU模型

2、微程序控制器组成原理框图 3、机器指令与微指令关系 ① PC:存放下一条机器指令的地址(向指令存储器提供指令地 址)。 ②指令存储器:(存放所有机器指令),经地址译码,选中相 应存储单元,取出相应机器指令,送入指令寄存器IR。 ③指令寄存器IR:存放正在执行的机器指令。机器指令包含 两个字段:操作码(OP)、地址码。 ④由操作码(OP)映射得到微地址(译码过程),即机器指令 所对应的微程序入口地址,存入微地址寄存器。 ⑤控制存储器存放所有的微程序,经地址译码读出一条微指 令。 ⑥由控制存储器读出的一条微指令存入微指令寄存器。 4、教学机TEC-XP的控制器提供的控制信号(微指令格式) ① B0-B5字段:DC1:CPU内部总线数据来源选择控制,详 见表1-1;DC2:专用寄存器接收控制,详见表1-2。 ② B6-B11字段:SSH SCI:最低进位输入、移位输入控制 信号,详见表2-1;SST:状态寄存器控制信号,详见表 2-2。 ③ B12-B19字段:A口:0000表示不使用寄存器,1000 表示取IR中的SR,0100表示R4(SP),0101表示R5(PC);B口:0000表示不使用寄存器,1000表示取IR中的DR,0100表示R4(SP),0101表示R5(PC)。

计算机组成原理知识点总结——详细版

计算机组成原理2009年12月期末考试复习大纲 第一章 1.计算机软件的分类。 P11 计算机软件一般分为两大类:一类叫系统程序,一类叫应用程序。 2.源程序转换到目标程序的方法。 P12 源程序是用算法语言编写的程序。 目标程序(目的程序)是用机器语言书写的程序。 源程序转换到目标程序的方法一种是通过编译程序把源程序翻译成目的程序,另一种是通过解释程序解释执行。 3.怎样理解软件和硬件的逻辑等价性。 P14 因为任何操作可以有软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。对于某一机器功能采用硬件方案还是软件方案,取决于器件价格,速度,可靠性,存储容量等因素。因此,软件和硬件之间具有逻辑等价性。 第二章 1.定点数和浮点数的表示方法。 P16 定点数通常为纯小数或纯整数。 X=XnXn-1…..X1X0 Xn为符号位,0表示正数,1表示负数。其余位数代表它的量值。 纯小数表示范围0≤|X|≤1-2-n 纯整数表示范围0≤|X|≤2n -1

浮点数:一个十进制浮点数N=10E.M。一个任意进制浮点数N=R E.M 其中M称为浮点数的尾数,是一个纯小数。E称为浮点数的指数,是一个整数。 比例因子的基数R=2对二进制计数的机器是一个常数。 做题时请注意题目的要求是否是采用IEEE754标准来表示的浮点数。 32位浮点数S(31)E(30-23)M(22-0) 64位浮点数S(63)E(62-52)M(51-0) S是浮点数的符号位0正1负。E是阶码,采用移码方法来表示正负指数。 M为尾数。P18 P18

2.数据的原码、反码和补码之间的转换。数据零的三种机器码的表示方法。 P21 一个正整数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数位值都相同,既三种表示方法完全一样。 一个负整数,当用原码、反码、补码表示时,符号位都固定为1,用二进制表示的数位值都不相同,表示方法。 1.原码符号位为1不变,整数的每一位二进制数位求反得到反码; 2.反码符号位为1不变,反码数值位最低位加1,得到补码。 例:x= (+122)10=(+1111010)2原码、反码、补码均为01111010 Y=(-122)10=(-1111010)2原码11111010、反码10000101、补码10000110 +0 原码00000000、反码00000000、补码00000000 -0 原码10000000、反码11111111、补码10000000 3.定点数和浮点数的加、减法运算:公式的运用、溢出的判断。 P63 已知x和y,用变形补码计算x+y,同时指出结果是否溢出。 (1)x=11011 y=00011 (2)x=11011 y=-10101 (3)x=-10110 y=-00001

计算机组成原理96209

1.完整的计算机系统应包括配套的硬件设备和软件系统。 2.计算机硬件包括运算器、控制器、存储器、输入设备 和输出设备。其中运算器、控制器和存储器组成主机运算器和控制器可统称为CPU。 3.基于存储程序原理的冯·诺依曼计算机工作方式的基本特点是按地址访问并顺序执行指令。 5.系统程序是指用来对整个计算机系统进行调度、管理、监视及服务的各种软件,应用程序是指用户在各自的系统中开发和应用的各种程序。 6.计算机与日常使用的袖珍计算机的本质区别在于自动化程度的高低。 7.为了更好地发挥计算机效率和方便用户,20世纪50年代发展了操作系统技术通过它对计算机进行管理和调度。 8.指令和数据都存放在存储器中,控制器能自动识别它们。 9.计算机系统没有系统软件中的操作系统就什么工作都不能做。 10.在用户编程所用的各种语言中与计算机本身最为密切的语言是汇编语言。 11.计算机唯一能直接执行的语言是机器语言. 12.电子计算机问世至今计算机类型不断推陈出新但依然保存存储程序的特点最早提出这种观点的是冯·诺依曼。 13.汇编语言是一种面向机器的语言,对机器依赖性很强,用汇编语言编制的程序执行速度比高级语言快。 14.有些计算机将一部分软件永恒地存于只读存储器中称为固件。 15.计算机将存储、运算逻辑运算和控制三部分合称为主机,再加上输入设备和输出设备组成了计算机硬件系统。 16.1μs= 10-6 s,其时间是1ns的 1000 倍。 17.计算机系统的软件可分为系统软件和应用软件,文本处理属于应用软件,汇编程序属于系统软件。 18.指令的解释是由计算机的控制器来完成的,运算器用来完成算数和逻辑运算。 23.存储器的容量可以用KB、MB和GB表示,它们分别代表 2 10字节, 2 20字节和2 30字节。 24.计算机硬件的主要技术指标包括机器字长、存储容量、运算速度。

《计算机组成原理高分笔记》补充版

变化知识点一:计算机性能指标知识点中,将MFLOPS改成了FLOPS 解析:此改动仅仅是改变了单位的数量级,没有实质意义。FLOPS(Floating-point Operations per Second),即每秒所执行的浮点运算次数。 ——————————————————————————————————————— 变化知识点二:删除了浮点数的表示范围 解析:高分笔记关于这个讲解的也不多,可以直接跳过。——————————————————————————————————————— 变化知识点三:增加了Falsh存储器 解析:相信大家肯定听说过闪存吧。没错,闪存就是Flash存储器的又一别称。闪存属于内存的一种,但是又不同于内存。众所周知,如果没有电流供应,电脑内存的内容即刻消失,也就是易挥发。而闪存则是一种不挥发性内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础(简单的说就是闪存集合了ROM和RAM的长处)。闪存最典型的应用就是大家常用的U盘和MP3(别说你没用过哦!),U盘就是闪存加上一些控制芯片,然后再用壳子包起来。另外,一般来讲Flash存储器都是按块来读取数据的,而不是字节。最后,Flash 存储器的基本存储单元电路由一个浮栅MOS管构成,它是利用浮栅上的电荷保存信息。 对应习题: (1)以下属于非易失性的存储器有()。 A.ROM和DRAM B.ROM和SRAM C.闪存和RAM D.闪存和SRAM 解析:RAM都是易失性,ROM和闪存为非易失性,故选C。 (2)从功能上看闪存是一种()存储器,从基本工作原理上看,闪存是一种()存储器。 答案:只读存储方式,读/写存储方式。 (3)说明闪存有何特点和用途。它和其它存储器相比较有什么不同? 解析:闪存是一种具有较高存储容量、较低价格、可在线擦除与编程的新一代读写存储器,从基本工作原理上看,闪存属于ROM型存储器,但由于它又可以随时改写其中的信息,所以从功能上看,它又相当于随机存储器RAM。从这个意义上说,传统的ROM与RAM的界限和区别在闪存上已不明显。它的这些独特性能使其广泛应用于包括嵌入式系统、仪器仪表、汽车器件以及数码影音产品中。 闪存和其它存储器比较其不同点可通过下表体现: 内存类型非易失性高密度一个晶体管单元系统内部写能力闪存是是是是 SRAM不是不是不是是 DRAM不是是是是 ROM是是是不是 EPROM是是是不是

计算机组成原理习题答案第九章

1.外部设备有哪些主要功能?可以分为哪些大类?各类中有哪些典型设备? 解:外部设备的主要功能有数据的输入、输出、成批存储以及对信息的加工处理等。外部设备可以分为五大类:输入输出设备、辅助存储器、终端设备、过程控制设备和脱机设备。其典型设备有键盘、打印机、磁盘、智能终端、数/模转换器和键盘-软盘数据站等。2.键盘属于什么设备?它有哪些类型?如何消除键开关的抖动?简述非编码键盘查询键位置码的过程。 解:键盘是计算机系统不可缺少的输入设备。键盘可分为两大类型:编码键盘和非编码键盘。非编码键盘用较为简单的硬件和专门的键盘扫描程序来识别按键的位置。消除键开关抖动的方法分硬件和软件两种。硬件的方法是增设去抖电路;软件的方法是在键盘程序中加入延时子程序,以避开抖动时间。键盘扫描程序查询键位置码的过程为: ①查询是否有键按下。 ②查询已按下键的位置。 ③按行号和列号求键的位置码。 3 .说明针式打印和字模式打印有何不同?各有什么优缺点? 解:针式打印机利用若干根打印针组成的点阵来构成字符;字模式打印机将各种字符塑压或刻制在印字机构的表面上,印字机构如同印章一样,可将其上的字符在打印纸上印出。针式打印机以点阵图拼出所需字形,不需要固定字模,它组字非常灵活,可打印各种字符和图形、表格和汉字等,字形轮廓一般不如字模式清晰;字模式打印机打印的字迹清晰,但字模数量有限,组字不灵活,不能打印汉字和图形。 4 .什么是随机扫描?什么是光栅扫描?各有什么优缺点? 解:扫描方式有两种:光栅扫描和随机扫描。 在光栅扫描方式中,电子束在水平和垂直同步信号的控制下有规律的扫描整个屏幕。这种方式的控制比较简单,画面质量较好且稳定,但对行扫描频率要求较高。在随机扫描方式中,电子束能在屏幕上进行随机运动,其轨迹随显示内容变化而变化,只在需要显示字符和图形的地方扫描,而不必扫描全屏。这种方式显示速度快、画面清晰,尤其是线条的轮廓十分光滑,一般用于高清晰度的专用图形显示器中,但这种方式的控制比较复杂,而且只能用于字符和图形显示,不适于显示随机图像。 5 .什么是分辨率?什么是灰度级?它们各有什么作用? 解:分辨率由每帧画面的像素数决定,而像素具有明暗和色彩属性。黑白图像的明暗程度称为灰度,明暗变化的数量称为灰度级,分辨率和灰度级越高,显示的图像越清晰、逼真。 6 .某字符显示器,采用7×9点阵方式,每行可显示60个字符,缓存容量至少为1260字节,并采用7位标准编码,试问: (1)如改用5×7字符点阵,其缓存容量为多少?(设行距、字距不变———行距为5,字距为1。) (2)如果最多可显示128种字符,上述两种显示方式各需多大容量的字符发生器ROM ? 解:(1)因为显示器原来的缓存为1260B ,每行可显示60个字符,据此可计算出显示器的字符行数:1260÷60=21(行)因为,原字符窗口=8×14=(7+1)×(9+5),现字符窗口=6×12=(5+1)×(7+5)。所以,现显示器每行可显示80个字符,显示器可显示的字符行数为24行。故缓存的容量为80×24=1920B 。 (2)ROM 中为行点阵码 7×9点阵方式:128×9×7=1152×7(位)=1152(字节)5×7点阵方式:128×7×5=896×5(位)=896(字节)注:

(完整版)计算机组成原理知识点总结

第2章数据的表示和运算 主要内容: (一)数据信息的表示 1.数据的表示 2.真值和机器数 (二)定点数的表示和运算 1.定点数的表示:无符号数的表示;有符号数的表示。 2.定点数的运算:定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。 (三)浮点数的表示和运算 1.浮点数的表示:浮点数的表示范围;IEEE754标准 2.浮点数的加/减运算 (四)算术逻辑单元ALU 1.串行加法器和并行加法器 2.算术逻辑单元ALU的功能和机构 2.3 浮点数的表示和运算 2.3.1 浮点数的表示 (1)浮点数的表示范围 ?浮点数是指小数点位置可浮动的数据,通常以下式表示: N=M·RE 其中,N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R

为一常数,一般为2、8或16。在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来。 浮点数的机内表示 浮点数真值:N=M ×2E 浮点数的一般机器格式: 数符阶符阶码值 . 尾数值 1位1位n位m位 ?Ms是尾数的符号位,设置在最高位上。 ?E为阶码,有n+1位,一般为整数,其中有一位符号位EJ,设置在E的最高位上,用来表示正阶或负阶。 ?M为尾数,有m位,为一个定点小数。Ms=0,表示正号,Ms=1,表示负。 ?为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于0.5。对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。 浮点数的机内表示 阶码通常为定点整数,补码或移码表示。其位数决定数值范围。阶符表示数的大小。 尾数通常为定点小数,原码或补码表示。其位数决定数的精度。数符表示数的正负。

计算机组成原理第九章课后部分答案

9.2 控制单元的功能是什么?其输入受什么控制? 答:控制单元的主要功能是发出各种不同的控制信号。其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。 9.3 什么是指令周期、机器周期和时钟周期?三者有何关系? 答:CPU每取出并执行一条指令所需的全部时间叫指令周期; 机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作 (指令步)所需时间,通常安排机器周期长度等于主存周期; 时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时 序单位,对应完成一个微操作所需时间,通常时钟周期等于计算机主频 的倒数。 9.4 能不能说机器的主频越快,机器的速度就越快,为什么? 解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能 强弱等多种因素有关,要看综合效果。 9.6 设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4 个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论? 解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下: 时钟周期=1/8MHz=0.125×10-6s. 机器周期=0.125×10-6s×2=0.25×10-6s 平均指令周期=0.25×10-6s×4=10-6s 平均指令执行速度=1/10-6s=1MIPS 当参数改变后:机器周期= 0.125×10-6s×4=0.5×10-6s 平均指令周期=0.5×10-6s×4=2×10-6s

(完整版)计算机组成原理习题答案(蒋本珊)

第一章 1.电子数字计算机和电子模拟计算机的区别在哪里? 解:电子数字计算机中处理的信息是在时间上离散的数字量,运算的过程是不连续的;电子模拟计算机中处理的信息是连续变化的物理量,运算的过程是连续的。 2.冯·诺依曼计算机的特点是什么?其中最主要的一点是什么? 解:冯·诺依曼计算机的特点如下: ①计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成; ②计算机内部采用二进制来表示指令和数据; ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。 第③点是最主要的一点。 3.计算机的硬件是由哪些部件组成的?它们各有哪些功能? 解:计算机的硬件应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。它们各自的功能是: ①输入设备:把人们编好的程序和原始数据送到计算机中去,并且将它们转换成计算机内部所能识别和接受的信息方式。 ②输出设备:将计算机的处理结果以人或其他设备所能接受的形式送出计算机。 ③存储器:用来存放程序和数据。 ④运算器:对信息进行处理和运算。

⑤控制器:按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊地自动工作。 4.什么叫总线?简述单总线结构的特点。 解:总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。单总线结构即各大部件都连接在单一的一组总线上,这个总线被称为系统总线。CPU 与主存、CPU 与外设之间可以直接进行信息交换,主存与外设、外设与外设之间也可以直接进行信息交换,而无须经过CPU 的干预。 5.简单描述计算机的层次结构,说明各层次的主要特点。 解:现代计算机系统是一个硬件与软件组成的综合体,可以把它看成是按功能划分的多级层次结构。 第0级为硬件组成的实体。 第1级是微程序级。这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。 第2级是传统机器级。这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。 第3级是操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。第4级是汇编语言级。这级的机器语言是汇编语言,完成汇编语言翻译的程序叫做汇编程序。 第5级是高级语言级。这级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。

02318自考计算机组成原理(问答)总结讲解

1.简述主存与CACHE之间的映象方式。 【答案】主存与CACHE之间的映象方式有直接映象、全相联印象、组相联印象三种。直接映象是指主存储器中的每个块只能够映象到CACHE中唯一一个指定块的地址映象方式。全相联映象是指每个主存块都能够映象到任一CACHE块的地址映象方式。组相联印象是直接映象和全相联映象两种方式的结合,它将存储空间分成若干组,在组间采用直接映象方式,而在组内采用全相联印象方式。 2.简述存储器间接寻址方式的含义,说明其寻址过程。 【答案】含义:操作数的地址在主存储器中,其存储器地址在指令中给出。 寻址过程:从指令中取出存储器地址,根据这个地址从存储器中读出操作数的地址,再根据这个操作数的地址访问主存,读出操作数。 3.微程序控制器主要由哪几部分构成?它是如何产生控制信号的? 【答案】微程序控制器主要由控制存储器、微指令寄存器μIR、微地址寄存器μAR、地址转移逻辑等构成。 操作控制信号的产生:事先把操作控制信号以代码形式构成微指令,然后存放到控制存储器中,取出微指令时,其代码直接或译码产生操作控制信号。 4.简述提高总线速度的措施。 【答案】从物理层次:1增加总线宽度;2增加传输的数据长度;3缩短总线长度;4降低信号电平;5采用差分信号;6采用多条总线。从逻辑层次:1简化总线传输协议;2采用总线复用技术;3采用消息传输协议。 5.简述中断方式的接口控制器功能。 【答案】中断方式的接口控制器功能:①能向CPU发出中断请求信号;②能发出识别代码提供引导CPU在响应中断请求后转入相应服务程序的地址;③CPU要能够对中断请求进行允许或禁止的控制;④能使中断请求参加优先级排队。 6.CPU与DMA访问内存冲突的裁决的方法有哪些? 【答案】①CPU等待DMA的操作;②DMA乘存储器空闲时访问存储器;③CPU与DMA交替访问存储器。 08真题1.高速缓存Cache用来存放什么内容?设置它的主要目的是什么? (3分) 参考答案:Cache中存放当前活跃的程序和数据,作为主存活跃区的副本。(2分) 设置它的主要目的是解决CPU 与主存之间的速度匹配。(2分) 2.什么是堆栈?说明堆栈指针SP的作用。(3分) 参考答案:堆栈是一种按先进后出(或说成是后进先出)顺序进行存取的数据结构或存储区域。常在主存中划一小块连续单元区作为堆栈。(3分) 堆栈指针SP是用来保存最后进入堆栈的位置(栈顶)的寄存器。(1分) 3.简述微程序控制方式的基本思想。它有什么优点和缺点? (3分) 参考答案:(P132-134)微程序控制的基本思想可归纳为: (1)将微操作命令以微码形式编成微指令,并事先固化在控制存储器(ROM)中。(1分) (2)将一条机器指令的操作分解为若干微操作序列,用一段微程序对应地解释执行,微程序中每条微指令所包含的微命令控制实现一步操作。(1分) 优点:结构规整,有利于设计自动化;易于修改与扩展,灵活性、通用性强;适于作系列机的控制器,性能价格比较高;可靠性较高,易于诊断与维护。(1分) 缺点:速度相对较慢。(1分) 4.什么是中断?请说明它的特点和适用场合。(3分) 参考答案:中断是指在计算机的运行过程中,CPU接到更紧迫的服务请求而暂停执行现行程序,转去执行中断服务程序,以处理某些随机事态;并在处理完毕后自动恢复原程序的执行。(2分) 主要特点是具有随机性,通过执行程序来处理随机事件。(1分) 它适用于中低速I/O操作的管理,以及处理随机发生的复杂事件。(1分) 5.什么是串行总线?什么是并行总线?试比较它们的应用场合。(3分) 参考答案:串行总线采用一条数据线;并行总线采用多条线路并行地传输数据信号。(2分) 串行总线一般用于较长距离的较低速率的数据传输;并行总线一般用于较短距离的高速数据传输。(2分) 07真题1.半导体随机访问存储器芯片主要有哪两种类型?(5分) 参考答案:主要有静态存储器(SRAM)芯片和动态存储器(DRAM)芯片。 2.简述CISC和RISC的含义。(5分) 参考答案:CISC:复杂指令系统计算机,其指令条数较多,指令功能和结构复杂,进而机器结构复杂。(2分)RISC:精简指令系统计算机,其指令条数较少,指令结构和功能简单,进而机器结构简单,提高了机器的性能价格比。

计算机组成原理(肖铁军2010版)课后答案(完整版)

计算机组成原理(肖铁军2010版)课后答案 第一章;1 .比较数字计算机和模拟计算机的特点;解:模拟计算机的特点: 数值由连续量来表示,运算过;数字计算机的特点:数值由数字量(离散量)来 表示,;2.数字计算机如何分类?分类的依据是什么?;解:分类:数字计算机分为专用计算机和通用计算机;分类依据:专用和通用是根据计算机的效率、速度、价;通用机的分类依据主要是体积、简易性、功率损耗、性;3.数字计算机有那些主 第一章 1.比较数字计算机和模拟计算机的特点。 解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的 数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。两者主要区别见P1 表1.1。 2.数字计算机如何分类?分类的依据是什么? 解:分类:数字计算机分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类。

通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等因素。 3.数字计算机有那些主要应用? (略) 4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制 存储程序:将解题的程序(指令序列)存放到存储器中; 程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。 5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、M B、GB来度量,存储容量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。 单元地址:单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地址。 数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。 6.什么是指令?什么是程序?

计算机组成原理课后习题答案(一到九章).doc

作业解答 第一章作业解答 1.1 基本的软件系统包括哪些内容?答:基本的软件系统包括系统软件与应用软件两大类。 系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。包括:操作系统、语言处理程序、数据库管理系统、分布式软件系统、网络软件系统、各种服务程序等。 1.2 计算机硬件系统由哪些基本部件组成?它们的主要功能是什么?答:计算机的硬件系统通常由输入设备、输出设备、运算器、存储器和控制器等五大部件组成。 输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入到计算机内。输出设备的主要功能是将计算机处理的结果以人们所能接受的信息形式或其它系统所要求的信息形式输出。 存储器的主要功能是存储信息,用于存放程序和数据。运算器的主要功能是对数据进行加工处理,完成算术运算和逻辑运算。控制器的主要功能是按事先安排好的解题步骤,控制计算机各个部件有条不紊地自动工作。 1.3冯?诺依曼计算机的基本思想是什么?什么叫存储程序方式? 答:冯?诺依曼计算机的基本思想包含三个方面: 1)计算机由输入设备、输出设备、运算器、存储器和控制器五大部件组成。 2)采用二进制形式表示数据和指令。 3)采用存储程序方式。 存储程序是指在用计算机解题之前,事先编制好程序,并连同所需的数据预先存入主存储器中。在解题过程(运行程序)中,由控制器按照事先编好并存入存储器中的程序自动地、连续地从存储器中依次取出指令并执行,直到获得所要求的结果为止。 1.4早期计算机组织结构有什么特点?现代计算机结构为什么以存储器为中心?答:早期计算机组织结构的特点是:以运算器为中心的,其它部件都通过运算器完成信息的传递。 随着微电子技术的进步,人们将运算器和控制器两个主要功能部件合二为一,集成到一个芯片里构成了微处理器。同时随着半导体存储器代替磁芯存储器,存储容量成倍地扩大,加上需要计算机处理、加工的信息量与日俱增,以运算器为中心的结构已不能满足计算机发展的需求,甚至会影响计算机的性能。为了适应发展的需要,现代计算机组织结构逐步转变为以存储器为中心。 1.5什么叫总线?总线的主要特点是什么?采用总线有哪些好处?答:总线是一组可为多个功能部件共享的公共信息传送线路。 总线的主要特点是共享总线的各个部件可同时接收总线上的信息,但必须分时使用总线发送信息,以保证总线上信息每时每刻都是唯一的、不至于冲突。 使用总线实现部件互连的好处: ①可以减少各个部件之间的连线数量,降低成本; ②便于系统构建、扩充系统性能、便于产品更新换代。 1.6按其任务分,总线有哪几种类型?它们的主要作用是什么? 答:按总线完成的任务,可把总线分为:CPU 内部总线、部件内总线、系统总线、外总线。 1.7计算机的主要特点是什么? 答:计算机的主要特点有:①能自动连续地工作;② 运算速度快;③运算精度高;④具有很强的存储能力和逻辑判断能力;⑤通用性强。 1.8衡量计算机性能有哪些基本的技术指标?以你所熟悉的计算机系统为例,说明它的型号、主频、字长、主存容量、所接的I/O设备的名称及主要规格。 答:衡量计算机性能的基本的技术指标有: ①基本字长;② 主存容量;③ 运算速度;④ 所配置的外部设备及其性能指标;⑤系统软件的配置。

计算机组成原理,指令系统,练习题

单项选择题 1 在CPU执行指令的过程中,指令的地址由___B__给出。 A 程序计数器PC B 指令的地址码字段 C 操作系统 D 程序员 2 下列关于指令的功能及分类叙述正确的是__B___。 A 算术与逻辑运算指令,通常完成算术运算或逻辑运算,都需要两个数据 B 移位操作指令,通常用于把指定的两个操作数左移或右移一位 C 转移指令,子程序调用与返回指令,用于解决数据调用次序的需要 D 特权指令,通常仅用于系统软件,这类指令一般不提供给用户 3 零地址的运算类指令在指令格式中不给出操作数的地址,参加的两个操作数来自__C__。A累加器和寄存器 B 累加器和暂存器 C 堆栈的栈顶和次栈顶单元 D 堆栈的栈顶单元和暂存器 4 下列一地址运算类指令的叙述中,正确的是_____。 A 仅有一个操作数,其地址由指令的地址码提供 B 可能有一个操作数,也可能有两个操作数 C 一定有两个操作数,其中一个操作数是隐含的 D 指令的地址码字段存放的一定是操作码 5 关于二地址指令一下论述正确的是_____。 A 二地址指令中,运算结果通常存放在其中一个地址码所提供的地址中 B二地址指令中,指令的地址码字段存放的一定是操作数 C二地址指令中,指令的地址码字段存放的一定是寄存器号 D二地址指令中,指令的地址码字段存放的一定是操作数地址 6 单字长四地址指令OP A1、A2、A3、A4的功能为(A1)OP(A2)→A3,且A4给出下一条指令地址,假设A1、A2、A3、A4都为主存储器地址,则完成上述指令需访存_____。 A 1 B 2 C 3 D 4 7 在指令格式设计中,采用扩展操作码的目的是_____。 A 增加指令长度 B 增加地址码数量NN C 增加指令数量 D 增加寻址空间 8 某机器的指令字长为16位,有8个通用寄存器,有8种寻址方式,单操作数指令最多有_____个,双操作数指令最多有_____个。 A 1024 16 B 2048 32 C 256 64 D 1024 32 9 指令寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现_____。 A 程序浮动 B 程序的无条件浮动和条件浮动 C程序的无条件转移和条件转移 D 程序的调用 10 某机器指令字长为16位,主存按字节编址,取指令时,每取一个字节PC自动加1,。当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址D=40H。那么取指令后及指令执行后PC内容为_____。 A 2000H,2042H B 2002H,2040H C 2002H,2042H D 2000H,2040H 11 指令系统中采用不同的寻址方式的目的主要_____。 A 可降低指令译码难度 B 缩短指令字长,扩大寻址空间,提高编程灵活性

唐朔飞《计算机组成原理》复习笔记(指令系统)【圣才出品】

第7章指令系统 7.1复习笔记 一、机器指令 一条指令的结构可用如下形式来表示: 1.操作码 指令的操作码OP表示该指令应进行何种性质的操作。每一个包含n位的操作码最多能够表示2的n次幂条指令,其通常是固定的。 2.地址码 按照地址码个数来分,指令可分为4类,如图7-1所示。 图7-14种指令格式 (1)零地址 零地址指令的指令字中只有操作码,没有地址码(如停机指令)。

(2)一地址指令 一地址指令只有一个地址码,它指定一个操作数地址,另一个操作数地址是隐含的(如运算器的累加寄存器)。 (3)二地址指令 二地址指令常称为双操作数指令,其中地址A1兼做存放操作结果的地址,根据操作数的物理位置,可以将二地址指令格式归结为三种类型: ①存储器-存储器(SS)型指令 ②寄存器-寄存器(RR)型指令 ③寄存器-存储器(RS)型指令 (4)三地址指令 三地址指令有三个操作数,其中A1与A2分别为源操作数地址和操作数地址,A3为操作结果的地址。 3.指令字长度 一个指令字中包含二进制代码的位数,称为指令字长度,而机器字长是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。根据指令字长 ①指令字长度等于机器字长度的指令,称为单字长指令; ②指令字长度等于半个机器字长度的指令,称为半字长指令; ③指令字长度等于两个机器字长度的指令,称为双字长指令。 二、操作数类型和操作类型 1.操作数类型

机器指令对数据进行操作,数据通常分以下四类: (1)地址数据 (2)数值数据 ①定点整数或定点小数; ②浮点数; ③压缩十进制数,一个字节用2位BCD码表示。 (3)字符数据 字符数据也称为文本数据或字符串,目前广泛使用ASCII码。 (4)逻辑数据 一个单元中有若干二进制位项组成,每个位的值可以是1或0,用以判断“真”与“假”。 2.操作类型 (1)数据传送 数据传送包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送。(2)算术逻辑操作 (3)移位 (4)转移 (5)输入输出 (6)其他 三、寻址方式 1.指令寻址

第1-3章计算机组成原理课后习题答案

第1章计算机系统概论 1.1 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 解:计算机系统由硬件和软件两大部分组成。硬件即指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外设等。软件是看不见摸不着的,由人们事先编制成具有各类特殊功能的信息组成,用来充分发挥硬件功能,提高机器工作效率,便于人们使用机器,指挥整个计算机硬件系统工作的程序、资料、数据集合。硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。 1.2 如何理解计算机系统的层次结构? 解:(1)第一级:实际机器M1 (机器语言机器),机器语言程序直接在M1上执行;(2)第二级:虚拟机器M2(汇编语言机器),将汇编语言程序先翻译成机器语言程序,再在M1-上执行;(3)第三级:虚拟机器M3(高级语言机器),将高级语言程序先翻译成汇编语言程序,再在M2、M1(或直接到M1)上执行;(4)第零级:微程序机器M0(微指令系统),由硬件直接执行微指令。(5)实际上,实际机器M1和虚拟机器M2之间还有一级虚拟机,它是由操作系统软件构成,该级虚拟机用机器语言解释操作系统。(6)虚拟机器M3还可以向上延伸,构成应用语言虚拟系统。 1.3 说明高级语言、汇编语言和机器语言的差别及联系。 解:机器语言由0、1代码组成,是机器能识别的一种语言。用机器语言编写程序时要求程序员对他们所使用的计算机硬件及其指令系统十分熟悉,编写程序难度很大,操作过程也极易出错。 汇编语言是符号式的程序设计语言,汇编语言是面向机器的语言,它由一些特殊的符号表示指令。用汇编语言编写的汇编语言程序必须先被翻译成机器语言程序,才能被机器接受并自动运行。汇编语言的每一条语句都与机器语言的某一条语句(0、1代码)一一对应。 高级语言是面向用户的语言,与具体的计算机指令系统无关、对问题的描述更接近于人们习惯,且易于掌握和书写。它具有较强的通用性,程序员完全不必了解、掌握实际机器M1的机型、内部的具体组成及其指令系统,只要掌握这类高级语言的语法和语义,便可直接用这种高级语言来编程,给程序员带来了极大的方便。但是,用高级语言编写的高级语言程序必须先被翻译成汇编语言程序,然后再将其翻译成机器语言程序或者将高级语言程序直接翻译成机器语言程序才能被机器接受并自动运行。 1.4 如何理解计算机组成和计算机体系结构? 解:计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。 计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性,通常是指用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等等,大都属于抽象的属性。

计算机组成原理考试重点以及题库总结

计算机组成原理考试重点以及题库总结

计算机组成原理考试重点以及题库总结 第一章 重点一:计算机系统由硬件和软件两部分组成,软件又分为系统软件和应用软件。 重点二:冯诺依曼机的组成与特点 1.冯诺依曼机由控制器、运算器、存储器、输入设备和输出设备五 部分组成。 2.数据和指令存储在存储器,按地址访存。 3.指令和数据用二进制表示。 4.指令由操作码和地址码组成。 5.存储程序 6.以运算器为中心 重点三:区分存储字、存储字长、机器字长、CPI、MIPS、FLOPS 存储字:存储单元中二进制代码的组合。 存储字长:存储单元中二进制代码的位数。 机器字长:CPU 一次能处理数据的位数,与CPU中的寄存器位数有关

CPI:执行一条指令所需时钟周期数 MIPS:每秒执行百万条指令 FLOPS:每秒浮点运算次数 题库中对应的习题: 1、存储字是指() A、存放在一个存储单元中的二进制代码组合 B、存放在一个存储单元中的二进制代码位数 C、存储单元的个数 D、机器指令的位数 2、存储字长是指() A、存放在一个存储单元中的二进制代码组合 B、存放在一个存储单元中的二进制代码位数 C、存储单元的个数 D、机器指令的位数 3、电子计算机的发展已经经历了四代,四代计算机的主要元器件分别是() A、电子管、晶体管、中小规模集成电路、激光器件 B、晶体管、中小规模集成电路、激光器件、光介质 C、电子管、晶体管、中小规模集成电路、大规模集成电路 D、电子管、数码管、中小规律集成电路、激光器件 4、完整的计算机系统应包括() A 运算器、存储器、控制器 B 外部设备和主机 C 主机和应用程序 D 配套的硬件设备和软件系统

考研计算机组成原理笔记

微机原理用书<微型计算机原理及接口技术>第二版裘雪红李伯成西电出版社专题一 一微机的组成 P15 图1.2 1 cpu的特点: 8086 (重点) 1> cpu内有6直接指令预取队列 BIU (总线接口单元)读内存存入预取队列 EU (指令执行单元)读预取队列执行 2> 内部有四个段寄存器(20位---1M) 3> 多种模式(最大,最小) 8086可接入另外的cpu 二8086的引线 最小模式P19 图2.1 (重点这个必须熟悉每个引脚什么作用必须知道) 三内部寄存器(重点必须记住其中一些指令才能读懂程序) P26 图2.4 四内存组织 安字节编址没一地址存放1字节 程序地址=ES*16+IP 堆栈地址=SS*16+SP 数据地址=DS/ES*16+EA 五时序 P31 图2.8 六总线形成(知道最小模式) P33 图2.11 专题二寻址方式和指令系统 一寻址方式 1 决定操作数地址(知道) 1> 立即MOV AL, 05H 2> 直接MOV AL, [2000H] MOV [2000H],AL 3> 寄存器MOV AX,BX MOV DS,DX 4> 寄存器间接(稍注意) MOV BX,1000H MOV DS,BX MOV SI,2000H MOV AL,[SI] 5> 寄存器相对MOV AL,[SI+3] 6> 基址,变址偏移地址=基址地址(BX,BP)+变址地址(SI,OI) MOV AL,[SI+BX] 7> 基址,变址,相对MOV AX,-1[SI+BX] MOV [BX],BX 8> 隐含寻址 二指令系统(重点编程序读程序)

1 传送MOV AL,RXYT MOV AX,SEG RXYT(把RXYT所在段地址给AX) MOV SI,OFFSET RXYT(偏移地址给SI) MOV DS,AX MOV AL,[SI] 堆栈地址POSH AX MOV AX,1000H POSH BX MOV SS,AX MOV SP,2000H POSH AX 1> SP-1→SP 2> AH→MSP 3> SP-1→SP 4> AL→SP POP BX 2 算术 要背的: ADD ADC SUB SBB MUL DIV 知道的: CMP INC DEC DAA DAS BCD 3 逻辑移位循环指令(以下写出来的必须会用!) 1> AND OR XOR NOT TEST NEG MOV BL,45H MOV AL,0FH AND BL,AC 2> SAL SHL(逻辑左移相当于乘2) MOV DX,0400H SHL DX,1 (0800) SHL DX,1 (1600) 若定义MOV CL,4 (移位次数一定放在CL) 则SHL DX,CL (移位4次) SHR(逻辑右移) MOV DL,40H SHR DL,1 (20) SHR DL,1 (10H) SHR DL,1 (08H) SAR(算术右移) MOV DL,0C0H (11000000 -64) SAR DL, 1 (11100000 -32) 3> 循环(大概知道) ROL ROR RCL RCR 4 串操作指令(不考!) 5 程序控制指令(重点) JMP(无条件转移不必深究只要知道转移到哪就行)

计算机组成原理第八章课后部分答案

计算机组成原理第八章课后部分答案

8.1 CPU有哪些功能?画出其结构框图并简要说明每个部件的作用。 8.2 什么是指令周期?指令周期是否有一个固定值?为什么? 解:指令周期:指取出并执行完一条指令所需的时间。 由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU 运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是 不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。 8.3 画出指令周期的流程图,分别说明图中每个子周期的作用。 解:

指令周期流程图 取指周期:取指令 间址周期:取有效地址 执行周期:取操作数(当指令为访存指令时) 中断周期:保存程序断点 8.4 设CPU内有这些部件:PC、IR、SP、AC、MAR、MDR、CU。 (1)画出完成简洁寻址的取数指令“LDA@X”(将主存某地址单元的内容取至AC中)的数据流(从取指令开始)。 (2)画出中断周期的数据流。 解:CPU中的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单 的机器中。 下面采用单总线形式连接各部件,框图如下:

(1)LDA@X指令周期数据流程图: PC→MAR M(MAR)→MDR (MDR)→IR PC+1→PC Ad(IR)→MAR M(MAR)→MDR MDR→Ad(IR) Ad(IR)→MAR M(MAR)→MDR MDR→AC (2)中断周期流程图如下:

8.7 什么叫系统的并行性?粗粒度并行和细粒度并行有什么区别? 解:并行性:包含同时性和并发性。同时性指两个或两个以上的事件在同一时刻发生,并发性指两个或多个事件在同一时间段发生。即 在同一时刻或同一时间段内完成两个或两个以上性质相同或 性质不同的功能,只要在时间上存在相互重叠,就存在并行性。 粗粒度并行是指多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般算法实现。 细粒度并行是指在处理机的指令级和操作级的并行性。 8.8 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪一个 更 能提高处理器速度,为什么? 解:指令流水:指将一条指令的执行过程分为n个操作时间大致 相等的阶段,每个阶段由一个独立 的功能部件来完成,这样n个部件 可以同时执行n条指令的不同阶段, 从而大大提高CPU的吞吐率。 指令二级流水和四级流水示意图如下:

相关文档
最新文档