1、学习目标学习目标v 描述精神科护理学的定义。v 描述精神医学的发展简史。v 描述精神科护理的三个发展阶段。v 能用实例说明精神科特殊护理的内容。1.理解精神科护士的素质要求。国外v古希腊最伟大的医学家希波克拉底将各种病态的精神兴奋归于一类,称为躁狂症,而将相反的情况称为忧郁症,这是精神病理现象最早的概括和分类。v中世纪(从公元5世纪到17世纪)的欧洲封建社会,神学、迷信、巫术和占星术等反科学势力占压倒优势,医学几乎完全由教会及巫师所把持,精神病患者遭到残酷的迫害。因此,几乎没有什么重大的发展。国外v19世纪,精神病患者开始进入医院接受照顾与治疗。这段时期,精神病学的临床与理论研究也逐渐繁荣起来
2、,尤其是19世纪末与20世纪初,一大批卓越的精神病学家脱颖而出,如“现代精神病学之父”克雷丕林,“描述性精神医学”v1953年精神药物发现;19世纪末,弗洛伊德的精神分析治疗出现。v20世纪30年代先后发明了电休克和胰岛素休克疗法。20世纪后期之后,提出了新的疾病模式,精神医学已由过去的器质论、心因论演变为所谓的综合论。第二节 精神科护理学发展简史欧美精神科护理的发展过程有组织的护理起源于中世纪时罗马天主教教会对十字军伤兵的照顾,当时以护理穷人为主。随着精神医学的发展,精神科护理在教育、角色功能等方面有了较大进展精神科护理在专业的领域里向前跨进一大步,进入了整体性护理的新阶段第三节 现代精神科
3、护理工作的内容与要求一、护理工作的内容(一一)心理心理护护理理(二二)安全安全护护理理(三三)饮饮食食护护理理(四四)睡眠睡眠护护理理(六六)保保证医证医嘱嘱的的执执行行(五五)个个人人卫卫生生护护理理二、精神科护士的基本素质要求(三)心理素质(二)专业素质(一)职业素质154.5 汇编语言程序设计汇编语言程序设计 定义数据段、附加段、堆栈段、代码段定义数据段、附加段、堆栈段、代码段 段地址的装填段地址的装填 功能段功能段 正确返回正确返回DOS1.源程序与源程序与PC-DOS接口接口2.DOS、BIOS功能调用功能调用3.汇编语言程序设计汇编语言程序设计 164.5.1 源程序与源程序与PC
4、-DOS接口接口 (W p143)汇编语言源程序经过汇编转变为目标程序,当用链接程序对其作进行链接和定汇编语言源程序经过汇编转变为目标程序,当用链接程序对其作进行链接和定位时,位时,a.操作系统为每个用户程序建立一个操作系统为每个用户程序建立一个程序段前缀区(简称程序段前缀区(简称PSP),长度为长度为256个字个字节,主要用于存放用户程序的相关信息。节,主要用于存放用户程序的相关信息。b.PSP内容内容:在:在PSP的开始处(偏移地址的开始处(偏移地址0000H)安排一条)安排一条INT 20H 软中断指令。软中断指令。INT 20H 中断服务程序是由中断服务程序是由PC DOS提供的,该程
5、序的功能是使系统返回到提供的,该程序的功能是使系统返回到DOS管理状态。因此,用户在组织程序时,必须使程序执行完能够转去执管理状态。因此,用户在组织程序时,必须使程序执行完能够转去执行存放于行存放于 PSP开始处的开始处的 INT 20H 指令。指令。c.将将用户程序定位于用户程序定位于PSP的下方的下方,并设置段寄存器,并设置段寄存器DS和和ES的值,使它们指向的值,使它们指向PSP的开始处即指令的开始处即指令INT 20H 存放的段地址。存放的段地址。d.将将CS设置设置为用户程序代码段的段基值,为用户程序代码段的段基值,IP设置设置为代码段中第一条要执行的指为代码段中第一条要执行的指令地
6、址,把令地址,把SS设置设置为堆栈段的段基值为堆栈段的段基值,SP指向堆栈段的栈底(取决于栈的长指向堆栈段的栈底(取决于栈的长度)。度)。e.运行用户程序。运行用户程序。因此,保证用户程序执行完后自动返回因此,保证用户程序执行完后自动返回DOS有两种方法:有两种方法:1标准序标准序 2非标准方法非标准方法171标准序标准序1)将用户程序中的)将用户程序中的主程序定义为主程序定义为FAR过程过程,其最后一,其最后一条指令为条指令为RET;2)在主程序的开始处将)在主程序的开始处将PSP所在段的段地址所在段的段地址 DS(或(或 ES)保存进栈,然后再将一个全)保存进栈,然后再将一个全0的字(的字
7、(PSP的段内的段内偏移地址)压人堆栈。这就是程序结构中的以下三条偏移地址)压人堆栈。这就是程序结构中的以下三条指令:指令:PUSH DS;保护;保护PSP段地址段地址 MOV AX,0;保护偏移;保护偏移0地址地址 PUSH AX于是堆栈中保存了于是堆栈中保存了 PSP的段地址和的段地址和0偏移量(偏移量(INT 20H的全的全地址)。当程序执行到主程序的最后一条指令地址)。当程序执行到主程序的最后一条指令RET时,时,由于该过程定义为由于该过程定义为FAR,则从堆栈中弹出两个字到,则从堆栈中弹出两个字到IP和和CS,用户程序便转去执行,用户程序便转去执行INT 20H指令,使控制返回到指令
8、,使控制返回到DOS。这一措施称为标准序。是一种较老的程序结束方。这一措施称为标准序。是一种较老的程序结束方法。法。18例例1:;实现;实现Z=X+YMY_DATA SEGMENT X DB 36 Y DB 64MY_DATA ENDSMY_EXTRA SEGMENTZ DB?MY_EXTRA ENDSMY_CODE SEGMENT ASSUME CS:MY_CODE,DS:MY_DATA,ES:MY_EXTRA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,SEG X MOV DS,AX MOV AX,SEG Z MOV ES,AX MOV A
9、L,X ADD AL,Y MOV Z,AL STATR ENDP MY_CODE ENDS END START 192非标准方法非标准方法 不定义主程序为不定义主程序为FAR过程并去掉标准序部分,只在过程并去掉标准序部分,只在代代码段结束之前码段结束之前(即(即 CODE ENDS之前)增加两句:之前)增加两句:MOV AH,4CH INT 2IH则程序执行完后同样可以正常返回则程序执行完后同样可以正常返回DOS。这是执行了功。这是执行了功能号为能号为4CH的的DOS系统功能调用。系统功能调用。20例例2:;实现;实现Z=X+YMY_DATA SEGMENT X DB 36 Y DB 64MY
10、_DATA ENDSMY_EXTRA SEGMENTZ DB?MY_EXTRA ENDSMY_CODE SEGMENT ASSUME CS:MY_CODE,DS:MY_DATA,ES:MY_EXTRA START:MOV AX,SEG X MOV DS,AX MOV AX,SEG Z MOV ES,AX MOV AL,X ADD AL,Y MOV Z,AL MOV AH,4CH INT 21HMY_CODE ENDS END START214.5.2 有关有关I/O的的BIOS/DOS功能调用功能调用 (p180)1基本输入输出系统基本输入输出系统ROM BIOS和基本和基本DOS系统系统在在
11、80X86Pentium微机系统的微机系统的ROM中固化有一组外部设备驱动与管理软件,中固化有一组外部设备驱动与管理软件,组成组成PC机基本输入输出系统(机基本输入输出系统(Basic I/O System),称为),称为ROM BIOS,它,它处于系统软件的最底层。处于系统软件的最底层。操作系统操作系统DOS在在BIOS基础上开发了一组输入输出设备处理程序基础上开发了一组输入输出设备处理程序 IBMBIOCOM,这也是,这也是 DOS与与 ROM BIOS的接口,在的接口,在IBMBIOCOM的基础上,的基础上,DOS还开发有文件管理等一系列处理程序还开发有文件管理等一系列处理程序IBMDO
12、SCOM。在汇编语言程序设计中,用户可通过使用在汇编语言程序设计中,用户可通过使用ROM BIOS和基本和基本DOS系统提供的系统提供的这些功能模块子程序,来编制直接管理和控制计算机硬件设备的底层软件,这些功能模块子程序,来编制直接管理和控制计算机硬件设备的底层软件,如完成基本如完成基本 I/O设备(设备(CRT显示器、键盘、打印机、软盘、硬盘、磁带显示器、键盘、打印机、软盘、硬盘、磁带等)、内存和文件管理,以及中断向量、时钟和日历的读出与设置等操作,等)、内存和文件管理,以及中断向量、时钟和日历的读出与设置等操作,以扩充汇编语言的功能。以扩充汇编语言的功能。22ROM BIOS的软中断类型号
13、有的软中断类型号有n=51FH,DOS的软中断类型号有的软中断类型号有n=20H,2IH,232AH,2EH,2FH,33H和和67H等等 DOS系统功能调用系统功能调用(21H)P1801显示单字符显示单字符(02H功能功能)2显示字符串显示字符串(09H功能功能)3单字符输入单字符输入(01H、07H、08H功能功能)4字符串输入字符串输入(0AH功能功能)5直接控制台输入输出直接控制台输入输出(06H功能功能)6检测键盘状态检测键盘状态(0BH功能功能)7保存中断向量保存中断向量(35H功能功能)8设置中断向量设置中断向量(25H功能功能)23附录附录1 DOS功能调用表(节选)功能调用
14、表(节选)INTAH功能功能调用参数调用参数返回参数返回参数21H0程序中止程序中止CS=程序段前缀程序段前缀01键盘输入并回显键盘输入并回显AL=输入字符输入字符02显示输出显示输出DL=输出字符输出字符05打印机输出打印机输出DL=输出字符输出字符07键盘输入无回显键盘输入无回显AL=输入字符输入字符09显示字符串显示字符串DS:DX=串地址串地址0A键盘输入到缓冲键盘输入到缓冲区区DS:DX=缓冲区首地缓冲区首地址址(DS:DX+1)=实际输实际输入字符数入字符数4C返回返回DOS系统系统242调用调用 BIOSDOS功能子程序的基本方法功能子程序的基本方法 BIOSDOS的每个功能子程
15、序都对应着一个子程序文的每个功能子程序都对应着一个子程序文件。使用这些子程序时,用户不必过问其内部结构和件。使用这些子程序时,用户不必过问其内部结构和细节,也不必关心硬件细节,也不必关心硬件I/O接口的特性,只要直接用一接口的特性,只要直接用一条软中断指令条软中断指令 INT n 即可即可(n称为中断类型号或中断类称为中断类型号或中断类型码),这称为中断调用。型码),这称为中断调用。一般,对功能子程序的调用需要经过以下步骤:一般,对功能子程序的调用需要经过以下步骤:子程序人口参数送规定寄存器;子程序人口参数送规定寄存器;子程序编号(也称功能调用号)送子程序编号(也称功能调用号)送AH寄存器;寄
16、存器;发软中断命令:发软中断命令:INT n 在规定的寄存器中取出口参数。在规定的寄存器中取出口参数。有的软中断命令只对应一个子程序,这时的功能调用无有的软中断命令只对应一个子程序,这时的功能调用无需上列步骤需上列步骤;有的软中断对应多个子程序,必须经;有的软中断对应多个子程序,必须经过步骤过步骤调用功能。调用功能。25例例1.单字符输入单字符输入(01H、07H、08H功能功能)从键盘读入一个字符并显示。从键盘读入一个字符并显示。入口参数入口参数 无无 功能号功能号 AH=01H 类型号类型号 21H 出口参数出口参数 AL=键入字符的键入字符的ASCII码码 实现功能实现功能 等待从键盘输
17、入一个字符等待从键盘输入一个字符,并在屏幕上回显,光标移动并在屏幕上回显,光标移动,检测检测Ctrl-Break键键26例例 利用键盘输入的字符产生分支:利用键盘输入的字符产生分支:MOV AH,1 ;等待从键盘输入等待从键盘输入 INT 21H CMP AL,Y ;是是Y?JZ yes CMP AL,y ;是是y?JZ yes no:.JMP exit yes:.exit:.27从键盘读入一个字符不显示从键盘读入一个字符不显示 入口参数入口参数 无无 功能号功能号 AH=07H类型号类型号 21H出口参数出口参数 AL=键入字符的键入字符的ASCII码码实现功能实现功能 等待从键盘输入一个字
18、符等待从键盘输入一个字符,不在屏幕上回显,不在屏幕上回显,不检测不检测Ctrl-Break键键28例例 用不带回显功能输入密码时:用不带回显功能输入密码时:input:MOV AH,07H ;等待从键盘输入等待从键盘输入 INT 21H MOV DI,AL ;存入缓冲区存入缓冲区 CMP AL,0DH ;是回车符?是回车符?JNZ input ;不是,继续输入不是,继续输入 check:、29例例2.显示单字符显示单字符(02H功能功能)入口参数入口参数 DL=要显示字符的要显示字符的ASCII 码码 功能号功能号 AH=02H类型号类型号 INT 21H出口参数出口参数 无无实现功能实现功能
19、 显示指定字符显示指定字符,光标随动。光标随动。例例 显示字符显示字符A MOV DL,A MOV AH,02H INT 21H30例例 使光标回到下一行的行首。使光标回到下一行的行首。MOV DL,0DH ;显示回车符显示回车符MOV AH,02HINT 21HMOV DL,0AH ;显示换行符显示换行符MOV AH,02HINT 21H31例例3.显示字符串显示字符串(09H功能功能)入口参数入口参数 定义要显示的字符串,定义要显示的字符串,字符串尾应为字符串尾应为$,作为结束显示的标志。,作为结束显示的标志。DS:DX=字符串的首地址字符串的首地址功能号功能号 AH=09 H类型号类型号
20、 21H出口参数出口参数 无无实现功能实现功能 显示字符串,遇显示字符串,遇$停止显示,光标随动停止显示,光标随动。32例例 编程显示字符串编程显示字符串 Tsinghua Universitydata SEGMENT ;定义显示的子符串定义显示的子符串stri DB Tsinghua University,$data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data ;置缓冲区地址于置缓冲区地址于DS:DX MOV DS,AX LEA DX,stri MOV AH,09H ;调显示功能调显示功能 INT 21H MOV AH,4
21、CH ;返回返回DOS INT 21H code ENDS END start33例例4.字符串输入字符串输入(0AH 功能功能)入口参数入口参数 DS:DX=缓冲区的首地址缓冲区的首地址 (DS:DX)=限制最多输入的字符数限制最多输入的字符数 功能号功能号 AH=0AH 类型号类型号 21H 出口参数出口参数 (DS:DX+1)=实际键入的字符实际键入的字符(不含回车符不含回车符)从从(DS:DX+2)开始顺序存放键入的字符串,开始顺序存放键入的字符串,回车符回车符0DH为串尾最后一字符。为串尾最后一字符。实现功能实现功能 等待从键盘输入字符串,并存入设定的缓冲区内,等待从键盘输入字符串,
22、并存入设定的缓冲区内,同时回显字符串,光标随着移动,同时回显字符串,光标随着移动,回车符使光标回到行首。回车符使光标回到行首。注意事项:注意事项:应按要求先定义缓冲区,再调用。应按要求先定义缓冲区,再调用。34例例 应用应用0AH功能输入字符串。功能输入字符串。data SEGMENT ;定义缓冲区定义缓冲区max DB 11 ;定义限制最多输入个数定义限制最多输入个数lenth DB?;用于存放实际输入个数用于存放实际输入个数stri DB 11DUP(?);用于存放输入的字符串用于存放输入的字符串data ENDScode SEGMENT ASSUME CS:code,DS:datasta
23、rt:.MOV AH,0AH INT 21H ;调调0A输入功能输入功能 .code ENDS 从键盘输入从键盘输入ABCD,回车,内存的存放结果回车,内存的存放结果:0B 04 41 42 43 44 0D 00max0700 00 00 00 00 00 00 0080a 0b0f12345 690c 0d 0elenthstri地址地址内内容容DS:DX35如下编程与上例相同如下编程与上例相同:data SEGMENTmax DB 11 DB?DB 11 DUP(?)data ENDS从键盘输入从键盘输入ABCD,回车,内存的存放结果回车,内存的存放结果:等价于等价于max DB 11,
24、?,?,11 DUP(?)0B 04 41 42 43 44 0D 00max0700 00 00 00 00 00 00 0080a 0b0f12345690c 0d 0e地址地址内容内容DS:DX360AH功能注意事项功能注意事项:输入的字符均带回显,且光标随字符移动。输入的字符均带回显,且光标随字符移动。当输入回车符结束时,也回显回车符。当输入回车符结束时,也回显回车符。表现为功能调用结束后,光标回到了行首。表现为功能调用结束后,光标回到了行首。回车符回车符0DH作为一个输入的字符存放在字符串尾,作为一个输入的字符存放在字符串尾,但计数输入个数时,不包括回车键。但计数输入个数时,不包括回
25、车键。实际最多能输入的字符数实际最多能输入的字符数=限制的最多数限制的最多数-1 (回车符占一个)(回车符占一个)执行完执行完0AH功能后,功能后,DS和和DX的值不变,的值不变,DS:DX仍指向缓冲区的首地址。仍指向缓冲区的首地址。整个缓冲区的大小应为整个缓冲区的大小应为:限制的最多数限制的最多数+2 max DB 11,?,11 dup(?)37p182例:根据屏幕提示,输入字符串并存入内存例:根据屏幕提示,输入字符串并存入内存DATA SEGMENT BUF DB 100 ,?,?,100 DUP(?)?);准备接受键盘输入信息;准备接受键盘输入信息 MESG DB WHAT IS YO
26、UR NAME?$;要显示的提示信息要显示的提示信息DATA ENDSCODE SEGMENTassume cs:code,ds:dataSTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESG MOV AH,9 ;屏幕显示提示信息;屏幕显示提示信息 INT 21H MOV DX,OFFSET BUF MOV AH,10 ;接受键盘输入;接受键盘输入 INT 21H .CODE ENDS END START 38例例5检测键盘状态检测键盘状态(0BH功能功能)入口参数入口参数 无无功能号功能号 AH=0BH类型号类型号 21H出口参数出口参数 AL=FFH,
27、表示有键按下。表示有键按下。AL=0 ,表示无键按下。表示无键按下。实现功能实现功能 检测键盘状态检测键盘状态(通过检测键盘缓冲区实现通过检测键盘缓冲区实现)39例例 利用利用0B功能实现按键退出循环。功能实现按键退出循环。.continue:.MOV AH,0BH ;检测键盘缓冲区是否有键按下检测键盘缓冲区是否有键按下 INT 21H CMP AL,0FFH JNZ continue ;无键按下继续循环无键按下继续循环 .MOV AH,4CH INT 21H404.5.3 汇编语言程序设计汇编语言程序设计程序结构:程序结构:基本结构(段)基本结构(段)过程调用(过程设计,参数传递)过程调用(
28、过程设计,参数传递)模块调用(模块间的程序转移,全局符号的定义与引用)模块调用(模块间的程序转移,全局符号的定义与引用)基本算法:基本算法:1 算术运算(二进制算术运算(二进制/BCD、单字节、单字节/多字节)多字节)2 代码转换(二进制代码转换(二进制/BCD、二进制、二进制/ASCII、字符大、字符大/小写)小写)3 字符串处理(查找、统计、传送、比较、插入、删除字符串处理(查找、统计、传送、比较、插入、删除4.表处理(换码、排序等)表处理(换码、排序等)注意基本注意基本I/O设备数据、端口数据的输入输出。设备数据、端口数据的输入输出。41作业:作业:4-1、3、5、10、11、14、15、16、17、19、22、24(编功能段(编功能段/编完整程序)编完整程序)