第二章 计算机中的信息表示
数据信息
控制信息
数值型数据
非数值型数据
指令信息等
第一节 定点表示与浮点表示
2.1.1 定点表示法
无符号数
定点整数
定点小数
00000000~ 11111111 0~ 255
11111111 ~ 01111111原 原 -127~ 127
补10000000 ~ 01111111 补 -128~ 127
1.1111111 ~ 0.1111111原 原 -(1-2-7)~ (1-2-7)
1.0000000 ~ 0.1111111补 补 -1~ (1-2-7)
1
2-7
E
浮点数真值,N = + R × M
阶码
Ef E1 … Em Mf M1 … Mn浮点数机器格式:
尾数阶符 数符
R:阶码底,隐含约定。
E:阶码,为定点整数,补码或移码表示。
其 位数 决定 数值范围 ; 阶符 表示 数的大小 。
M:尾数,为定点小数,原码或补码表示。
其 位数 决定 数的精度 ; 数符 表示 数的正负 。
尾数规格化,1/2≤ M < 1 最高有效位绝对值为 1
2.1.2 浮点表示法
1,格式
2,表示范围与精度
表示范围,-231~ 231 (1-2-9)
例,某规格化浮点数用补码表示,其中阶码 6位,含 1位阶
符;尾数 10位,含 1位数符。
阶符 1位,阶码 m位,补码表示,以 2为底;
数符 1位,尾数 n位,补码表示,规格化。
最小浮点数,
最大浮点数,
最小浮点正数,
阶码为最大数,2 -1m
尾数为绝对值最大的负数,-1
尾数为最大数:
阶码为最大数,2 -1m
1-2-n
阶码为最小数,-2m
尾数为最小正数,2-1
表示精度,2-33
第二节 指令信息的表示
指令:指示计算机执行某类操作的信息的集合。
本节主要讨论:一般 指令格式
常用 寻址方式
面向用户 指令类型
2.2.1 指令格式
指令基本格式 操作码 θ 地址码 D
一个 一个或几个
1,指令字长
定长指令格式
变长指令格式
便于控制
( 1) 定长操作码
各指令 θ 的位置、位数固定相同。
( 2)扩展操作码
各指令 θ 的位置、位数不固定,根据需要
变化。
合理利用存储空间
2,操作码结构
关键在设置扩展标志。
例, 指令字长 16位,可含有 3,2,1或 0
个地址,每个地址占 4位。
操作码 地址码
15~ 12 11~ 8 7 ~ 4 3 ~ 00000 X Y Z
1110 X Y Z
...,..,..,..
1111 0000 Y Z
1111 1110 Y Z
...,..,..,..
三地址指令 15条
二地址指令 15条
1111 1111 0000 Z
1111 1111 1110 Z
...,..,..,.,一地址指令 15条
1111 1111 1111 0000
1111 1111 1111 1111
...,..,..,.,零地址指令 16条
( 3)复合型操作码
操作码分为几部分,每部分表示一种操作。
例,某机算逻指令
3,地址结构
0 1 2 3 4 5 6 7 8 15
基本操作 进位 移位 回送 判跳 操作数
指令中提供的地址数 存储单元地址码寄存器编号
( 1)指令提供地址的方式
显地址方式
隐地址方式
:指令中明显指明地址。
:地址隐含约定,不出现在指令中。
直接或间接给出
( 2) 地址结构的简化
操作数地址
● 四地址结构指令
格式:
使用 隐地址 可以减少指令中的地址数,简化
地址结构 。
θ D1 D2 D3 D4
结果地址 下条指令地址
功能,(D1)θ (D2) D3
(D4) 下条指令
用指令计数器 PC指示指令地址。
● 三地址结构指令
格式:
操作数地址
θ D1 D2 D3
结果地址
下条指令地址功能:
转移时,用转移
地址修改 PC内容。
(D1)θ (D2) D3
(PC) + 1 PC
源 /目的
● 二地址结构指令
格式,θ D1 D2
目的 /源
功能,(D1)θ (D2) D2/D1
(PC) + 1 PC
双操作数:
● 一地址结构指令
格式,θ D1 隐含约定
单操作数:
功能:
● 零地址结构指令
格式:
(D1)θ (A) A
(PC) + 1 PC
θ (D1) D1
(PC) + 1 PC
θ
功能,用于堆栈或特殊指令操作。
例,ADD;
执行前:
低SP 10
20
46
SP 30
46
执行后:
高
低
高
2.2.2 寻址方式
是指 寻找操作数地址或操作数的方式 。
操作码 θ 立即数 S
( 1) 立即寻址
指令直接给出操作数。
1,常见寻址方式
定长格式:
变长格式,基本指令
立即数 S
数在指令中,
其长度固定、
有限。
数在基本指令之
后,其长度可变。
用来提供常数、设置初值等。
操作码 θ 有效地址 D
( 2) 直接寻址
指令直接给出操作数地址。
存储单元号
寄存器号
(数在 M中 )
(数在 R中 )
● 存储器直接寻址 (直接寻址)
定长格式 D的位数有限,限制访存范围
变长格式 基本指令
DL
DH
D的位数可覆盖
整个存储空间
S =( D)
操作码 θ 寄存器号 R
存储单元号
寄存器号
(数在 M中 )
(数在 M中 )
● 寄存器直接寻址 (寄存器寻址)
格式 R所占位数少;访问 R比访问 M快
格式
S =( R)
用于访问固定的存储单元或寄存器。
( 3)间接寻址
指令给出操作数的间接地址。
● 存储器间址
操作码 θ 间接地址 D
D=0030 0060...
0060 S...
S =((D))
M
间址单元
地址指针
操作码 θ 寄存器号 R
● 寄存器间址
格式
R所占位数少; R可提供全字长地址码;
修改 R内容比修改 M内容快。
格式
S =((R))
指针不变 (由指令指定 ),指针内容可变,使同一指
令可指向不同存储单元,以实现 程序的循环, 共享,
并 提供转移地址 。
● 堆栈寻址
操作码 θ 堆栈指针 SP
SP,..
S...S =((SP))
M
R=02
M
0040
0040 S
...
...
...
地址指针
0070
...
栈顶
格式
SP既可出现在 指令中,也可隐含约定。
● 变址寻址
( 4)变址、基址寻址及其变化
SP 栈顶
M
S
...
......
低
高
堆栈向上生成
压栈,SP自动减 1,再存数。
-(SP),自减型间址 。
先取数,SP再自动加 1。
(SP)+,自增型间址 。
出栈:
指令给出一个寄存器号和一个地址量,寄存
器内容与地址量之和为有效地址。
操作码 θ RX D
D的位数有限,若不能提供全字长地址码,会使
访存空间受到限制 。
变址寄存器号
例, 用变址方式访问一组连续区间内的数组元素。
S =((RX)+ D)
D=首址D为存储区首址;(RX)为所访单元距离
首址的长度;
RX初值为 0,每访问一
个单元,(RX)+1。
格式 操作码 θ RX D
形式地址
修改量 基准地址
n-1
...
0
1
2...
D+1D+2
D+n-1
...
格式
( D的位数只需覆盖一个较小
的存储区间)
● 基址寻址
基址寄存器号 Rb
4K
指令给出一个寄存器号和一个地址量,寄存
器内容与地址量之和为有效地址。
操作码 θ Rb D
位移量
S =((Rb)+ D)
基准地址 相对于基址的位移
M
...
...
…...
…...
Rb
4K改变 Rb的内容,程序能访问
存储空间中任何一个定长区
间 (4K)。
便于访问两维数组中某类
指定的元素。
4K
4K
Rb M
...
...
…...
…...
Rb
D=2
D=2
学生姓名
性别
性别
年龄
年龄
学生姓名
变址与基址的区别:
变址,指令提供 基准量 (不变 ),
R提供 修改量 (可变 );适
于处理一维数组。
基址,指令提供 位移量 (不变 ),
R提供 基准量 (可变 );用
于扩大有限字长指令的访
存空间。
S =((RX)+(Rb)+ D)
格式
● 基址加变址
变址寄存器号
指令给出两个寄存器号和一个地址量,寄存
器内容与地址量之和为有效地址。
位移量
操作码 θ RX Rb D
基址寄存器号
便于处理两维数组。
格式
● 相对寻址
指令给出位移量,PC内容与位移量之和为有
效地址。 位移量
操作码 θ PC ± D
或隐含指定
S =((PC)± D)
有效地址相对
PC上下浮动,给
编程带来方便 。
格式
● 页面寻址
指令给出位移量,PC的高位部分 与位移量拼
接,形成有效地址。
位移量
操作码 θ PC D
或隐含指定
S =((PC)H,D)
例, M为 64KB,划分
为 256页,每页 256B。
页号 页内地址
用于页式管理存储系统。
寻址速度快,适于组织程序模块,
有效利用存储空间。
PC
0165H 7C
...
...
...017CH S
2,对寻址方式的说明
( 1)操作码隐含说明不同寻址方式
例,某机指令操作码最高两位
00,RR型指令,寄存器 -寄存器寻址
01,RX型指令,寄存器 -变址寻址
10,SI型指令,基址 -立即寻址
11,SS型指令,基址 -基址寻址
( 2)指令中设置专门字段说明寻址方式
例,某机指令的每个地址字段中各设置一个
3位的寻址方式字段。
操作码 θ 寻址方式 R 寻址方式 R
源地址字段 目的地址字段
3位3位
2.2.3 指令类型
1.传送指令
源地址 目的地址
数
设置时需考虑:
( 1)规定传送范围
例, DJS-100系列:
80X86:
IBM370:
R M
R M,R R
R M,R R,M M
( 2)指明传送单位
例, 用操作码说明 (VAX-11):
用地址量说明 (80X86):
传送次数由
计数器控制
MOVB
8
MOV AX,BX (16)
MOVW
16
MOVL
32
MOV AL,BL (8)
MOV EAX,EBX (32)
例, 80X86的串传送指令,REP MOVSW
( 3)设置寻址方式
在寻址方式的设置上几乎不受限制,能比较
集中地反映指令系统各种寻址方式的实现。
2.输入 /输出指令
各种信息
主机 外设
设置时需考虑:
( 1) I/O指令的功能扩展
如何用通用 I/O指令实现对各种具体设备的控制?
● I/O指令中留有扩展余地
指令中某些字段编码事先不定义,需要时再约定
其含义。
● I/O接口中设置控制 /状态寄存器
用于外设种类、数量不多的场合。
( 2)主机对外设的寻址方式
如何设置控制 /状态寄存器是接口设计的关键。
寻找 I/O接口中的寄存器的方式。
主机用 输出指令 或 传送指令 将具体设备的控制命令
按约定的代码格式送往接口中的 控制寄存器,向外
设发出命令。
外设的状态信息也以某种格式放在接口的状态寄存
器中,主机用 输入指令 或 传送指令 从 状态寄存器 中
取出有关信息进行查询、分析。
I/O端口
接口中的寄存器 的方式。
如何为 I/O端口分配地址?
● 单独编址
I/O地址空间不占主存空间,可与主存空间重叠。
=1 访问存储器
=0 访问 I/O端口
需设置标志区分访问对象,如
编址到寄存器,为每个寄存器 (I/O端口 )分配独
立的端口地址;
I/O指令中给出端口地址。
M/IO
● 统一编址
I/O端口占据部分主存空间。
常将存储空间的低端分配给主存单元,高端分配
给 I/O端口,以示区分。
编址到寄存器
● 设置 专用 I/O指令
针对单独编址,用 I/O指令访问 I/O端口。
指令中说明输入 /输出操作,并给出端口地址。
:为每个寄存器 (I/O端口 )分配总
线地址;
访问外设时,指令中给出总线地址。
( 3) I/O指令设置方式
显式 I/O指令
例, 80X86I/O指令设置
输入,IN AL,n;
端口地址
(n) AL (直接端口寻址 )
IN AL,DX;
间接端口地址
((DX)) AL(间接端口寻址 )
输出,OUT n,AL; (AL) n (直接端口寻址 )
OUT DX,AL; (AL) (DX)(间接端口寻址 )
主机调用输入机:
● 用 传送指令 实现 I/O操作
针对统一编址,用传送指令访问 I/O端口。
不设专用 I/O指令。
例, 某机 I/O接口中设置
控制 /状态寄存器 CSR,其总线地址为 177550(8进制 )
数据缓冲寄存器 DBR,其总线地址为 177552
隐式 I/O指令
控制 /状态字格式:
出错 故障 忙 完成 允许中断 维护 校验 启动
15 14 12 7 6 2 1 0
启动:
测试:
取数:
主机 177550控制字 (启动位为 1)传送指令
主机 177550状态字传送指令
主机 177552数据传送指令
● 通过 I/O处理机进行 I/O操作
CPU执行简单 I/O指令
(启动、停止、查询、清除 )
设置时需考虑 操作数类型, 符号, 进制 等;
运算结束后设置相应 状态标志 。
两级 I/O指令
( 1)算术运算指令
I/O处理机执行 I/O操作指令
(输入、输出 …… )
3.算术逻辑运算指令
( 2)逻辑运算指令
实现对代码位的 设置, 测试, 清除, 修改 等。
与或 异或
控制程序流程。
( 1)转移指令
4,程序控制指令
( 2)转子指令与返回指令
转子:操作码 子程序入口
无条件转移
条件转移
循环
:操作码 转移地址
:操作码 转移地址 转移条件
:转移条件为循环计数值
返回:操作码 返回地址
同一条返回指令应能提供多个不同的返回地址。
返回地址的存取,用堆栈存放返回地址。
( 3)软中断指令 程序
自陷指令
第二章复习提纲
1.I/O指令的功能扩展 (目的、方法 ),外设编址方
式和指令设置方式。
2.基本概念:扩展操作码 (扩展方法 )、地址结构
(简化方法 )、隐地址、显地址、基本寻址方式 (立
即、直接、间址、变址 )的含义与应用场合。
表示不同的功能调用
…
调试程序 ………
早期主要用于 程序的调试 。
现在常常用于 系统功能调用 。
以 INT n 的形式出现在程序中。
数据信息
控制信息
数值型数据
非数值型数据
指令信息等
第一节 定点表示与浮点表示
2.1.1 定点表示法
无符号数
定点整数
定点小数
00000000~ 11111111 0~ 255
11111111 ~ 01111111原 原 -127~ 127
补10000000 ~ 01111111 补 -128~ 127
1.1111111 ~ 0.1111111原 原 -(1-2-7)~ (1-2-7)
1.0000000 ~ 0.1111111补 补 -1~ (1-2-7)
1
2-7
E
浮点数真值,N = + R × M
阶码
Ef E1 … Em Mf M1 … Mn浮点数机器格式:
尾数阶符 数符
R:阶码底,隐含约定。
E:阶码,为定点整数,补码或移码表示。
其 位数 决定 数值范围 ; 阶符 表示 数的大小 。
M:尾数,为定点小数,原码或补码表示。
其 位数 决定 数的精度 ; 数符 表示 数的正负 。
尾数规格化,1/2≤ M < 1 最高有效位绝对值为 1
2.1.2 浮点表示法
1,格式
2,表示范围与精度
表示范围,-231~ 231 (1-2-9)
例,某规格化浮点数用补码表示,其中阶码 6位,含 1位阶
符;尾数 10位,含 1位数符。
阶符 1位,阶码 m位,补码表示,以 2为底;
数符 1位,尾数 n位,补码表示,规格化。
最小浮点数,
最大浮点数,
最小浮点正数,
阶码为最大数,2 -1m
尾数为绝对值最大的负数,-1
尾数为最大数:
阶码为最大数,2 -1m
1-2-n
阶码为最小数,-2m
尾数为最小正数,2-1
表示精度,2-33
第二节 指令信息的表示
指令:指示计算机执行某类操作的信息的集合。
本节主要讨论:一般 指令格式
常用 寻址方式
面向用户 指令类型
2.2.1 指令格式
指令基本格式 操作码 θ 地址码 D
一个 一个或几个
1,指令字长
定长指令格式
变长指令格式
便于控制
( 1) 定长操作码
各指令 θ 的位置、位数固定相同。
( 2)扩展操作码
各指令 θ 的位置、位数不固定,根据需要
变化。
合理利用存储空间
2,操作码结构
关键在设置扩展标志。
例, 指令字长 16位,可含有 3,2,1或 0
个地址,每个地址占 4位。
操作码 地址码
15~ 12 11~ 8 7 ~ 4 3 ~ 00000 X Y Z
1110 X Y Z
...,..,..,..
1111 0000 Y Z
1111 1110 Y Z
...,..,..,..
三地址指令 15条
二地址指令 15条
1111 1111 0000 Z
1111 1111 1110 Z
...,..,..,.,一地址指令 15条
1111 1111 1111 0000
1111 1111 1111 1111
...,..,..,.,零地址指令 16条
( 3)复合型操作码
操作码分为几部分,每部分表示一种操作。
例,某机算逻指令
3,地址结构
0 1 2 3 4 5 6 7 8 15
基本操作 进位 移位 回送 判跳 操作数
指令中提供的地址数 存储单元地址码寄存器编号
( 1)指令提供地址的方式
显地址方式
隐地址方式
:指令中明显指明地址。
:地址隐含约定,不出现在指令中。
直接或间接给出
( 2) 地址结构的简化
操作数地址
● 四地址结构指令
格式:
使用 隐地址 可以减少指令中的地址数,简化
地址结构 。
θ D1 D2 D3 D4
结果地址 下条指令地址
功能,(D1)θ (D2) D3
(D4) 下条指令
用指令计数器 PC指示指令地址。
● 三地址结构指令
格式:
操作数地址
θ D1 D2 D3
结果地址
下条指令地址功能:
转移时,用转移
地址修改 PC内容。
(D1)θ (D2) D3
(PC) + 1 PC
源 /目的
● 二地址结构指令
格式,θ D1 D2
目的 /源
功能,(D1)θ (D2) D2/D1
(PC) + 1 PC
双操作数:
● 一地址结构指令
格式,θ D1 隐含约定
单操作数:
功能:
● 零地址结构指令
格式:
(D1)θ (A) A
(PC) + 1 PC
θ (D1) D1
(PC) + 1 PC
θ
功能,用于堆栈或特殊指令操作。
例,ADD;
执行前:
低SP 10
20
46
SP 30
46
执行后:
高
低
高
2.2.2 寻址方式
是指 寻找操作数地址或操作数的方式 。
操作码 θ 立即数 S
( 1) 立即寻址
指令直接给出操作数。
1,常见寻址方式
定长格式:
变长格式,基本指令
立即数 S
数在指令中,
其长度固定、
有限。
数在基本指令之
后,其长度可变。
用来提供常数、设置初值等。
操作码 θ 有效地址 D
( 2) 直接寻址
指令直接给出操作数地址。
存储单元号
寄存器号
(数在 M中 )
(数在 R中 )
● 存储器直接寻址 (直接寻址)
定长格式 D的位数有限,限制访存范围
变长格式 基本指令
DL
DH
D的位数可覆盖
整个存储空间
S =( D)
操作码 θ 寄存器号 R
存储单元号
寄存器号
(数在 M中 )
(数在 M中 )
● 寄存器直接寻址 (寄存器寻址)
格式 R所占位数少;访问 R比访问 M快
格式
S =( R)
用于访问固定的存储单元或寄存器。
( 3)间接寻址
指令给出操作数的间接地址。
● 存储器间址
操作码 θ 间接地址 D
D=0030 0060...
0060 S...
S =((D))
M
间址单元
地址指针
操作码 θ 寄存器号 R
● 寄存器间址
格式
R所占位数少; R可提供全字长地址码;
修改 R内容比修改 M内容快。
格式
S =((R))
指针不变 (由指令指定 ),指针内容可变,使同一指
令可指向不同存储单元,以实现 程序的循环, 共享,
并 提供转移地址 。
● 堆栈寻址
操作码 θ 堆栈指针 SP
SP,..
S...S =((SP))
M
R=02
M
0040
0040 S
...
...
...
地址指针
0070
...
栈顶
格式
SP既可出现在 指令中,也可隐含约定。
● 变址寻址
( 4)变址、基址寻址及其变化
SP 栈顶
M
S
...
......
低
高
堆栈向上生成
压栈,SP自动减 1,再存数。
-(SP),自减型间址 。
先取数,SP再自动加 1。
(SP)+,自增型间址 。
出栈:
指令给出一个寄存器号和一个地址量,寄存
器内容与地址量之和为有效地址。
操作码 θ RX D
D的位数有限,若不能提供全字长地址码,会使
访存空间受到限制 。
变址寄存器号
例, 用变址方式访问一组连续区间内的数组元素。
S =((RX)+ D)
D=首址D为存储区首址;(RX)为所访单元距离
首址的长度;
RX初值为 0,每访问一
个单元,(RX)+1。
格式 操作码 θ RX D
形式地址
修改量 基准地址
n-1
...
0
1
2...
D+1D+2
D+n-1
...
格式
( D的位数只需覆盖一个较小
的存储区间)
● 基址寻址
基址寄存器号 Rb
4K
指令给出一个寄存器号和一个地址量,寄存
器内容与地址量之和为有效地址。
操作码 θ Rb D
位移量
S =((Rb)+ D)
基准地址 相对于基址的位移
M
...
...
…...
…...
Rb
4K改变 Rb的内容,程序能访问
存储空间中任何一个定长区
间 (4K)。
便于访问两维数组中某类
指定的元素。
4K
4K
Rb M
...
...
…...
…...
Rb
D=2
D=2
学生姓名
性别
性别
年龄
年龄
学生姓名
变址与基址的区别:
变址,指令提供 基准量 (不变 ),
R提供 修改量 (可变 );适
于处理一维数组。
基址,指令提供 位移量 (不变 ),
R提供 基准量 (可变 );用
于扩大有限字长指令的访
存空间。
S =((RX)+(Rb)+ D)
格式
● 基址加变址
变址寄存器号
指令给出两个寄存器号和一个地址量,寄存
器内容与地址量之和为有效地址。
位移量
操作码 θ RX Rb D
基址寄存器号
便于处理两维数组。
格式
● 相对寻址
指令给出位移量,PC内容与位移量之和为有
效地址。 位移量
操作码 θ PC ± D
或隐含指定
S =((PC)± D)
有效地址相对
PC上下浮动,给
编程带来方便 。
格式
● 页面寻址
指令给出位移量,PC的高位部分 与位移量拼
接,形成有效地址。
位移量
操作码 θ PC D
或隐含指定
S =((PC)H,D)
例, M为 64KB,划分
为 256页,每页 256B。
页号 页内地址
用于页式管理存储系统。
寻址速度快,适于组织程序模块,
有效利用存储空间。
PC
0165H 7C
...
...
...017CH S
2,对寻址方式的说明
( 1)操作码隐含说明不同寻址方式
例,某机指令操作码最高两位
00,RR型指令,寄存器 -寄存器寻址
01,RX型指令,寄存器 -变址寻址
10,SI型指令,基址 -立即寻址
11,SS型指令,基址 -基址寻址
( 2)指令中设置专门字段说明寻址方式
例,某机指令的每个地址字段中各设置一个
3位的寻址方式字段。
操作码 θ 寻址方式 R 寻址方式 R
源地址字段 目的地址字段
3位3位
2.2.3 指令类型
1.传送指令
源地址 目的地址
数
设置时需考虑:
( 1)规定传送范围
例, DJS-100系列:
80X86:
IBM370:
R M
R M,R R
R M,R R,M M
( 2)指明传送单位
例, 用操作码说明 (VAX-11):
用地址量说明 (80X86):
传送次数由
计数器控制
MOVB
8
MOV AX,BX (16)
MOVW
16
MOVL
32
MOV AL,BL (8)
MOV EAX,EBX (32)
例, 80X86的串传送指令,REP MOVSW
( 3)设置寻址方式
在寻址方式的设置上几乎不受限制,能比较
集中地反映指令系统各种寻址方式的实现。
2.输入 /输出指令
各种信息
主机 外设
设置时需考虑:
( 1) I/O指令的功能扩展
如何用通用 I/O指令实现对各种具体设备的控制?
● I/O指令中留有扩展余地
指令中某些字段编码事先不定义,需要时再约定
其含义。
● I/O接口中设置控制 /状态寄存器
用于外设种类、数量不多的场合。
( 2)主机对外设的寻址方式
如何设置控制 /状态寄存器是接口设计的关键。
寻找 I/O接口中的寄存器的方式。
主机用 输出指令 或 传送指令 将具体设备的控制命令
按约定的代码格式送往接口中的 控制寄存器,向外
设发出命令。
外设的状态信息也以某种格式放在接口的状态寄存
器中,主机用 输入指令 或 传送指令 从 状态寄存器 中
取出有关信息进行查询、分析。
I/O端口
接口中的寄存器 的方式。
如何为 I/O端口分配地址?
● 单独编址
I/O地址空间不占主存空间,可与主存空间重叠。
=1 访问存储器
=0 访问 I/O端口
需设置标志区分访问对象,如
编址到寄存器,为每个寄存器 (I/O端口 )分配独
立的端口地址;
I/O指令中给出端口地址。
M/IO
● 统一编址
I/O端口占据部分主存空间。
常将存储空间的低端分配给主存单元,高端分配
给 I/O端口,以示区分。
编址到寄存器
● 设置 专用 I/O指令
针对单独编址,用 I/O指令访问 I/O端口。
指令中说明输入 /输出操作,并给出端口地址。
:为每个寄存器 (I/O端口 )分配总
线地址;
访问外设时,指令中给出总线地址。
( 3) I/O指令设置方式
显式 I/O指令
例, 80X86I/O指令设置
输入,IN AL,n;
端口地址
(n) AL (直接端口寻址 )
IN AL,DX;
间接端口地址
((DX)) AL(间接端口寻址 )
输出,OUT n,AL; (AL) n (直接端口寻址 )
OUT DX,AL; (AL) (DX)(间接端口寻址 )
主机调用输入机:
● 用 传送指令 实现 I/O操作
针对统一编址,用传送指令访问 I/O端口。
不设专用 I/O指令。
例, 某机 I/O接口中设置
控制 /状态寄存器 CSR,其总线地址为 177550(8进制 )
数据缓冲寄存器 DBR,其总线地址为 177552
隐式 I/O指令
控制 /状态字格式:
出错 故障 忙 完成 允许中断 维护 校验 启动
15 14 12 7 6 2 1 0
启动:
测试:
取数:
主机 177550控制字 (启动位为 1)传送指令
主机 177550状态字传送指令
主机 177552数据传送指令
● 通过 I/O处理机进行 I/O操作
CPU执行简单 I/O指令
(启动、停止、查询、清除 )
设置时需考虑 操作数类型, 符号, 进制 等;
运算结束后设置相应 状态标志 。
两级 I/O指令
( 1)算术运算指令
I/O处理机执行 I/O操作指令
(输入、输出 …… )
3.算术逻辑运算指令
( 2)逻辑运算指令
实现对代码位的 设置, 测试, 清除, 修改 等。
与或 异或
控制程序流程。
( 1)转移指令
4,程序控制指令
( 2)转子指令与返回指令
转子:操作码 子程序入口
无条件转移
条件转移
循环
:操作码 转移地址
:操作码 转移地址 转移条件
:转移条件为循环计数值
返回:操作码 返回地址
同一条返回指令应能提供多个不同的返回地址。
返回地址的存取,用堆栈存放返回地址。
( 3)软中断指令 程序
自陷指令
第二章复习提纲
1.I/O指令的功能扩展 (目的、方法 ),外设编址方
式和指令设置方式。
2.基本概念:扩展操作码 (扩展方法 )、地址结构
(简化方法 )、隐地址、显地址、基本寻址方式 (立
即、直接、间址、变址 )的含义与应用场合。
表示不同的功能调用
…
调试程序 ………
早期主要用于 程序的调试 。
现在常常用于 系统功能调用 。
以 INT n 的形式出现在程序中。