同济大学操作系统L07_M:PDP-11基础知识及指令集
- 格式:pdf
- 大小:164.57 KB
- 文档页数:6
Advance Informationtenx technology, inc.TM57PE118位 单片机使用手册Tenx reserves the right to change or discontinue this product without notice.tenx technology inc.CONTENTS1.基本功能 (2)2.系统结构图 (2)3.管脚分配图 (3)4.管脚描述 (3)5.功能描述 (4)5.1 CPU芯片 (4)5.1.1 时钟配置和指令周期 (4)5.1.2 寻址模式 (4)5.1.3 程序计数器和堆栈 (5)5.1.4 ALU和工作寄存器 (5)5.1.5 状态寄存器 (5)5.1.6 中断 (6)5.2 芯片工作模式 (7)5.2.1 复位 (7)5.2.2 系统配置寄存器(SYSCFG) (7)5.2.3 可重复编程 (8)5.2.4 省电模式 (8)5.3 外围功能图 (9)5.3.1 WDT/WKT定时器 (9)5.3.2 可扩展的8位定时计数器(定时器0)(PSC) (9)5.3.3 系统时钟振荡器 (10)5.4 I/O口 (11)5.4.1 PA0-1 (11)5.4.2 PA2-4 (12)5.4.3 PA7 (13)6.内存功能图 (13)F-Plane (13)R-Plane (14)7.指令表 (15)8.电气特性 (26)1 tenx technology, inc.2 tenx technology, inc.1. 基本功能1.ROM :1K ⅹ14 OTP 或者512ⅹ14位 TTP TM (ROM 可编程两次) 2.PAM :48ⅹ8位 3. 堆栈:5级4. I/O 口:可编程三次(最大6脚)5. 定时计数器:带有1-256预分频的8位定时控制器6. 看门狗/唤醒定时器:基于内部RC 振荡,唤醒时间为20-160毫秒的芯片定时器7. 复位:电源复位,看门狗复位,低电压复位,外部复位8. 系统时钟模式:- 内部RC :4MHZ - 外部RC 9. 工作电压:LV 复位电压至5.5V 10. 指令:36个11. 中断:两个管脚中断,定时器0中断和唤醒定时器中断 12. 支持省电模式2. 系统结构图3 tenx technology, inc.3. 管脚分配图VDD 1 U 8VSSXrc/PA4 2 7PA0/INT0 CLKO/PA33 TM57PE116PA1 VPP/INT2/nRESET/PA745PA2/T0I4. 管脚描述管脚名称输入/输出管脚描述PA0–PA1 I/O位编程I / O 端口,可施密特触发输入或CMOS 推挽输出或者伪开漏式输出。
L22_E:设备管理之I/O系统概述与硬件部分一、单项选择题1.如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是_____________。
A. 程序查询B. 中断方式C. DMA方式D. 无条件存取方式2.在中断处理中,输入输出中断是指__________。
I. 设备出错II. 数据传输结束A. IB. IIC. I和IID. 都不是3.____________用作连接大量的低速或中速I/O设备。
A. 数据选择通道B. 字节多路通道C. 数据多路通道4.__________是直接存取的存储设备。
A. 磁盘B. 磁带C. 打印机D. 键盘显示终端5.按_____________分类可将设备分为块设备和字符设备。
A. 从属关系B. 操作特性C. 共享属性D. 信息交换单位6.通道是一种____________。
A. I/O端口B. 数据通道C. I/O专用处理器D. 软件工具7.CPU对通道的请求形式是。
A. 自陷B. 中断C. 通道命令D. 转移指令8.在配有操作系统的计算机中,用户程序通过向操作系统指出使用外部设备的要求。
A. 作业申请B. 原语C. 系统调用D. I/O指令9.CPU与通道可以并行执行,并通过实现彼此之间的通讯和同步。
A. I/O指令B. I/O中断C. I/O指令和I/O中断D. 操作员10.是直接存取设备。
A. 磁盘B. 磁带C. 打印机D. 键盘显示终端二、多项选择题11.设备管理的功能包括__________。
A. 设备的分配和回收B. 外围设备的启动及对磁盘的驱动调度C. 进程调度D. 外部设备中断处理E. 虚拟设备的实现12.从设备的使用角度可将设备分为__________。
A. 块设备B. 独占设备C. 字符设备D. 共享设备E. 慢速设备13.下列属于“通道”特征的是__________。
A. 负责数据输入输出工作B. 可以与CPU并行工作C. 比CPU工作速度快D. 一个通道可连接多个控制器E. 是一种软件14.通道是一种__________。
plc的基本知识点一、PLC的定义与基本概念。
1. 定义。
- PLC(Programmable Logic Controller),即可编程逻辑控制器。
它是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。
- 它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
2. 工作原理。
- 输入采样阶段:PLC以扫描方式按顺序将所有输入端的信号状态读入到输入映像寄存器中存储起来。
在本扫描周期内,这个输入映像寄存器中的数据不会改变,即使外部输入信号状态发生了变化。
- 程序执行阶段:PLC按从左到右、从上到下的顺序对用户程序进行扫描,并根据输入映像寄存器中的数据以及其他内部元件(如辅助继电器、定时器、计数器等)的状态进行逻辑运算,将运算结果写入到对应的输出映像寄存器中。
- 输出刷新阶段:在所有指令执行完毕后,将输出映像寄存器中的状态转存到输出锁存器中,通过输出电路驱动外部负载。
二、PLC的硬件组成。
1. 中央处理单元(CPU)- 功能:是PLC的核心部分,它执行用户程序,进行数据处理、逻辑判断、数值运算等操作,同时还对PLC的内部工作进行协调和控制。
- 类型:不同品牌和型号的PLC,其CPU的性能和功能有所差异。
例如,有的CPU 处理速度快,能够处理复杂的控制算法;有的CPU集成了多种通信接口,方便与其他设备进行通信。
2. 输入输出(I/O)接口。
- 输入接口:用于接收外部设备(如传感器、按钮等)的信号。
常见的输入信号类型有数字量输入(如开关信号的通断)和模拟量输入(如温度、压力等连续变化的信号)。
输入接口电路通常具有光电隔离等功能,以提高抗干扰能力。
- 输出接口:用于将PLC的运算结果输出给外部设备(如继电器、接触器、变频器等)。
输出接口也分为数字量输出(如控制继电器的吸合与断开)和模拟量输出(如输出0 - 10V或4 - 20mA的模拟信号来控制调节阀的开度)。
PLC编程语言入门,常用指令集汇总分享一、西门子PLC编程语言PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。
不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。
目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。
比如,SIMATIC STEP7 MicroWIN V3.2。
(1)梯形图在西门子PLC实际编程使用情况中中,梯形图语言是PLC程序设计中最常用的编程语言。
它是与继电器线路类似的一种编程语言。
由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。
梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
(2)指令表松下PLC编程指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。
在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。
同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。
指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。
其特点与梯形图语言基本一致。
(3)功能模块图语言(FBD)功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。
采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
PLC基本指令PLC(可编程逻辑控制器)是一种专门用于自动化控制系统的计算机设备,它通过执行一系列的指令来实现对工业过程的控制。
PLC基本指令是PLC编程中最基础的部分,掌握了这些指令,就能够进行更加复杂的控制操作。
一、LD指令LD指令是PLC中最基本的输入指令,它用于将一个输入点的状态传递给一个输出点。
LD指令的语法结构为:LD 输入点;例如,LD X0;表示将输入点X0的状态传递给输出点。
二、AND指令AND指令是PLC中的逻辑与指令,它用于判断多个输入点的状态是否同时为真。
AND指令的语法结构为:AND 输入点1,输入点2,...,输入点n;例如,AND X0,X1,X2;表示判断输入点X0、X1和X2的状态是否同时为真。
三、OR指令OR指令是PLC中的逻辑或指令,它用于判断多个输入点的状态是否有一个为真。
OR指令的语法结构为:OR 输入点1,输入点2,...,输入点n;例如,OR X0,X1,X2;表示判断输入点X0、X1和X2的状态是否有一个为真。
四、NOT指令NOT指令是PLC中的逻辑非指令,它用于将一个输入点的状态取反。
NOT指令的语法结构为:NOT 输入点;例如,NOT X0;表示将输入点X0的状态取反。
五、OUT指令OUT指令是PLC中最基本的输出指令,它用于将一个输入点的状态传递给一个输出点。
OUT指令的语法结构为:OUT 输出点;例如,OUT Y0;表示将输入点的状态传递给输出点Y0。
六、SET指令SET指令是PLC中的置位指令,它用于将一个输出点的状态置为真。
SET指令的语法结构为:SET 输出点;例如,SET Y0;表示将输出点Y0的状态置为真。
七、RST指令RST指令是PLC中的复位指令,它用于将一个输出点的状态复位为假。
RST指令的语法结构为:RST 输出点;例如,RST Y0;表示将输出点Y0的状态复位为假。
以上就是PLC基本指令的简单介绍,通过学习和掌握这些指令,我们可以进行更加复杂的PLC编程,实现对工业过程的精确控制。
PLC基本指令介绍PLC(可编程逻辑控制器)是一种常用于自动化控制系统的电子设备,它可以通过编程来实现不同的逻辑功能和控制操作。
PLC基本指令是PLC编程的基础,是PLC实现逻辑控制的基本工具。
1. LD(Load)指令:LD指令用于将逻辑输出输入的状态装载到PLC的存储器中,以供后续的逻辑运算和判断使用。
2.AND指令:AND指令用于进行逻辑与运算,当两个或多个输入信号同时为真时,输出信号为真,否则输出信号为假。
3.OR指令:OR指令用于进行逻辑或运算,当两个或多个输入信号中至少一个为真时,输出信号为真,否则输出信号为假。
4.NOT指令:NOT指令用于进行逻辑非运算,将输入信号取反,即如果输入信号为真,则输出信号为假,反之亦然。
5. BCD指令:BCD(Binary Coded Decimal)指令用于将二进制数转换为十进制数,或者将十进制数转换为二进制数。
6. ADD(Addition)指令:ADD指令用于进行加法运算,将两个输入信号相加,得到的结果保存在输出信号中。
7. SUB(Subtraction)指令:SUB指令用于进行减法运算,将一个输入信号减去另一个输入信号,得到的结果保存在输出信号中。
8. MUL(Multiplication)指令:MUL指令用于进行乘法运算,将一个输入信号乘以另一个输入信号,得到的结果保存在输出信号中。
9. DIV(Division)指令:DIV指令用于进行除法运算,将一个输入信号除以另一个输入信号,得到的结果保存在输出信号中。
10. JMP(Jump)指令:JMP指令用于跳转到程序中的指定位置,可以实现循环和分支等运算。
11. LBL(Label)指令:LBL指令用于标记程序中的位置,可以通过LBL指令实现程序的结构化管理。
12. OUT(Output)指令:OUT指令用于将输出信号发送到外部设备,实现对外部设备的控制。
13. ANI(Analog Input)指令:ANI指令用于读取模拟信号的输入值,可以读取温度、压力等模拟量。
L02_H:进程基本概念EH1.1:进程概念的提出一、单项选择题1.进程的并发执行是指若干个进程_________。
A. 同时执行B. 在执行的时间上是重叠的C. 在执行的时间上是不可重叠的D. 共享系统资源2.程序的顺序执行通常在①的工作环境中,具有②特征;程序的并发执行在③的工作环境中,具有④特征。
A. 单道程序B. 多道程序C. 程序可再现D. 资源共享3.下面对进程的描述中,错误的是__________。
A. 进程是动态的概念B. 进程执行需要处理机C. 进程是有生命期的D. 进程是指令的集合4.在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次______。
A. 等待活动B. 运行活动C. 单独操作D. 关联操作5.多道程序环境下,操作系统分配资源以为基本单位。
A. 程序B. 指令C. 进程D. 作业6.进程和程序的本质区别是。
A. 存储在内存和外存B. 顺序和非顺序执行机器指令C. 分时使用和独占使用计算机资源D. 动态和静态特征7.多道系统环境下,操作系统分配资源是以为基本单位。
A. 作业B. 指令C. 程序D. 进程8.操作系统通过__________对进程进行管理。
A. 进程B. 进程控制块C. 进程启动程序D. 进程控制区9.系统感知进程的唯一实体是。
A. JCBB. FCBC. PCBD. SJT二、多项选择题10.进程所具有的基本特征包括_________。
A. 动态性B. 顺序性C. 并发性D. 封闭性E. 异步性三、填空题11.进程的基本特征有①、②、独立、异步及结构特征。
12.进程(的静态描述)主要由①、②、③三部分内容组成,其中④是进程存在的唯一标志。
而⑤部分也可以为其他进程共享。
13.将进程的________链接在一起就形成了进程队列。
14.程序顺序执行时有顺序性、________和可再现性的特点。
15.进程是一个①态概念,而程序是一个②态概念。
并发进程方钰1Tongji University, 20152一组指令集从内存向寄存器中装入一个字;从寄存器向内存写入一个字;将寄存器中的两个操作数相加;……CPU执行指令从内存取指令解析指令CPU工作现场专用寄存器程序计数器:下一条指令的内存地址栈指针:输入参数,现场信息,局部变量,中间结果,…… 程序状态字:处理机状态字通用寄存器变量,中间计算结果, ……主要内容2.1 进程基本概念2.2 进程通信2.3 经典的进程通信问题2.4 进程调度与死锁2.5 线程2.6 UNIX V6++中的进程Tongji University, 20153Tongji University, 2015程序的顺序执行与并发执行A BC DA 输入过程计算过程输出过程A ACBC D顺序性:处理机的操作严格按照程序所规定的顺序执行。
封闭性:程序执行时独占全机,结果不受外界影响。
可再现性:只要执行时的环境和初始条件相同,结果即相同。
顺序性封闭性可再现性4Tongji University, 2015输入过程计算过程输出过程AA AC B CD间断性:相互制约导致并发程序具有“执行—暂停—执行”这种间断性的活动规律。
开放性:多个程序共享系统中的资源。
不可再现性:结果与并发程序的执行速度有关。
特征:A BCD程序的顺序执行与并发执行5程序一组指令代码的集合结构特征代码段、数据段、堆栈段、进程控制块进程静态的存放在某种介质上动态性,具有生命周期“由创建而产生,由调度而执行,由撤销而消亡”多个进程实体可同时存在于内存中并发执行独立运行、独立分配资源和独立接受调度的基本单位按不可预知(异步)的速度向前推进资源共享各种程序活动的相互依赖与制约程序的并发执行带来的问题……6Tongji University, 2015Tongji University, 2015操作系统所需的、用于描述进程的当前状况以及控制进程运行的全部信息内存P C B 区进程管理通用寄存器程序计数器(PC)程序状态字(PSW)栈指针进程状态进程优先级调度参数(算法?)事件消息队列指针信号量……处理机状态(CPU工作现场/ 虚拟CPU)进程调度信息存储管理程序和数据地址……其他资源管理文件…、设备…每个进程具有一个PCB操作系统最重要的记录型数据结构创建进程申请空白PCB需要调度进程查询参数实施进程调度恢复处理机现场找到程序和数据进程执行进程同步、通信读写文件……整个生命周期中,系统通过PCB对进程进行控制(内核原语)进程控制块(Process Control Block, PCB )进程通信Tongji University, 2015执行指针就绪表指针阻塞表指针PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB9按索引方式组织PCB就绪索引表阻塞索引表执行队列就绪队列阻塞队列空闲队列PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB9-按队列方式组织PCB PCB组织方式高效的数据组织方式内存P C B 区每个进程具有一个PCB操作系统最重要的记录型数据结构重要性高、访问频率高、数量巨大进程控制块(Process Control Block, PCB )8程序一组指令代码的集合结构特征代码段、数据段、堆栈段、进程控制块进程静态的存放在某种介质上动态性,具有生命周期“由创建而产生,由调度而执行,由撤销而消亡”多个进程实体可同时存在于内存中并发执行独立运行、独立分配资源和独立接受调度的基本单位按不可预知(异步)的速度向前推进资源共享各种程序活动的相互依赖与制约程序的并发执行带来的问题……9Tongji University, 2015Tongji University, 2015执行阻塞就绪24131.进程被调度2.进程由于等待某种外部事件被阻塞3.等待的外部事件发生被唤醒4.将CPU让给另一个进程进程的三种基本状态执行状态(当前正在使用CPU)就绪状态(可运行;但CPU被占用,暂时无法运行)阻塞状态(无法运行,直到某一外部事件发生)10Tongji University, 2015阻塞状态等待检查(等待外部事件发生)就绪状态排队等待叫号(就绪状态,等待调度)①就诊(分配CPU,进程执行)②等待检查(因等待外部事件阻塞)③检查完毕,重新等待(外部事件发生,重回就绪状态)④一次就诊时间到(时间片到)有急救病人(更高优先级进程)执行状态11Tongji University, 2015进程“上台”/“下台”引起进程切换调度的事件:(不同的调度算法会不同)1.进程时间片到2.有更高优先级的进程就绪3.进程阻塞,无法继续执行进程切换调度(由系统调度程序完成):1.保留现执行进程现场信息在其PCB中2.在就绪队列中选择另一个就绪进程3.用该进程PCB中的信息恢复现场抢占式/剥夺式调度PCB中的进程状态“执行”→“就绪”进程主动放弃PCB中的进程状态“执行”→“阻塞”“下台”进程未来某时刻会被调度程序重新选中而“上台” 调度算法 调度时机 调度过程 进程死锁进程的上下文切换进程状态的控制执行阻塞就绪241312然后,系统执行:Tongji University, 2015进程的阻塞与唤醒引起进程阻塞的事件:1.请求系统服务2.启动某个操作3.新数据尚未到达4.无新工作可做进程阻塞过程(被阻塞进程调用block原语):1.立即停止执行2.PCB中的进程状态“执行”→“阻塞”3.PCB进入阻塞队列4.调度程序完成进程切换调度进程自身的主动行为进程唤醒过程(有关进程调用wakeup原语):1.PCB从阻塞队列中移出2.PCB中的进程状态“阻塞”→“就绪”3.由调度算法决定是否切换调度进程不能永远“睡觉”,必须在某个时间被唤醒,两个原语必须成对出现执行阻塞就绪2413进程状态的控制13Tongji University, 2015引起进程挂起的事件:终端用户请求父进程请求操作系统负荷调节进程挂起过程(系统调用suspend原语):1.若为当前执行进程:立即停止执行,PCB中的进程状态“执行”→“静止就绪”,调度程序进行切换调度2.若非当前执行进程:PCB中的进程状态“活动就绪”→“静止就绪”/“活动阻塞”→“静止阻塞”进程激活过程(系统调用active原语):1.PCB 中的进程状态“静止就绪”→“活动就绪”/“静止阻塞”→“活动阻塞”2.若转入“活动就绪”,则PCB进入就绪队列,由调度算法决定是否切换调度进程状态的控制激活执行活动阻塞静止阻塞2413静止就绪活动就绪挂起3激活挂起14Tongji University, 2015激活执行活动阻塞静止阻塞2413静止就绪活动就绪挂起3激活挂起进程状态的控制创建引起进程创建的事件:用户登录作业调度提供服务应用请求进程创建过程(系统调用create原语):1.申请空白PCB2.为进程分配资源(内存空间)3.PCB初始化(标识、处理机状态、进程调度信息)4.进入就绪队列(活动?静止?)进程的树状结构ABEC DFGH父进程创建子进程子进程拥有父进程的资源子进程撤销时,资源归还父进程父进程撤销时,撤销所有子进程15Tongji University, 2015进程状态的控制创建终止引起进程终止的事件:正常结束异常结束外界干预(人为、父进程)进程终止过程:1.从PCB中读出该进程的状态2.立即终止该进程的执行3.设置调度标志(可重新调度)4.终止其所有子孙进程5.释放全部资源6.移除该进程PCB动态性,具有生命周期“由创建而产生,由调度而执行,由撤销而消亡”进程激活执行活动阻塞静止阻塞2413静止就绪活动就绪挂起3激活挂起16本节小结:1 程序与进程的区别与联系2 进程的调度状态及状态转换E E02:进程基本概念Tongji University, 201517。
同济大学SITP操作指南同济大学教务处共青团同济大学委员会大学生科技服务中心目录SITP简介........................ 错误!未定义书签。
SITP概况........................ 错误!未定义书签。
参加对象及方法................... 错误!未定义书签。
第五期SITP工作流程.............. 错误!未定义书签。
课题调整......................... 错误!未定义书签。
奖励措施......................... 错误!未定义书签。
经费报销......................... 错误!未定义书签。
相关问答......................... 错误!未定义书签。
SITP秘书处工作简介 .............. 错误!未定义书签。
同济大学大学生科技服务中心简介... 错误!未定义书签。
SITP简介同济大学大学生创新实践训练计划(STUDENTS INNOVATION TRAINING PROGRAM简称SITP),是我校构建创新人才培养体系,进一步推进教育教学改革、加强大学生创新能力培养的重要举措。
学校专门设立本科生创新实践基金用以支持该计划,从而资助在校大学生进行创新活动及科学研究,重点扶持以自主创新为核心、以自主科研为目标、以学生为主体的有优势有特色的课题。
SITP旨在使本科生及早接受科研训练,掌握基本的科学研究方法和手段,提高综合实践和项目管理能力,培养创新意识和团队合作精神,丰富大学生的第二课堂。
同济大学一至三年级的本科生(包括四年级的五年制本科生)均可申请参加SITP。
按照自愿组合的形式成立课题组,鼓励校内跨院系、跨学科联合组队。
课题实施期限分为半年期和一年期两类。
基金委按照与课题组签订的课题协议所规定的资助额度资助课题运作。
课题结题后,依据SITP课题的相关政策对优秀课题组及优秀组织单位给予相应奖励。
L08_M: UNIX中断处理过程源代码分析1.UNIX中断响应过程UNIX外部设备的中断矢量如下表所示。
表1:外部设备的中断矢量和总线请求等级外部设备名中断矢量地址中断处理程序地址新处理机状态字总线请求级设备处理子程序电传输出064 klou br4 4 klxint纸带输入070 pcin br4 4 pcrint纸带输出074 pcou br4 4 pcpint线频时钟100 kwlp br6 6 clock程序时钟104 kwlp br6 6 clock行式打印机200 lpou br4 4 lpintRK磁盘220 rkio br5 5 rkintr关于中断向量和中断处理程序入口的定义在low.s文件中,如下所示。
0500 / low core05010502 br4 = 2000503 br5 = 2400504 br6 = 3000505 br7 = 34005060507 . = 0^.0508 br 1f0509 405100511 / trap vectors0512 trap; br7+0. / bus error0513 trap; br7+1. / illegal instruction 0514 trap; br7+2. / bpt-trace trap 0515 trap; br7+3. / iot trap 0540 . = 200^.0541 lpou; br405420543 . = 220^.0544 rkio; br505450546 . = 240^.0547 trap; br7+7. / programmed interrupt 0548 trap; br7+8. / flotaing point0549 trap; br7+9. /segmentation violation 05500551 ///////////////////////////////////////////////////////////////////////0552 / interface code to C0553 ///////////////////////////////////////////////////////////////////////05540555 .globl call, trapbr定义表1所示的中断矢量定义所有的中断处理程序都是一条跳转指令+ 设备处理子程序的入口以时钟中断为例:通过两条语句实现程序跳转。
第2章基础知识U N I X运行在由数字设备公司( D E C)制造的P D P11系列计算机的较大型号机上。
本章对这些计算机,特别是P D P11 /40机的某些重要特征提供概括性的摘要。
如果读者以前并不熟悉P D P11系列计算机,那么应当先读D E C出版的《P D P11处理机手册》。
一台P D P11计算机由下列几部分组成:一个处理器(也称为C P U)、与之相连接的一个或多个内存部件以及若干外设控制器,将这三部分连接起来的是一根称之为“U n i b u s”(单总线)的双向平行通信线。
2.1 处理机处理机是按1 6位字长的指令、数据和程序地址设计的,它包含一组高速寄存器。
2.2 处理机状态字这是一个1 6位寄存器,它分成若干位段,它们的意义说明如下:位说明1 4,1 5当前状态( 00=核心态)1 2,1 3前状态( 11=用户态)5,6,7处理机优先级(范围0-7 )4陷入位3N位,若上次结果为负则设置此位2Z位,若上次结果为零则设置此位1V位,若上次操作产生溢出则设置此位0C位,若上次操作产生进位则设置此位处理机可以在两种不同模式下操作:核心态和用户态。
与用户态相比,核心态具有较高优先权,它由操作系统保留供自身使用。
模式选择决定了下列事项:• 使用哪一组存储管理段寄存器,这些寄存器的作用是将程序虚地址翻译成物理地址。
• 使用哪一个寄存器作为r 6,r 6是“栈指针”。
• 某些指令,例如h a l t(停机),是否可以执行。
2.3 通用寄存器处理机包含了一组1 6位寄存器,其中有8个是任何时候都可存访的“通用寄存器”。
这些寄存器被称之为:r 0、r 1、r 2、r 3、r 4、r 5、r 6以及r 7。
前6个通用寄存器可用作为累加器、地址指针或变址寄存器。
U N I X 使用这些寄存器的惯例是:• r 0、r 1在表达式求值时用作临时累加器;在过程返回时存放返回值;在过程调用的某些情况下可用来传递实参。
• r 2、r 3和r 4在过程执行时可用作局部变量。
在过程调用入口处存储这些寄存器的值,在退出过程时则恢复这些寄存器值。
• r5用作过程激活记录动态链的链首指针,该动态链存放在当前栈上。
r 5被称为“环境指针”。
最后两个通用寄存器具有专门的意义和作用:• r 6(也称为s p )用作栈指针。
P D P 11 /40处理机有两个寄存器,分别在核心态和用户态下用作s p 。
而其他通用寄存器则没有这种双份使用方式。
• r7(也称为p c )用作程序计数器,亦即指令地址寄存器。
2.4 指令集P D P 11指令集包括双、单和零操作数指令。
指令长度通常是一个字,某些指令则扩充为两个或叁个字以包括附加的寻址信息。
对于单操作数指令,其操作数通常称为“目的操作数”;在双操作数指令中,两个操作数分别被称为“源操作数”和“目的操作数”。
后面将说明各种寻址方式。
文件m 40.s 是针对11 /40处理机的汇编语言支持例程文件。
下列指令在该文件中得到应用。
注意,N 、Z 、V 、C 是处理机状态字( p s )中的条件码位。
很多指令以副作用设置这些位,而“b i t ”、“c m p ”和“t s t ”指令的主要功能则是设置这些条件码位。
adc 将C 位的内容加至目的操作数。
add 将源操作数加至目的操作数。
ash 按移位计数将指定寄存器的内容左移相应次数(负值表示右移次数)。
ashc 除涉及两个寄存器外,与a s h 指令相同。
asl 所有位向左移1位。
第0位装入0,而第1 5位的原值则装入C 。
asr 所有位向右移1位。
第1 5位保持原先值,而第0位的原先值则装入C 。
beq 若等于,也就是若Z =1则转移。
bge 若大于或等于,也就是若N =V 则转移。
bhi 若高于,也就是若C =0以及Z =0则转移。
bhis 若高于或相同,也就是若C =0则转移。
bic 若源操作数中的位为非零值,则将目的操作数中的相应位清除为零。
bis 对源和目的操作数执行或操作,将结果存入目的操作数。
bit 对源和目的操作数执行逻辑与操作,设置条件码。
ble 若大于或等于,也就是若Z =1或N =V 则转移。
blo 若低于( 0),也就是若C =1则转移。
bne 若不等于( 0),也就是若Z =0则转移。
第2章基础知识215br 转移到.-1 28和.+1 27之间的一个单元,其中,・表示当前单元的地址。
clc 清除C 。
clr 将目的操作数清为0。
cmp 比较源和目的操作数,设置条件码位。
若源操作数的值小于目的操作数值,则设置N 位。
dec 将目的操作数的值减1。
div 存在r n 和r (n +1)(其中,n 是偶数)中的3 2位二进制补码整数被除以源操作数。
商存在r n 中,而余数则存在r (n +1)中。
inc 将目的操作数的值加1。
jmp 跳转至目的地址。
jsr 跳转至子程序。
寄存器值则按下列方式从左向右移动:p c 、r n 、-( s p )=d e s t .、p c 、r nmfpi 将前地址空间中指定字的值压入当前栈。
mov 将源操作数值复制至目的操作数。
mtpi 从当前栈弹出一个字,将其值存入前地址空间中的指定字中。
mul 将r n 的内容和源操作数相乘。
若n 是偶数,则将积存放在r n 和r (n +1)中。
reset 将U n i b u s 中的I N I T 线设置成1 0m s 。
其作用是重新启动所有设备控制器。
ror 将目的操作数中各位循环右移1位。
第0位的原先值装入至C ,而C 的原先值装入至第1 5位。
rts 从子程序中返回。
从r n 中重装p c ,从栈中重装r n 。
rtt 从中断或陷入返回。
从栈中弹出重装p c 和p s 。
sbc 从目的操作数中减进位位。
sob 从指定寄存器值中减1。
若结果非0,则转移回“位移”( o f f s e t )字。
sub 从目的操作数中减源操作数。
swab 交换目的操作数中的高、低字节。
tst 按目的操作数的内容设置条件码,N 和Z 。
wait 使处理器空转,释放U n i b u s ,直至发生一硬件中断。
与上面说明的字版本指令一样,下列字节版指令也用于m 40.s 文件中:b i si n c c l rm o v c m p t s t2.5 寻址方式P D P 11指令集的新颖和复杂性很多来自于它所提供的多种寻址方式,这些寻址方式可以用于规定源和目的操作数。
下面说明“m 40.s ”中使用的寻址方式。
216下篇莱昂氏UNIX源代码分析2.5.1 寄存器方式操作数驻留在一个通用寄存器中,例如:c l r r 0m o v r 1,r 0a d d r 4,r 2在下列方式中,指定的寄存器包含一地址值,用其定位操作数。
2.5.2 寄存器延迟方式寄存器包含操作数的地址,例如:i n c ( r 1)a s r ( s p )a d d ( r 2),r 12.5.3 自动增1方式寄存器包含操作数地址。
作为一副作用,在操作后,寄存器值增1,例如:clr ( r 1)+m f p i ( r 0)+m o v ( r 1)+,r 0m o v r 2,(r 0)+c m p ( s p )+,(s p )+2.5.4 自动减1方式寄存器值先减1,然后用来定位操作数,例如:i n c -( r 0)m o v -( r 1),r 2m o v ( r 0)+,-( s p )c l r -( s p )2.5.5 变址方式操作数地址由两部分组成,一部分是寄存器包含的值,另一部分是紧跟指令后的一个 1 6位字值,两者相加得到操作数地址,例如:c l r 2 (r 0)m o v b 6 (s p ),(s p )movb -r e l o c (r 0),r 0第2章基础知识217m o v -1 0(r 2),(r 1)在这种寻址方式中,寄存器可被视为变址寄存器或基地址寄存器。
m 40.s 采用后一种看法。
上面的第三个例子是使用寄存器作为变址寄存器的少数几个实例中的一个。
(注意,_r e l o c 是一个可接受的变量名。
)有两种寻址方式,它们只用于下列两个例子中:j s rp c ,*(r 0)+j m p * 0f (r 0)其中,第一个例子涉及“自动增量延迟”方式的使用。
(这用于例程c a l l 中的0 785和0 799行。
)企图执行的子程序的地址在r 0指向的地址字中找到,也就是说涉及到两级间接寻址。
在此种使用中r 0增1的副作用并无任何实际影响。
第二个例子出现在1 0 5 5和1 0 6 6行,它是“变址延迟”方式的一个例子。
“j u m p ”(“跳转”)的目的地址是一个字的内容,该字的地址值是0 f 加上r 0的值(一个小的正整数)。
这是实现多路选择(multi-way switch)的标准方法。
下列两种方式用程序计数器作为指定的寄存器,以达到某种特定的作用。
2.5.6 立即方式这是p c 自动增1方式。
操作数从程序串中取得,也就是这是一个立即操作数,例如:a d d$ 2,r 0a d d$ 2,(r 1)b i c$ !7,r 0m o v$ K I S A 0,r 0m o v$ 77406,(r 1)+2.5.7 相对方式这是p c 变址方式。
相对于当前程序计数器值的地址从程序串中取得,并与p c 值相加得到操作数的绝对地址,例如:b i c$ 340,P S b i t$ 1,S S R 0i n cS S R 0m o v( s p ),K I S A 6应当引起注意的是,“变址”、“变址延迟”、“立即”以及“相对”方式都将指令延长了一个字。
由于存在“自动增1”和“自动减1”方式,再加上r 6的特殊属性使得我们可以方便地将许多操作数存放在栈或L I F O (后进先出)列表中,在存储器中它向下生长。
从此可以得到很多优点:代码串的长度缩短;易于编写位置独立的代码。
218下篇莱昂氏UNIX源代码分析2.6 UNIX汇编程序U N I X汇编程序是一个两遍汇编程序,它不具有宏功能。
《U N I X汇编程序参考手册》对其作了完整的说明。
下面的一些简要注解应对读者有所帮助:1) 一数字字符串可定义一数值常数。
若该数字字符串以“.”终止,则被解释为十进制数,否则为八进制数。
2) 字符“/”用于表示该行的后继部分是注释。
3) 若在同一行中包含有多条语句,则相互间应当用分号分隔。
4) 字符“.”用于表示当前位置。
5) 在D E C汇编用“#”和“@”之处,U N I X汇编分别改用了“$”和“*”。
6) 标识符由若干字母数字字符组成(包括下划线)。
只有前8个字符是有意义的,而且第一个字符不能是数字字符。