科学网

 找回密码
  注册

tag 标签: 实验

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

怎么翻译爱因斯坦谈科学起源
热度 5 zlyang 2009-2-23 12:32
1953 年,在致斯威泽 (J. E. Switzer) 的信中,爱因斯坦谈到科学的起源: “ The development of Western science has been based on two great achievements , the invention of the formal logical system (in Euclidean geometry)by the Greek philosophers , and the discovery of the possibility of finding out causal relationships by systematic experiment (at the Renaissance).In my opinion one need not be astonished that the Chinese sages did not make these steps. The astonishing thing is that these discoveries were made at all. ” 两个通行的译文: ( 1 )其中一个是商务印书馆出版的《爱因斯坦文集》: “ 西方科学的发展是以两个伟大的成就为基础,那就是:希腊哲学家发明 形式逻辑体系 ( 在欧 几里得几何学中 ) 以及通过 系统的实验发现有可能找出因果关系 ( 在文艺复兴时期 ) 。在我看来,中国的贤哲没有走上这两步,那是不用惊奇的,令人惊奇的倒是这些发现 ( 在中国 ) 全都做出来了。 ” ( 2 ) 最后一句话译文以前常被用来表明爱因斯坦对中国古代科学的赞赏,中国科学院研究生院教授李醒民认为这完全译错了。他将之改译为: “ 若是这些发现在中国全都做出来了倒是令人惊奇的。 ” 到底该怎么翻译?请大家指导!!谢谢! ————————————————— 后记 许良英先生在 2005 年的最终翻译为: “西方科学的发展是以两个伟大的成就为基础:希腊哲学家发明形式逻辑体系(在欧几里得几何中),以及(在文艺复兴时期)发现通过系统的实验可能找出因果关系。 “在我看来,中国的贤哲没有走上这两步,那是用不着惊奇的。作出这些发现是令人惊奇的。” 见: ( 美 ) A. 爱因斯坦著,许良英、王瑞智编 . 走近爱因斯坦 . 沈阳:辽宁教育出版社, 2005. 第 187 页 。 许良英 . 关于爱因斯坦致斯威策信的翻译问题 . 自然辩证法通讯, 2005, 27(5): 100-101 这个翻译是许良英先生经过多方考察后的结果。 感谢各位老师的指教! 飞机超音速视频 2005 (许良英) 关于爱因斯坦致斯威策信的翻译问题_兼答何凯文君.pdf
个人分类: 基础数学-逻辑-物理|17890 次阅读|20 个评论
汇编语言实验园地_10
求新 2009-2-16 12:30
实验9程序与实验10实验课题 实验10 利用子程序进行串处理及有关日期的程序设计 一、实验内容:利用子程序结构设计从串中查找一个字符的所有位置、查找一个字符串。宏汇编程序设计。 二、实验目的:1. 学习结构化程序设计方法。 2. 如何在一个串中查找到一个字符的所有位置。 3. 如何在一个串中查找到一个另一个字符串。 4. 认识宏的概念,学习宏汇编程序设计方法 三、实验题目 1. 要求自行设定二个字类型的串STRING1与STRING2的内容,用程序对这二个串进行比较,如果相等,0送BX,否则,0FFFFH送BX。设串长为COUNT。最后分别以16进制形式显示BX、STRING1与STRING2的内容。 思考:本题如果不借助串比较指令来做,需要怎样设计?要考虑一个串和另一个串不相同但前面有部分字符相同的情况。 以下两题为实验8第1题利用子程序结构求解的设计参考。 2. 已知程序段如下,将它补充完整,使能将结果(BX的值)以16进制形式在屏幕上显示,根据显示情况分析说明其功能是什么?要求将16进制显示程序段利用子程序进行设计。 DATA SEGMENT BUF DB AABAAAAABBCD COUNT EQU $-BUF DATA ENDS MOV AL, A MOV DI,OFFSET BUF MOV CX,COUNT DEC DI NEXT: INC DI CMP AL, LOOPE NEXT MOV BX,DI JNZ EXIT MOV BX,0FFFFH ;当ZF=1,CX=0时退出循环 EXIT:. 3. 对在STRING中搜索A的程序段进行补充设计,要求对设计加详细注释。要求自行设定一个长度COUNT的字节类型的串STRING的内容,用循环程序对这个串进行搜索,如果搜索到字节类型数据A,显示当前位置(字长)。STRING、COUNT、A的内容自行设计。 LEA DI,STRING MOV AL,A MOV CX,COUNT CLD REPNE SCASB JZ OK OK: 4. 在一个串中查找一个字符,显示查到该字符的次数。 5 用串指令在一个串中查找一个字符,显示所有查到位置的地址。如果没有欲查字符,显示-1。 6.在一个串中查找另一串,如果找到,将查到串的首地址存到DI中。 7.求编写显示系统的当前日期和时间的程序。要求程序运行时显示的信息格式为: Current date is 10-30-2008. Current time is 10:23:26.12 相关的DOS功能调用: 【获取系统当前日期】 调用指令:INT 21H 功 能 号:2AH 入口参数:无 出口参数:CX = 年(范围1980~2099) DH = 月(1~12) DL = 日 【获取系统当前时间】 调用指令:INT 21H 功 能 号:2CH 入口参数:无 出口参数: CH = 小时(0~23) CL = 分(0~59) DH = 秒(0~59) DL = 百分之一秒(0~99) 8. 设计一个万年历程序。已知2008年1月1日为星期二,求2008年之后21世纪的某年某月某日是星期几?不考虑输入错误。 分析:假设通过键盘分别输入公元年份(输入末二位)、月份(二位)、日期(二位),可以利用前面的子程序分别变成二进制数。再计算输入日期与2008年1月1日之间相差日数X,将X除以7的余数加2就代表星期几,7代表星期日,1代表星期1,。而要计算相差日数X,必须考虑闰年问题:4年一闰、百年不闰、400年闰。非闰年365天,2月份28天;闰年366天, 2月份29天。可以先分析年份之差,对每一年判断是否闰年,再加366或365;再分析月份之差,求出所求年内距离1月1日的天数。为了能用一个程序计算各个月的情况,设计一个表:ruler=31,28,31,30,31,30,31,31,30,31,30,31,每一个值代表一个月是大月还是小月,1表示31天,0表示30天,利用间址查表求天数。2月单独计算。为求程序清晰,分别设计了分析闰年、月份二个子程序,在求解星期几的程序中调用。 实验10参考程序段 1. 用循环指令在一个串中查找一个字符,第一次查到该字符时将地址放在DI中。 MOV AX,DATA MOV DS,AX MOV AL, 'A' MOV DI,OFFSET BUF MOV DX,0 MOV CX,COUNT DEC DI NEXT: INC DI CMP AL, JZ NEXT1 LOOP NEXT NEXT1: 2. 用串指令在一个串中查找一个字符,查到第一个时将位置放在DI中。 MOV AX,DATA MOV DS,AX MOV ES,AX MOV AL, 'A' MOV DI,OFFSET BUF MOV CX,COUNT REPNE SCASB JNZ EXIT DEC DI ;找到的存放地址放在DI中 3.在DAT1串中查找ADD2串的第1个字符(串长COUNT2),如果找到,将剩余串的首地址存到ADD1中,剩余串长度存到ADD2中。 MOV AX,DATA MOV DS,AX MOV ES,AX MOV ADD1,OFFSET DAT1 ;立即数传存储器 MOV AL,X ;取欲查之字符串第1个字符 MOV ADD2,COUNT2 CLD BACK1: MOV DI,ADD1 ;取欲查字串首地址 MOV CX,ADD2 ;取欲查字串长度 REPNE SCASB ;查找 MOV ADD1,DI ;保存剩余串首地址 MOV ADD2,CX ;保存剩余串长度 4.求系统的当前日期和时间分别放在DX与CX中的程序。假使在数据区FNAME保存一个文件的名字。其中DX 中存年月日的格式: 0-4位:日,5-8位:月,9-15位:年份-1980。CX中所存时间的格式: 0-4位:秒/2,5-10位:分,11-15位:时 MOV DX, OFFSET FNAME MOV AL, 2 ; 读写方式 MOV AH, 3DH ;打开文件 INT 21H MOV BX, AX MOV AH, 57H ; 读\改日期 MOV AL,0 ;0 表示读出时间,1表示改写时间 INT 21H MOV DI,CX 5.求以十进制方式显示DX(日期)内容的宏。 AXTOBCD1 MACRO PUSH SI PUSH DI PUSH CX MOV SI,DX ;DX 中存年月日 0-4位:日,5-8位:月,9-15位:年份-1980 ;保存CX中所存时间 0-4位:秒/2,5-10位:分,11-15位:时 MOV CL,7 ;年 ROL SI,CL MOV DX,SI AND DX,7FH ADD DX,1980 AXTOBCD DX MOV DL,'.' MOV AH,2 INT 21H MOV CL,4 ;月 ROL SI,CL MOV DX,SI AND DX,0FH AXTOBCD DX MOV DL,'.' MOV AH,2 INT 21H MOV CL,5 ;日 ROL SI,CL MOV DX,SI AND DX,1FH AXTOBCD DX MOV DL,'.' MOV AH,2 INT 21H POP CX POP DI POP SI ENDM 6.求以十进制方式显示DI(时间)内容的宏。 AXTOBCD2 MACRO PUSH SI PUSH DI PUSH CX MOV CL,5 ;时 ROL DI,CL MOV DX,DI AND DX,1FH AXTOBCD DX MOV DL,'.' MOV AH,2 INT 21H MOV CL,6 ;分 ROL DI,CL MOV DX,DI AND DX,3FH AXTOBCD DX MOV DL,'.' MOV AH,2 INT 21H MOV CL,5 ;秒 ROL DI,CL MOV DX,DI AND DX,1FH SHL DX,1 AXTOBCD DX MOV DL,'.' MOV AH,2 INT 21H POP CX POP DI POP SI ENDM 7. 求从键盘输入二个十进制数字变成二进制数子程序 ;子程序名:IMPOR ;程序功能:从键盘输入二个十进制数字变成二进制数 ;入口参数: ;出口参数: 二进制数:BX ;使用寄存器:AX IMPOR PROC MOV AH,1H INT 21H ;键盘输入1个字符,不考虑输入错 SUB AL,30H MOV BL,10 MUL BL MOV BL,AL MOV AH,01H INT 21H ;键盘输入第二个数字 SUB AL,30H ADD AL,BL EXIT: MOV AH,0 MOV BX,AX RET IMPOR ENDP 8. 求AX中数表示的某一年份的日数的子程序 ;子程序名:LEAPY ;程序功能:求AX中数表示的年份的日数 ;入口参数:年份:CX ;出口参数:该年日数:AX ;使用寄存器:DX、BX LEAPY PROC MOV AX,CX ;保存DI到AX MOV DX,0 MOV BX,4 DIV BX CMP DX,0 JNZ DISP3 ;不能整除4,不是闰年 MOV AX, CX MOV BX,100 DIV BX CMP DX,0 JNZ DISP4 ;不能整除100,是闰年 MOV AX, CX MOV BX,400 DIV BX CMP DX,0 JZ DISP4 ;能整除400,是闰年 DISP3: MOV AX,365 MOV BYTE PTR Y,0 ;置非闰年标志 JMP EXIT1 DISP4: MOV AX,366 MOV BYTE PTR Y,1 ;置闰年标志 EXIT1: RET LEAPY ENDP 实验9部分参考程序 1、在数据区中有如下定义,要求首先将有关常量存放到数据区BUF中,再编一个循环程序,使依次以10进制形式显示各变量的值(不要求显示变量名)。 NUM1EQU25*4-50 NUM2EQUNUM1/7 VAR1DB1,2,3,4,5 VAR2DB'12345' NUM4EQUVAR2-VAR1 NUM5EQU0FH BUF DB 7 DUP(?) ;程序1解:以十进制形式显示各数(循环方式) DATA SEGMENT NUM1EQU25*4-50 NUM2EQUNUM1/7 VAR1DB1,2,3,4,5 VAR2DB'12345' NUM4EQUVAR2-VAR1 NUM5EQU0FH BUF DB 7 DUP(?) D1 DB ?,?,?,?,?,? ;根据子程序要求建立显示数据区 DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF ;将有关数据放BUF数据区使方便循环求解 MOV ,BYTE PTR NUM1 INC SI MOV ,BYTE PTR NUM2 INC SI MOV AL,VAR1 MOV ,AL INC SI MOV AL,VAR2 MOV ,AL INC SI MOV ,BYTE PTR NUM4 INC SI MOV ,BYTE PTR NUM5 MOV SI,OFFSET BUF ;准备从BUF数据区依次取数显示 MOV DI,OFFSET D1+5 ;根据子程序要求将DI指向显示数据区尾部 MOV BP,6 ;共计显示6个数据 NEXT: MOV AH,0 ;根据子程序要求将欲显示数据取到AX中 MOV AL, ;显示数据为字节类型,而AX为字类型 CALL P1 ;调用显示子程序 INC SI DEC BP ;共显示6个数据,由BP决定循环次数 JNZ NEXT MOV AH,4CH INT 21H ;子程序名:p1 ;功能: 以十进制形式显示任意字 ;输入参数: 显示字在AX中。要求在数据区建5字节的显示数据区, ;要求用DI指向其尾部。 ;输出参数: ;* * * * * * * P1 PROC MOV BX,10 ;准备除以10 CHANGE10: MOV DX,0 ;将除数的高16位(在DX中)清0,DX存放余数 DIV BX ;DX,AX除以BX (BX=10) ADD DL,30H ;余数变为ASCII码值 MOV BYTE PTR ,DL ;存储十进制数 DEC DI ;到上一单元 CMP AX,0 ;是否为0? JNZ CHANGE10 ;不为0转CHANGE10 MOV CX,5 ;准备连续显示5个数 CHANGE11:MOV DL,BYTE PTR ;取出存放在BUF中的十进制数到DL供显示 MOV AH,2 ;显示1个字符 INT 21H INC DI LOOP CHANGE11 RET P1 ENDP CODE ENDS END START 2. 利用子程序结构将八位无符号二进制数转换为十进制数的ASCII码并显示。 DATA SEGMENT BIN DB 11111111B ASC DB 3 DUP(?),$ DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA ;给数据段寄存器DS赋值 MOV DS,AX MOV AL,BIN MOV BX,OFFSET ASC ADD BX,2 ;指向存放ASCII码值结果的存贮单元末地址 CALL TRANSFORM ;转子程序实现转换 LEA DX,ASC MOV AH,9 INT 21H MOV AH,4CH ;中断返回DOS状态 INT 21H ;* * * * * * * ;子程序名:TRANSFORM ;功能:将八位无符号二进制数转换为十进制数ASCII码 ;入口参数:八位二进制数=AL ; 存放ASCII码值末地址=BX ;出口参数:在ASC开始的存贮单元中 ;* * * * * * * TRANSFORM PROC NEAR PUSH CX PUSH DX MOV CX,3 MOV DL,10 AGAIN:MOV AH,0 DIV DL ADD AH,30H MOV ,AH DEC BX LOOP AGAIN POP DX POP CX RET TRANSFORM ENDP CODE ENDS END START 说明:转换子程序中用到了AX(AH,AL),BX,CX,DX(DH,DL)四个16位的寄存器。为什么进入子程序后,只对CX,DX寄存器作了压栈保护,而对AX,BX 寄存器没有呢?原因在于:AX,BX是用于参数传递目的的两个寄存器,而CX,DX却不是。进入子程序中压栈保护所用的寄存器一般指不用于参数传递目的的寄存器,所以对CX,DX作了压栈保护,而对AX,BX却没有。 另外,此题也可不用除法指令,而采用一连串的相减来实现,思路为:八位二进制数能够减去100的次数,就是转换的十进制数百位;同理,从余下的二进制数中再减去10的次数,便是十进制的十位;最后余下的就是十进制数个位。有兴趣的同学可自己试着实现。 结合上题与本题可以总结子程序的格式,子程序所放的位置,子程序的调用方法。 调用子程序命令为: CALL 子程序以 子程序名 PROC 开始。 例如: TRANSFORM PROC 后面的 NEAR 表示在同一段内,可以省略,否则要用FAR。子程序结尾为: RET 子程序名 ENDP 例如,本子程序结尾: RET TRANSFORM ENDP 每个子程序开始应当给出说明:子程序名、功能、入口参数、出口参数、使用寄存器。既便于自己理解,也方便之后其他程序调用。使用寄存器只列举在本程序中使用了但未在子程序中保护且不是入口参数和出口参数中声明了的寄存器。 子程序用CALL命令调用,格式: CALL 子程序名 子程序不能在代码中随意放,初学建议放在MOV AH,4CH 和 INT 21H 这二句之后。 3. 用子程序形式求解实验7第3题:在内存的源数据区SOURCE处有若干个ASCII码字符,要求将其中的英文大写字母变换为小写字母,其它字符不变换,并存放到结果数据区DEST处。 分析:英文大写字母AZ,ASCII码值为41H5AH。相应的小写字母为az,ASCII码值为61H7AH。英文大写字母要转换为相应的小写字母只要ASCII码值加20H即可。 例如:B─b 42H+20H=62H 我们将转换这一过程用子程序TRANBL来实现,参数传递借助存贮单元,其算法流程图如右图所示。 完整程序如下所示: DATA SEGMENT SOURCE DB 'BEIjin2008OLYMPIC' COUNT EQU $-SOURCE ;字符个数 DEST DB COUNT DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX CALL TRANBL MOV AH,4CH INT 21H ;* * * * * * * ;子程序名:TRANBL ;功能:大写字母转换为小写字母 ;输入参数:数据区SOURCE处,字符个数由COUNT指明 ;输出参数: 输出数在数据区DEST处 ;* * * * * * * TRANBL PROC NEAR PUSH AX PUSH CX PUSH SI PUSH DI MOV SI, OFFSET SOURCE MOV DI, OFFSET DEST MOV CX,COUNT AGAIN:MOV AL, CMP AL,41H ;与大写字母A比较 JB NEXT CMP AL,5AH ;与大写字母Z比较 JA NEXT ADD AL,20H ;转换 NEXT:MOV ,AL INC SI INC DI LOOP AGAIN POP DI POP SI POP CX POP AX RET TRANBL ENDP CODE ENDS END START 6. 求将一个16位二进制数转换为任意P(0到19)进制数,P从键盘输入并显示(超过9的数字按:10用A,11用B,,19用I表示)。 分析:在前面例子中已经给出了16位二进制数转换为十进制、十六进制的例子,方法都是依次除进制数、取余、倒写。转换为任意P进制数的问题,只是将这些例题中的除数要更换为P的具体值。可以将这些转换程序改写成子程序,子程序中要用到寄存器DI、AX,使用寄存器不多,故设计P从主程序经BX带入、二进制数从主程序经SI带入。为具有实用价值,本题所涉及的P值及二进制数均从键盘输入,输入的都是ASCII码,需要变成二进制数,该工作分别设计子程序完成。 程序设计如下: DATA SEGMENT CHAR_BUF DB 6 ;缓冲区最大长度 DB ? ;实际输入字符个数 DB 6 DUP(0) ;输入缓冲区 BUF DB 17 DUP(0) ;输出缓冲区 CLEW1 DB 'PLEASE INPUT ALGORI X(0....65535) :', '$' ;提示信息1 CLEW2 DB 0DH,0AH,'PLEASE INPUT CARRY P(0....19) :', '$' ;提示信息2 ENTER1 DB 0DH,0AH, '$' ;回车换行 DATA ENDS STACK SEGMENT STACK DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET CLEW1 ;提示信息1 MOV AH,9 INT 21H CALL IMPOR1 ;输入二进制数子程序 MOV DX,OFFSET CLEW2 ;提示信息2 MOV AH,9 INT 21H CALL IMPOR2 ;输入进制数P子程序 MOV DX,OFFSET ENTER1 ;回车换行 MOV AH,9 INT 21H MOV DI, OFFSET BUF ;根据VERSIO入口要求使指针DI指向BUF缓冲区 ADD DI,17 ;假定BUF从0起准备17个单元,DI指向BUF尾 MOV BYTE PTR ,$ ; 所有余数的最后加$ CALL VERSIO ;转换并显示子程序 MOV AH,4CH INT 21H ;子程序名:IMPOR1 ;程序功能:从键盘输入至多5个十进制数字变成二进制数(0到65535),回车表示输完 ;入口参数:缓冲区首址:CHAR_BUF ;出口参数: 从键盘输入的数:SI ;使用寄存器:DI,DX,BX,CX,AX IMPOR1 PROC NEAR INPUT: MOV DX,OFFSET CHAR_BUF MOV AH,0AH INT 21H ;键盘输入字符串 MOV DI,OFFSET CHAR_BUF MOV CL, ;取实际输入串长度 MOV CH,0 MOV AX,0 ;准备存放结果 MOV BX,10 ;乘10的乘数 MOV DH,0 ;清DX高8位 CHANGE: MUL BX ;(AX)乘10 MOV DL, ;取一个字符 SUB DL,30H ;变成数字 ADD AX,DX INC DI LOOP CHANGE MOV SI,AX ;带出结果 RET IMPOR1 ENDP ;子程序名:IMPOR2 ;程序功能:从键盘输入至多二个十进制数字变成进制数P(219) ;入口参数: ;出口参数: 进制数P:BX ;使用寄存器:AX IMPOR2 PROC NEAR MOV AH,01H INT 21H ;键盘输入1个字符,不考虑输入错 SUB AL,30H CMP AL,1 ;如果第1个字符输入大于1,表示只1位 JA EXIT MOV BL,10 MUL BL MOV BL,AL MOV AH,01H INT 21H ;键盘输入第二个数字 SUB AL,30H ADD AL,BL EXIT: MOV AH,0 MOV BX,AX RET IMPOR2 ENDP ;子程序名:VERSIO ;程序功能:将16 位二进制数转换为P进制数并显示 ;入口参数:数组BUF首址: DI,进制数P:BX,存放二进制数:SI ;出口参数: ;使用寄存器:AX VERSIO PROC NEAR MOV AX,SI CHANGE1: DEC DI ;指针向前移 DIV BL ;(AX)除以P余数在AH中 ADD AH,30H ;余数变为对应的ASCII码值 CMP AH,39H ;是否是A-F JBE NEXT ADD AH,7 ;如果是A-F,再加7 NEXT: MOV BYTE PTR ,AH ;保存转换后的十六进制数结果 MOV AH,0 CMP AL,0 ;判断商是否为0? JNZ CHANGE1 ;不为0转CHANGE1 MOV DX,DI MOV AH,9 INT 21H RET VERSIO ENDP CODE ENDS END START 7. 求一个小于65535的整数N的因数分解,即将一个整数分解成质数的乘积。 分析:因数分解的方法是从I=2起,看能否整除N,如果能,则I为一个质数,记下整除后的数代换N并继续整除到不能整除为止。再将I加1后继续,,直到I大于被除数为止。 ;设数据区如下,求分解为质数放在PRIMEN中并显示。 DATA SEGMENT M1 DW 10920 M2 DW 0 PRIMEN DW 10 DUP(0) M DB 0 d db 5 dup(0) DATA ENDS STACK SEGMENT STACK DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK START:MOV AX,DATA MOV DS,AX CALL PRIME ;转分解质数子程序 LEA DI,D+5 ;指向显示数据区尾地址 LEA SI,PRIMEN ;指向质数数据区首地址 MOV CL,M ;欲显示的质数个数 MOV CH,0 LOOP1:MOV AX, ;取显示数据 CALL P1 ADD SI,2 LOOP LOOP1 MOV AH,4CH INT 21H ;子程序名:PRIME ;程序功能:将字数据分解为质数 ;入口参数:字数据:变量M1 ;出口参数: 质数数组:PRIMEN ; 数组元素个数:M ;使用寄存器:AX PRIME PROC MOV DI,OFFSET PRIMEN MOV AX,M1 MOV M2,AX MOV CL,0 DISP1: MOV BX,2 ;从2开始分析质数 DISP2: MOV AX,M2 MOV DX,0 DIV BX CMP DX,0 ;余数是否为0? JNE DISP4 MOV ,BX ;保存一个质数 ADD DI,2 ;准备存放下一个质数 MOV M2,AX INC CL DISP3: MOV DX,0 DIV BX CMP DX,0 ;继续取出同一个质数不再保存 JNE DISP4 MOV M2,AX JMP DISP3 DISP4: CMP BX,M2 JA EXIT INC BX JMP DISP2 EXIT: MOV M,CL RET PRIME ENDP ;子程序名:p1 ;功能: 以十进制形式显示任意字 ;输入参数: 显示字在AX中。要求在数据区建5字节的显示数据区, ;要求用DI指向其尾部。 ;输出参数: ;* * * * * * * P1 PROC PUSH BX PUSH DX PUSH DI PUSH CX MOV BX,10 ;准备除以10 CHANGE10: MOV DX,0 ;将除数的高16位(在DX中)清0,DX存放余数 DIV BX ;DX,AX除以BX (BX=10) ADD DL,30H ;余数变为ASCII码值 MOV BYTE PTR ,DL ;存储十进制数 DEC DI ;到上一单元 CMP AX,0 ;是否为0? JNZ CHANGE10 ;不为0转CHANGE10 MOV CX,5 ;准备连续显示5个数 CHANGE11:MOV DL,BYTE PTR ;取出存放在BUF中的十进制数到DL供显示 MOV AH,2 ;显示1个字符 INT 21H INC DI LOOP CHANGE11 POP CX POP DI POP DX POP BX RET P1 ENDP CODE ENDS END START 8. 计算:X的平方根与有的平方根的和 其中x、y为整型数据,分别存放在XBUF和YBUF单元中,所得结果f存放在FBUF中。要求将FBUF中数据在屏幕上显示。 分析:求一个整数平方根可以通过将该整数依次减去1、3、5、7(n-1)的奇数,所够减的次数即为平方根值。 例如求16的平方根时可这样进行: 16-1=15 够减1次 15-3=12 够减2次 12-5=7 够减3次 7-7=0 够减4次 所以16=4 求平方根的过程我们用子程序SQROOT来实现,参数的传递借助堆栈。求平方根子程序算法流程图如图所示。 DATA SEGMENT XBUF DW 81 YBUF DW 100 FBUF DW ? DATA ENDS STACK SEGMENT TOP DW 20 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA ;给DS赋值 MOV DS,AX MOV SI,XBUF CALL SQROOT MOV AX,SI MOV SI,YBUF CALL SQROOT ADD SI,AX CALL DISPLAY16 MOV AH,4CH INT 21H ;* * * * * * * ;子程序名:SQROOT ;功能:求平方根运算 ;输入参数:SI ;输出参数:SI ;* * * * * * * SQROOT PROC NEAR PUSH AX PUSH BX PUSH CX MOV AX,SI ;取被开方数 SUB CX,CX ;CX置0 AGAIN:MOV BX,CX ;下面三条指令使BX=2*CX+1 ADD BX,BX INC BX SUB AX,BX JC OVER ;不够减转OVER INC CX JMP AGAIN OVER:MOV SI,CX ;平方根放回原堆栈区 POP CX POP BX POP AX RET SQROOT ENDP ;子程序名:DISPLAY16 ;功能:以移位方式显示16进制数 ;占用寄存器:BX,CL,AX,DX ;输入参数:要显示数据在SI中 ;输出参数:无 DISPLAY16 PROC MOV BX,4 ;每个字显示4个16进制字符 CHANGE10: MOV CL,4 ;准备左移4位(除以16) ROL SI,CL ;SI循环移4位 MOV DX,SI ;转存到DX AND DX,0FH ;清高12位 ADD DL,30H ;一个16进制数变为ASCII码值 CMP DL,3AH ;是否小于10? JB CHANGE12 ;如果小于10转显示 ADD DL,7 ;否则为A到F之间数,加7 CHANGE12: MOV AH,2 ;显示1个字符 INT 21H DEC BX ;处理下一个字符 CMP BX,0 ;是否为0? JNZ CHANGE10 ;不为0转CHANGE10 RET DISPLAY16 ENDP CODE ENDS END START 本题如果采用堆栈传递参数的程序如下所示,请注意堆栈的变化。 DATA SEGMENT XBUF DW 81 YBUF DW 100 FBUF DW ? DATA ENDS STACK SEGMENT TOP DW 20 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA ;给DS赋值 MOV DS,AX MOV AX,STACK ;给SS赋值 MOV SS,AX MOV SP,SIZE TOP ;确定SP的指向位置 MOV AX,XBUF ;取被开方数X PUSH AX ;压入堆栈 CALL SQROOT POP AX ;取X平反根暂存AX中 MOV DX,YBUF ;取被开方数Y PUSH DX ;压入堆栈 CALL SQROOT POP DX ;取Y平反根存入DX中 ADD AX ,DX ; + MOV FBUF,AX ;送入FBUF单元 MOV SI,FBUF CALL DISPLAY16 MOV AH,4CH INT 21H ;* * * * * * * ;子程序名:SQROOT ;功能:求平方根运算 ;输入参数:压入堆栈区 ;输出参数:位于堆栈区 ;* * * * * * * SQROOT PROC NEAR PUSH BP MOV BP,SP ;定位 PUSH AX PUSH BX PUSH CX MOV AX, ;取被开方数 SUB CX,CX ;CX置0 AGAIN:MOV BX,CX ;下面三条指令使BX=2*CX+1 ADD BX,BX INC BX SUB AX,BX JC OVER ;不够减转OVER INC CX JMP AGAIN OVER:MOV ,CX ;平方根放回原堆栈区 POP CX POP BX POP AX POP BP RET SQROOT ENDP ;子程序名:DISPLAY16 ;功能:以移位方式显示16进制数 ;占用寄存器:BX,CL,AX,DX ;输入参数:要显示数据在SI中 ;输出参数:无 DISPLAY16 PROC MOV BX,4 ;每个字显示4个16进制字符 CHANGE10: MOV CL,4 ;准备左移4位(除以16) ROL SI,CL ;SI循环移4位 MOV DX,SI ;转存到DX AND DX,0FH ;清高12位 ADD DL,30H ;一个16进制数变为ASCII码值 CMP DL,3AH ;是否小于10? JB CHANGE12 ;如果小于10转显示 ADD DL,7 ;否则为A到F之间数,加7 CHANGE12: MOV AH,2 ;显示1个字符 INT 21H DEC BX ;处理下一个字符 CMP BX,0 ;是否为0? JNZ CHANGE10 ;不为0转CHANGE10 RET DISPLAY16 ENDP CODE ENDS END START 思考:请编写求解一元二次方程AX2+BX+C=0的程序。
个人分类: 生活点滴|10092 次阅读|3 个评论
汇编语言实验手册详细目录
热度 1 求新 2009-2-16 12:27
实验手册详细目录 实验 1 认识性实验 1. 显示数据区中的一个字符 2. 显示数据区中的一个十进制数字 3.10 以内的加法程序并显示结果 4. 以二进制形式显示一个字符的 ASCII 码 实验 2 数据转换实验 1. 二进制数转换为十进制数。将 D0 起字单元中存放的 16 位二进制数转换为十进制数 , 并将其 ASCII 码存入 DI 所指向的缓冲区 BUF 中 , 最后显示出来。 2.ASCII 码表示的十进制数转换为二进制数并显示。将 SI 指向的缓冲区 BUF 中保存的五位 ASCII 码十进制数( 0-65535 )转换成对应的二进制数并存放在 DX 中 , 再以二进制形式显示。 3. 二进制数到十六进制数的转换 4.ASCII 码表示的十六进制数到二进制数的转换。从键盘输入四位十六进制数 , 将其转换十六位二进制数 , 并保存在 DX 寄存器中 , 再显示。 实验 3 简单数据运算程序设计 1. 求计算二个字类型无符号数的和并以十进制形式显示。设和的大小不超过 16 位二进制数。 2. 如果要将二进制数的和以十六进制形式显示,求修改以下实验程序,补充数据区设计,使能上机实现。 3. 检查 4 个输入的数 , 如果是 16 进制数字就保留并显示 , 否则停止输入并退出。 4. 求一个数 X 的 9-X 并显示。 5. 求解二元一次方程组: A1X+B1Y=C1 A2X+B2Y=C2 实验 4 涉及压缩 BCD 码数据的转换程序及 DEBUG 练习 1. 按如下步骤操作,了解 DEBUG 命令及其使用方法。 2. 在编译与连接生成执行程序之后利用 DEBUG 调试该程序,了解不同变量数据存储情况,了解变量的三种含义及用法,了解加法、乘法运算方法及对标志位的影响。 3. 检查下面那些指令是错误的 , 说明原因并改正。 4. 十进制数的 ASCII 码转换为压缩型 BCD 码 5. 压缩 BCD 码转换为十进制数的 ASCII 码 6. 二进制数转换为压缩 BCD 码 7. 压缩 BCD 码转换为二进制数 实验 5 算术运算程序设计 1. 单步运行以下 8 位 2 进制数加法: 88H+0CH ; 0CEH+ 0C 4H ; 0CEH+84H 与 16 位 2 进制数加法: 9588H+720CH ; 9588H+0B284H 运算程序,对每次运算分析其对标志位的影响。记录实验结果,并与分析结果比较。 2. 分析以下程序功能是什么?分析其每一次算术运算对标志位的影响。记录实验结果,并与分析结果比较。 3. 已知数据存储区如下所示, DN1 与 DN2 均为双字,自编程序段:计算 DN1+DN2 ,将结果放到 DSUM 中。上机验证,报告其中各进行算术运算后对标志位影响的情况。 4. 修改上面的程序,将运行结果以 16 进制形式在屏幕上显示。 5. 按下列要求编写指令序列上机实现 1 )清除 DH 中最低 3 位而不改变其他位,结果存入 BH 。 2 )将 DL 中最高 3 位置 1 而不改变其他位。 3 )将 AX 中 0~3 位置 1 、 7~9 位取反、其他位清 0 。 4 )检查 BX 中第 2 、 5 、 9 位是否至少有 1 位是 1 。 5 )检查 CX 中第 1 、 6 、 11 位是否同时为 1 。 6 )检查 BX 中第 0 、 2 、 9 、 13 位是否至少有 1 位是 0 。 7 )检查 DX 中第 1 、 4 、 11 、 14 位是否同时是 0 。 6. 编写指令序列实现: 1 )右移 DL 3 位,并将 0 移入最高位。 2 )将 AL 左移一位,将 0 移入最低位。 3 ) DX 右移 6 位且保持正负特性不变。 4 )将 AL 中压缩 BCD 码变成 AX 中的非压缩 BCD 码。 7 .设 A,B,C 为 8 位带符号数 ,D 为 16 位带符号数,计算算术表达式 ((A*B-32486H)+C)/D 的值,结果中的商存放到( AX )寄存器中(假设 D 的值足够大),余数存放到( DX )寄存器中。 附:供参考程序段: 1. 双字加法程序段 2. 16 进制形式在屏幕上显示二进制数据程序段 3. 清除 DH 中最低 3 位而不改变其他位,结果存入 BH 。 4. 将 DL 中最高 3 位置 1 而不改变其他位,结果存入 BH 。 5. 将 AX 中 0~3 位置 1 、 7~9 位取反、其他位清 0 。 6. 检查 BX 中第 2 、 5 、 9 位是否至少有 1 位是 1 。 7. 检查 CX 中第 1 、 6 、 11 位是否同时为 1 。 8. 检查 BX 中第 0 、 2 、 9 、 13 位是否至少有 1 位是 0 。 9. 检查 DX 中第 1 、 4 、 11 、 14 位是否同时是 0 。 10. 右移 DL 3 位,并将 0 移入最高位。 11. 将 AL 左移一位,将 0 移入最低位。 12. DX 右移 6 位且保持正负特性不变。 13. 将 AL 中压缩 BCD 码变成 AX 中的非压缩 BCD 码。 实验 6 自编有关双精度数据运算及逻辑运算、移位程序 1. 设数据区有双精度数据 A 、 B 定义例如: A DD 2A 3D0B2CH B DD 2573ADEH 求自编程序 , 计算 A 与 B 的和与差 , 并用二进制形式分别显示。 2. 设数据区有双精度数据 A 、 B 定义如上 , 求自编程序 , 计算 A 与 B 的积 , 并用十六进制形式显示。 3. 自编程序,任意设 AX 的值,求将其中 1 、 3 、 5 位清 0 , 2 、 4 、 9 位置 1 , 6 、 7 位求反。分别用二进制形式显示原数据及处理后的数据。 4. 自编程序,任意设 4 位压缩 BCD 码数据放到 AX 中,求用移位方法及 2 号 DOS 中断显示其值。 5. 设数据区有压缩 BCD 码数据 A 、 B 定义例如: A DW 2937H B DW 877H 求自编程序 , 计算 A 与 B 的和 , 并用十进制形式显示。 6. 设数据区有非压缩 BCD 码数据 A 、 B 定义例如: A DW 0907H B DW 0807H 求自编程序 , 计算 A 与 B 的和 , 并用十进制形式显示。 7. 设计求两个二位压缩 BCD 码的乘积(用压缩 BCD 码表示)的程序。(例如 86H*39H ,结果为 3354H ) 8. 设计求四位压缩 BCD 码除以二位压缩 BCD 码表示的程序。(例如 8390H 29H ,结果为 289H 余 9 ) 9. 设数据区有双精度数据 A 、字类型数据 B , 求自编程序 , 计算 A/B 的商与余数,各用十进制形式显示。 10. 设数据区有双精度数据 A 、 B , 求自编程序 , 计算 A/B 的商与余数。,各用十进制形式显示。 供参考的程序段: (1) 以二进制形式显示任意字符的 ASCII 码(要求在数据区设置 A , DB 类型) (2) 二进制数转换为十进制数。 要求在数据区设置 BUF DB 10 DUP(0) 和 D0 ,例如 D0 DW 1234 (3) 二进制数转换为压缩型 BCD 码,要求在数据区有 ASC_BUF 数据, DB 类型,共 16 个单元,要转换的数据要放到 DX 中。 (4) 压缩型 BCD 码转换为二进制数,要转换的数据要放到 DX 中。 (5) 压缩型 BCD 码的加法运算 (6) 单字节压缩 BCD 码的减法运算 (7) 单字压缩 BCD 码的减法运算 ; 已知 AX = 1234H 、 BX = 4612H, 计算 1234 - 4612 的差 (8) 非压缩 BCD 码的加法运算 (9) 非压缩 BCD 码的减法运算 (10) 一位非压缩 BCD 码的乘法运算 (11) 非压缩 BCD 码的除法运算 (12) 两个二位压缩 BCD 码的乘积(用压缩 BCD 码表示)。 (13) 设计求四位压缩 BCD 码除以二位压缩 BCD 码表示的程序。(例如 8390H 29H ,结果为 289H 余 9 ) (14) 双字加法 (15) 双字除单字除法(设被除数在 DX AX 中,除数在 BX 中,在数据区中准备字类型 3 个字数据区 C : C DW ?,?,? ) (16) 双精度数减法 实验 7 循环程序设计练习 1. 求利用 2 号中断接受从键盘输入的最多 4 个 16 进制数字组成一个 16 进制数,并依次用十六进制、十进制显示的程序。 2. 接上题,求将字变量 BUF 的值乘以上述 16 进制数,再用十六进制数显示的程序。 3. 在内存的源数据区 SOURCE 处有若干个 ASCII 码字符,要求将其中的英文大写字母转换为小写字母,其它字符不转换,并存放到结果数据区 DEST 处。已知数据区如下。 DATA SEGMENT SOURCE DB BEIjin2008OLYMPIC COUNT EQU $-SOURCE ;字符个数 DEST DB COUNT DUP(?) DATA ENDS 4. 修改上述程序:将输入到数据区 DEST 处的字符串在屏幕上显示出来。 5. 将以下参考程序段中第 3 到 9 题补充完整再上机验证。 供参考的程序段: (1) 二进制数转换为十六进制数显示。 (2)ASCII 码表示的十进制数转换为二进制数并显示。要求在数据区设置要求显示的 BUF 数据, DB 类型 (3) 以移位方式显示 16 进制数 ( 要求在数据区设置用来变十六进制数的数 D0 ,例如 D0 DW 1234h) (4)ASCII 码表示的十六进制数到二进制数的转换 (5) 十进制数的 ASCII 码转换为压缩型 BCD 码。要求在数据区有 ASC_BUF 、 BCDBUF 二个数据集,由若干个十进制数的 ASCII 码字符组成,要定义其长度放到 COUNT 中。 (6)BCD 码转换为十进制数的 ASCII 码,要求在数据区有 ASC_BUF 数据, DB 类型,共 3 个数据。 (7) 双字除 10 取余求变 10 进制数(设双字在 DX AX 中,除数 10 在 BX 中,在数据区中准备字节类型 10 个字数据区 D : D DB 10 DUP(?) ) (8) 利用 10 号 DOS 中断输入 1 到 10 个 10 进制数,求变成 2 进制数存到 DX AX 中。 (9) 在数据区 SOURCE 处有 20 个字节无符号数,计算其累加和。 实验 8 用循环程序设计方法解串操作问题实验 1 、如果有字节变量 X ,存放一个字母,在 DEST 数据区存放有一字符串,求在该字符串中查找该字母,如果找到,显示该字母及该字母所在位置的偏移地址。 2 、接上题,如果有字变量 X ,存放二个字母,求在 DEST 数据区查找该二字母,如果找到,显示该字母所在位置的偏移地址。 (附实现程序) 3 、在数据区 SOURCE 处有 20 个字节无符号数,计算其累加和,结果存放在符号地址 RESULT 字单元处并在屏幕上显示。 (附实现程序) 4 、 从键盘输入一个字符串,然后在下一行以相反的顺序显示出来。 (附实现程序) 5 、有一个长度 COUNT 的字节类型的串 BUF ,用程序对这个串进行从小到大的排序,要求分别用气泡法、选择法、插入法完成。 (附实现程序) 6 、假设待匹配的元素存放在 KEY 单元中,且 LIST 表为一个所有元素已按从小到大顺序排列的有序表。编制程序实现在 LIST 表中用折半查找法查找是否有与 KEY 单元中的内容相匹配的元素,若查找到将其在表中的地址存入 ADR 单元;若未找到则将 ADR 单元置全 1 。 (附实现程序) 7 、比较 A 、 B 两个串的大小,如果 A 串大,显示 A ;如果 B 串大,显示 B ;否则,显示 E 。 实验 9 利用子程序实现数据变换与数据处理的程序设计 1. 在数据区中有如下定义 , 要求首先将有关常量存放到数据区 BUF 中,再编一个循环程序 , 使依次以 10 进制形式显示各变量的值(不要求显示变量名)。要求将 10 进制形式显示程序段利用子程序进行设计。 (附实现程序) NUM1 EQU 25*4-50 NUM2 EQU NUM1/7 VAR1 DB 1,2,3,4,5 VAR2 DB '12345' NUM4 EQU VAR2-VAR1 NUM5 EQU 0FH BUF DB 7 DUP(?) 2. 利用子程序结构将八位无符号二进制数转换为十进制数的 ASCII 码并显示。 (附实现程序) 3. 用子程序形式求解实验 7 第 3 题:在内存的源数据区 SOURCE 处有若干个 ASCII 码字符,要求将其中的英文大写字母变换为小写字母,其它字符不变换,并存放到结果数据区 DEST 处。 (附实现程序) 4. 修改上述程序:利用 9 号系统功能调用将输入到数据区 DEST 处的字符串在屏幕上显示出来。 5. 用子程序形式求解实验 8 第 3 题:在数据区 SOURCE 处有 20 个字节无符号数,计算其累加和,结果存放在符号地址 RESULT 字单元处。要求以 16 进制形式在屏幕上显示结果。 6. 求将一个 16 位二进制数转换为任意 P ( 0 到 19 )进制数, P 从键盘输入并显示(超过 9 的数字按: 10 用 A , 11 用 B ,, 19 用 I 表示)。 (附实现程序) 7. 求一个小于 65535 的整数 N 的因数分解,即将一个整数分解成质数的乘积。 分析:因数分解的方法是从 I=2 起,看能否整除 N ,如果能,则 I 为一个质数,记下整除后的数代换 N 并继续整除到不能整除为止。再将 I 加 1 后继续,,直到 I 大于被除数为止。 (附实现程序) 8. 计算: f= + 其中 x 、 y 为整型数据,分别存放在 XBUF 和 YBUF 单元中,所得结果 f 存放在 FBUF 中。要求将 FBUF 中数据在屏幕上显示。 (附实现程序) 实验 10 利用子程序进行串处理及有关日期的程序设计 1. 要求自行设定二个字类型的串 STRING1 与 STRING2 的内容,用程序对这二个串进行比较,如果相等, 0 送 BX ,否则, 0FFFFH 送 BX 。设串长为 COUNT 。最后分别以 16 进制形式显示 BX 、 STRING1 与 STRING2 的内容。 2. 已知程序段如下 , 将它补充完整 , 使能将结果( BX 的值)以 16 进制形式在屏幕上显示 , 根据显示情况分析说明其功能是什么?要求将 16 进制显示程序段利用子程序进行设计。 (附实现程序) 3. 对程序段进行补充设计,要求对设计加详细注释。要求自行设定一个长度 COUNT 的字节类型的串 STRING 的内容,用程序对这个串进行搜索,如果搜索到字节类型数据 A ,显示当前位置(字长)。 STRING 、 COUNT 、 A 的内容自行设计。 4. 在一个串中查找一个字符,显示查到该字符的次数。 (附实现程序) 5. 在一个串中查找一个字符,显示所有查到位置的地址。如果没有欲查字符,显示 -1 。 (附实现程序) 6 .在一个串中查找另一串,如果找到,将查到串的首地址存到 DI 中。 (附实现程序) 7 .求编写显示系统的当前日期和时间的程序。要求程序运行时显示的信息格式为: Current date is 10-30-2008 . Current time is 10:23:26.12 (附实现程序) 8. 设计一个万年历程序。已知 2008 年 1 月 1 日 为星期二,求 2008 年之后 21 世纪的某年某月某日是星期几?不考虑输入错误。 (附实现程序) 实验 11 宏汇编程序设计 1. 求三个字节变量 x, y, Z 的值的平均值,并显示其整数部分。 (附实现程序) 2. 编一个菜单程序,在屏幕上显示各菜单项提示,当用户选择并输入 1 或 2 时调用相应宏程序 MACRO1 或 MACRO2 。 MACRO1 将字符串中小写字变大写。 MACRO2 将字符串中大写字变小写。 (附实现程序) 3. 设计从键盘输入 A 、 B 二个数,求其和并显示的程序( A 与 B 的和不大于 65535 )。要求将其中键盘输入、求和、显示的程序分别用宏程序实现。 (附实现程序) 4. 求建立宏库 MACRO1.lib : 5. 将实验 6 、 7 、 8 中供参考的程序段改造成宏程序,并添加到宏库 MACRO1.lib 中去。要求宏体开始处将其中与输入、输出参数无关的所以涉及的寄存器中数据压入堆栈保护。 实验 12 递归程序与浮点运算 1. 利用递归程序求数组最大值。 (附实现程序) 2. 有二个正整数 M 、 N ( M=N ),求它们的最大公约数,放到 DIVISO 中。 (附实现程序) 3. 斐波那契的兔子问题:假定小兔子一个月后可以长成大兔子,二个月及之后的大兔子每个月都会生出一对小兔子。如果年初养了一对小兔子,问到年底时将有多少对兔子 ? (附实现程序) 4. 求 Hanoi 塔的递归程序 (附实现程序) 5. 假设有两个浮点数,其中被加数在双字变量 BUF1 中,加数在双字变量 BUF2 中。试计算其和并置于 BUF3 中。 (附实现程序) 实验 13 BIOS 功能调用程序设计 1. 读键盘,把用户所按键显示出来,若用户按下 SHIFT 键,则结束运行。写出完成该功能的程序。 (附实现程序) 2. 单色文本显示方式举例。在屏幕上的第 9 行第 16 列的位置显示一个黑桃(对应的 ASCII 码为 06H ),要求黑桃为黑色且闪动,背景选为白色(即白底黑字)。 (附实现程序) 3. 彩色文本显示方式举例。以蓝色为背景,在 10 行 20 23 列显示四个梅花( ASCII 码为 5 ) , 梅花的颜色分别选为红、绿、黄和黑色。 (附实现程序) 4. 彩色图形显示方式举例。在屏幕中间显示彩色的梯子。 (附实现程序) 5 .在数据区设置变量 X ,其值为 20 到 40 之间数,求在屏幕中心显示一个正方形,边长等于 X 。 6. 如果已知二个点的坐标( X1 , Y1 )与( X2 , Y2 ),画出连接这两点的连线,假设 X2X1 。 (附实现程序) 7. 在屏幕上设置鼠标位置。 (附实现程序) 8. 已知汉字字模如图所示,求显示该二汉字。如果欲将其长宽均放大一倍,求显示。如果长宽缩小一半,求显示。说明出现的问题。 (附显示汉字实现程序) 实验 14 有关声音的程序设计 1. 编写通用发声子程序,它能利用定时器发出指定频率的声音。在 DI 中存放指定的发声频率,利用 BX 控制延时时间的计数初始值 (附实现程序) 2. 试编写发声程序,利用定时器发出音乐 1234567 ⅰ。 (附实现程序) 3. 设计一个虚拟钢琴程序,手按键盘,根据键盘输入的数据进行演奏。 (附实现程序) 4 .编写一个游戏程序,实现如下功能:( 1 )首先用蓝色清屏。( 2 ) 在在屏幕中央显示由字符串 -============# 组成的黄色的小蛇, # 为蛇头, - 为蛇尾。( 3 ) 按下方向键可以控制上述小蛇按蛇行方式在屏幕上行走。 (附实现程序) 实验 15 文件处理 1. 利用顺序存取方式建立一个文件 FILE1.DAT ,再将预先存放在数据区中的数据顺序写到文件中。 (附实现程序) 2. 从文件 FILE1.DAT 读入一条记录再写入到文件 FILE2.DAT 中。 (附实现程序) 3. 利用随机存取方式建立一个文件 FILE1.DAT ,从键盘输入数据存放在数据区中,再将存放在数据区中的数据写到文件中。 (附实现程序) 4. 求编程序:从键盘输入 20H 个字符到利用扩充文件管理方式建立的文件 FILE1.DAT 。 (附实现程序) 5. 求编程序:将数据从文件 FILE1.DAT 读取 10H 个字符到文件 FILE2.DAT 中。 (附实现程序) 6. 利用扩充文件管理方式从文件 FILE1.DAT 中读出全部内容,再转存到文件 FILE2.DAT 的原内容的后面。 (附实现程序) 7. 从文件 FILE1.DAT 中读出从 N1 起 , 长度为 N2 的字符串 , 在屏幕上显示。 N1 , N2 为十进制数。 (附实现程序) 8. 读出文件 FILE1.DAT 的内容,在屏幕上显示。每次读 1200 个字符,文件最大 64K 。 (附实现程序) 9. 设数据区中有定义: DATA1 DB 100H DUP(0) ; FNAME DB 'FILE1.DAT' ; FCB1 DB 100H DUP(0) 。求利用顺序或随机存取方式建立一个文件 FILE1.DAT ,再将数据区 DATA 中的数据写到文件中。以下给出程序段,请补充完整并上机验证。 10. 查出 C 盘上所有文件名并写入到文件 FilEl.DAT 中。 (附实现程序) 11. 读出 D 盘目录 MASM5 中的文件 FILE1.DAT 的日期与时间。 (附实现程序) 12. 求显示某文件夹下文件目录名称。 (附实现程序) 实验 16 结构类型及其他程序设计 1. 设成绩表数据按如下结构组织。所有数据按左靠齐存放。求填写各人分数排名。 学号(长度: 5 ) 姓名(长度: 8 ) 分数(长度: 1 ) 排名(长度: 2 ) (附实现程序) 2. 设成绩表数据按如下结构组织。所有数据按左靠齐存放,求按分数排名对记录排序。 ; 学号(长度: 5 ) 姓名(长度: 10 ) 分数(长度: 1 ) (附实现程序) 3. 设成绩表数据结构与第二题相同。求录入一条新记录到所有记录之后的程序。 (附实现程序) 4. 设成绩表数据结构与第二题相同。求根据姓名查找并删除所查到记录的程序。 (附实现程序) 5. 已知数据表结构如表所示,数据从文件 FILE1.DBF 起始位置开始,均以 ASCII 码形式存放,每列中的数据长度相同,见标在表中的数据。各行的长度也为定值,等于各列长度之和。求设计依次显示表中各人年龄的程序,年龄以二位 ASCII 码形式存放。(附实现程序) 数据表结构 序号(长度: 4 ) 姓名(长度: 8 ) 年龄(长度: 2 ) 1 Chen 23 2 Wang 25 6. 已知数据表结构及文件结构与上题相同,求编修改程序:根据键盘输入的人的姓名查找行(记录),再将键盘输入的数据去修改表中年龄数据。 (附实现程序) 7. 计算 B/A 的值。利用条件汇编判断 A 是否为 0 后再处理。(附实现程序) 8. 编写在内存中驻留时钟显示的程序 (附实现程序) 9. 编写驻留内存显示键盘缓冲区数据程序 (附实现程序) 附录 输入输出程序设计 1 、已知 8279 与 LED 显示器及小键盘连接如图所示, 8279 的片选 CS79 连至译码处的 210~217 。 8279 工作方式为:左边输入,八位显示,外部译码,双键互锁。求设计程序:( 1 )将键盘接收到的字符送到计算机的显示器上显示。( 2 )在数据区定义二个压缩 BCD 码,求和后在 LED 上显示。 2 、某实验系统将 8255 的片选 CS55 连至译码处的 200~207 。 8255 的 PA 口分接 4 个四个双色灯按要求发光。双色灯接法如下图所示。双色 LED 是由一个红色 LED 管芯和一个绿色 LED 管信封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。求设计程序:状态 1 为:南绿东红北黄西黄灯;延时后状态 2 :南黄东绿北红西黄灯;再延时后状态 3 :南黄东黄北绿西红灯;再延时后状态 4 :南红东黄北黄西绿灯;再反复循环至状态 1 。 3 、编写一个程序完成两台计算机通过 COM2 端口进行串行数据通信。要求从一台计算机上输入字符传送到另一台计算机上,若按下 ESC 键,则退出程序。 COM2 端口初始化为 4800 波特 / 秒, 8 位数据位,无校验, 1 位终止位。 4 、在 A 、 B 两台微机之间实现串行通信, A 机发送, B 机接收。要求把 A 机中的 200 个字符传送到 B 机中。 分析: CPU 与 8251 之间采用查询方式控制数据传输过程,异步传送。发送方 CPU 每查询到 TXRDY 有效,则向 8251A 并行输出一个字节数据;接收方 CPU 每查询到 RXRDY 有效,则从 8251 接收一个字节数据,一直进行到全部数据传送完毕为止。假设传送时数据位为 2 位、 1 位停止位、波特率因子为 64 、偶校验。 8251 的命令 / 状态端口地址为 309H ,数据端口为 308H 。
个人分类: 生活点滴|12631 次阅读|3 个评论
汇编语言实验手册前言
求新 2009-2-16 12:25
实 验 手 册 《汇编语言程序设计》配套教学资料 程学先 林姗 程传庆 前 言 本手册为配合汇编语言程序设计课程的教学而设计,为机械工业出版社出版、我们所编写的《汇编语言程序设计》配套教学资料。本手册包括教材全部软件设计课程内容的实验。关于接口部分实验,需根据所选用实验器材决定,例如如果采用超想-30000TC综合实验/仿真系统组织实验,该系统配有实验讲义,可以按其实验讲义安排实验内容。 本手册由浅入深、由简单到复杂,共安排16组实验,108道题,大多数实验题都提供了实现程序,而且为电子版,可以直接复制、编译、运行,目的是节省代码录入与调试的时间,以往汇编实验一般要求完成20余道实验题,采用电子版实验教材使能在有限时间内更多地接触应用程序,更好地配合理论的学习,深入掌握汇编程序设计的基本理论、基本概念与基本方法。但是,过于简单的操作不利于对程序的理解、不利于培养创新精神、不利于记忆,也防碍培养程序调试的能力。因此,希望读者正确对待本手册,在进入实验后,即使是对于有实现程序的题,也要尽量争取独立完成,再与参考答案对照。有些题可以先简单阅看参考答案,再设法自己编程调试并完成。即使是直接复制,在运行之后,也要认真对照程序,分析程序的结构,了解程序运行过程,记忆其算法、程序设计方法与设计技巧。 为了取得最大成效,建议本手册不直接完整地发到学生手中,而只由教师掌握,根据教学进度与培养的需要,分次拷贝给学生。本手册前四个实验为认识性实验,可以直接复制拷贝原程序,上机编译执行,再分析程序结构与编译执行过程,对汇编语言程序建立感性认识。实验5到8为基本汇编程序设计,手册中提供了一些常用程序段,作为完成实验题的素材,使能快速完成有关实验题。这些程序段也要求学习者背记并熟练掌握。实验9之后为综合性较强练习题,包括极少量难度较大的题,排版时将题与参考程序分开,建议教师先提供实验题,在学生充分研讨后再提供参考程序,以期最有效地调动学生学习积极性与能动性,培养独立思考精神与创新精神。 本手册将提交机械工业出版社网站,向教师发布。为配合本学期教学,将在本博客上按周刊出当周实验内容,请读者跟着进度安排学习。 特别欢迎老师与同学对本手册提出宝贵意见,我们将选择新的实验内容及有关实验题的新的解法补充到将来更新的实验手册中,同时将提供者加入到新版实验手册的作者群中。 目 录 前 言1 实验1 认识性实验5 实验2 数据转换实验8 实验3 简单数据运算程序设计13 实验4 涉及压缩BCD码数据的转换程序及DEBUG练习16 实验5 算术运算程序设计25 实验6 自编有关双精度数据运算及逻辑运算、移位程序31 实验7 循环程序设计练习38 实验8 用循环程序设计方法解串操作问题实验45 实验9 利用子程序实现数据变换与数据处理的程序设计52 实验10 利用子程序进行串处理及有关日期的程序设计72 实验11 宏汇编程序设计84 实验12 递归程序与浮点运算92 实验13 BIOS功能调用程序设计106 实验14 有关声音的程序设计119 实验15 文件处理129 实验16 结构、条件汇编与驻留程序设计147 附录 输入输出程序设计164
个人分类: 生活点滴|6335 次阅读|1 个评论
"错时上班"之另一好处
notebook 2009-1-16 20:26
日前在我院加速器上做实验,发现一个很有意识的现象:测量系统的稳定性与几乎与上班时间刚好相反。 9:00之前,系统的稳定性还好;9:00之后,噪声水平大增;下午4:00之后,噪声水平突然降低,测量系统恢复正常。大家怀疑这是由电源引起的,因为此实验室没有一个好的接地线,而目前我院几个大工程正在建设,也许是大型施工设备运行带来的干扰。 没办法,只好求加速器操作人员陪我们晚上加班,否则实验没法开展。 电源问题,接地问题,是实验中常出的问题和忽略的问题,有时也是很难发现和解决的问题,只好错时上班。
个人分类: 生活点滴|2839 次阅读|0 个评论
我们在实验上证实了能量不守恒!
liuxiaod 2009-1-13 22:38
经过六年的努力,我们在去年7月12 日终于在实验上观测到了能量不守恒的现象。我们测量了在环形螺线管和平板电容之间的能量传输,实验表明环形螺线管和平板电容之间的能量传输是不平衡的。由于存在不对称的电动势(asymmetrical electromotive forces), 能量可以在真空中经过电磁相互作用增值,在我们的实验中能量增益达到0.04微瓦。 我们在8月14日于美国圣路易斯市布什会议中心召开的新闻发布会上公布了我们的研究成果,Riverfront Times周刊社记者Ms. Kathleen McLaughlin和St. Louis Business Journal日报社记者Mr. Patrick Thimangu对此项发现做了专门采访。 在同年10月17日,我们又做了功率放大实验,在输出端点亮了一个发光二极管(LED),功率为60毫瓦,与7月份的实验相比,输出功率提高了一百五十万倍。 下一个目标是将输出功率再提高100倍!
个人分类: 物理大发现|1704 次阅读|4 个评论
海上十日谈
jymb 2009-1-1 11:59
以下文字是一年前在海州湾实验期间的所记所忆,称为海上十日谈,顾名思义,这十天的时间里发生了许多难忘的事,文字的表述毕竟浅薄,每看到笔下的那些苍白的描写,心思早尽到了夏日里的远海 从八月十九号(阴历七月七)情人节踏上千里之外,直到三十号的六点多,久违的一号船才启程前往让我们神往的外海,那边的岛屿不啻于瀛海蓬莱方丈,那里将是 生活与研究的乐土,从此开始了后来的海上十日之行,这期间见识了大风大浪,品尝了海味佳肴,体验苦楚与辛酸,也有岛上自由地漫步,海底悠闲地遨翔,这是难 忘的十天,也是有话要说的十天。   在这里细细讲来吧。 海上 第一日 沉船 2007年8月30日 阴    就在出海的前一天,二十九号,团队中的另外两位兄弟也从青岛起来,帮忙把大堆的东西搬到船长,正好有等待下沉做为渔礁的旧船,搬运过程中要横跨五艘船,好像赤壁之战中曹操的连体船,看着这些失去了往日风采的木船,像垂暮之年的老人一样静默无语,他们仿佛已经明了即将到来的使命,正在平静地等候这一时刻杳然 而来,翻开时间的历书,曾经屹立几十年的松树,槐树在上个世纪六七十年代被能工巧匠们细细雕琢出来,成为风行水上几十年的轻快工具,在陪伴了两代人后,他 们也老态龙钟,时间没有给他们留下值得回忆的时刻,也没有给他们远渡重洋的机会,只是在近海江河里略尽薄力,在行将老去的时候,从南方拖运到陌生的北方, 重新发挥那最原始笨拙的功用可能是他们最能好的归宿,因为这样,他们又像出生前一样,在昏沉的海底挺立几十年而不朽,成为鱼虾贝蟹们永久的避难所。    船上半点值钱的东西都被肢解,甲板也被撬下当做柴薪,只有高耸的驾驶室留下来诉说着曾经的光荣,船梆上的喷漆不复存在,本来空荡荡的船舱现在也装满了几十吨的石头,他已经做好了出发的准备。     早上五点多,我们就起来收拾东西,六点,天刚蒙蒙发亮的时候就出发了,今天早上涨潮,而且船逆流行驶,船体摇晃得厉害,加上阴天,海水黑漆漆一块一块的, 船好像在转动的魔方中穿梭。一出近海,风也狂吹开来,风浪交加,风起浪涌,人在舱里都禁不住摇来晃去,不倒翁一样,昨天晚上就没有睡好,再加上这么美妙的 摇篮曲,不一会便感觉到早上吃的东西不安份起来,想要求造反,没有办法,只好让自已躺在小小的舱位上,尽量忘记胃中同样的翻江倒海之势,不一会,头脑就迷 糊起来,不过还是察觉到同行的小于低头跑到舱外,然后久久没有回来。后来才知道,久经沙场的小于竟然也吐了,然后在甲板上吹风,好记自己舒服一些。     也不知睡了多长时间,也不记不起中间起来了几次,反正天空依然低沉,海水越来越蓝得发黑,风越吹越大越让人清醒。令人吃惊的是,马力最为强劲的一号船行驶 了六小时,比通常多出两个小时,映入眼帘的才平岛美丽的轮廓,同样让人吃惊的是,三号船竟然孑然一身赶来,原来路上风浪太大,海水倒灌进满载石头的船礁, 在半路上就沉没了,渔民们倒是乐观向上,说是记下了经纬度,下次路过时在那里钓鱼。一号船没有让人失望,圆满的完成了任务。只见水手们敏捷地爬上船礁,逐 一卸下船四周了活塞,水像久等了一样哗哗流进船礁的肚里。在等了一个多小时,在船上吃完了午饭后,船才爽快地沉于海底,我还未来得极记录下这一悲壮的时 刻,录像刚刚打开,他就从眼前永远消失了,只留下一片惨白的泡沫和破碎的木板。    船终于依靠在南码头了,这已经是下午时分了,也做不了什么事了,经历颠簸,大家也有些疲惫,就等着晚饭后,好天黑睡觉了。    从今天开始,前面一页已是黄昏,现在才是人生。 海上第二日 小咬初现 8月31日 雨    昨天晚上九点睡的,看了会书,外面风浪很大,风儿飒飒做响,海浪也无情地拍打着船体。我们睡在一号的驾驶室里,两侧的挡板关闭后才能入睡。八月六号和七号 也是睡在同样的地方,那次和立斌没有注意风浪,开着挡板睡觉,半夜里雨水灌进来,床铺湿了,人也感冒了,不卒忍读。    早就发现驾驶室里甲板不平,早上醒来,背部就难受,伸展不开的感觉,尤其是早上一睁眼,便听见吵闹的海浪声,之后就辗转反侧,久不能息。起床后才发现身上 多了很多红点,搔痒难忍,原来半夜里暴露的肌肤频频被未知生物光顾,来无影去无踪,从他们的劣迹上来看,完全不像是蚊子留下来的。白天里才有机会见识了未 来十天里让我们最为痛苦的对手,渔民们亲切地称之为小咬,论个头,只有蚊子的十分之一不到,论胆量,却有蚊子的百倍,他们咛住你,连麻药也不给打半点,从 一开始就明了的告诉你他来了,而且是一出手便让人有针扎的痛感,你盯住他,晃动四肢,用气去吹,他竟然纹丝不动,真没有把自己当外人,只顾在你身上喝血, 现在你能做的只有一件事:慢慢地伸出一个手指头,将之就地正法,只见一抹淡红在你皮肤之上。    后面的几天又领教了小蛟们的其它看家本领,且听下文慢慢道来。 海上第三日 风雨来了 9月1日 中雨       半夜四点半,船摇摇晃晃止不住,风浪声也长久不息,从甲板上爬起来找耳塞,未果。心烦意乱之余,感观也异常敏锐,船体碰撞的吱吱声不绝于耳,驾驶室里一片 死寂,偶尔传来小于沉重的翻身之声,还有指甲锉动皮肤的声音,舱外声音略为减弱之际,远处的小岛上便传来怪异的声音,像蝉,又像鸟,又说不定会是风声。    早上起来吃完早饭,照旧害困,身上又多了小咬留下的红色记忆,我就再也睡不好了。从七点多又睡到十点,醒来后的头一件事就是抓痒,直到挠出血丝才作罢,从脸到脚,无一幸免。刚刚醒来,就吃午饭了。    出海的头三天了,有两天风雨交加,晚上睡觉时把档板关得死死的,也免不了被褥沾湿。第二天还是阴雨,又不能晒被,只好等候雨过天晴了。   虽然天气不好,小蚁也越来越肆无忌惮,我们吃得倒是很不错,有不少蟹子,还有不少打上来的小鱼,味道同样鲜美。    到了晚上重新涨潮时,风浪变得异乎寻常的猛烈,海浪不知在海里传递了多远,遇到小码头时但突然暴怒,惊涛拍岸,卷起千堆雪。浪高时有十几米高,落下时整个码头都像盖上了棉被。十几米开外的船上漂来溅落的盐粒。我就边躲闪边拍照,记录下这一难忘的时刻。    两天的风雨让空气变得异常清洁,海上本来就没有什么污染,站在般尾,正是极目千里,心骛八极,远处城市的灯光照亮了小块的天空,这时心里空空的,只感觉到远离了文明。    用几句话将这三天的故事略做总结吧:    大浪淘天    鱼蟹常鲜    小咬大胆    前来冒险    无心睡眠    用心体验    远处火焰    孤独灿烂 海上第四日 实验开始了 9月2日 晴    在海上天特别蓝,海水特别清,梦也特别多。前几天梦里回到了北京,那里有我最值得回味的一年研究生院生活,还有在皇城根下记不清的游历。昨天晚上的梦特别 奇怪,梦到一个外国小女孩,样子记不大清,住在体育馆里的休息室里,喜欢运动,就在场地上跑步。这一模糊的梦境不知有何意蕴,甚或什么也没有。    早上一直在码头旁边的碉堡里做实验,六十年代备战时准备的碉堡在和平时期演变出实验室这一功用,想像力丰富人的很少想到吧。实验的东西就不多说了。    站在岸边的礁石上,看着小湾里停泊的一号、三号和十一号船,大小不同,错落有致,船上的渔民各自为营,忙碌有序。我突然想到渔民们即可爱又可怜,他们快乐的笑容下面是一颗落寞的心,每日里看他们在落日的余晖里独自品味生活的艰辛,那份孤独无人能省。    今天很热,久违的阳光终于光临海上,被褥也可以体验一下温暖的气息了。海上的风也明显小了许多,清早也没有前两日浪花飞溅时那般壮观的景象。    下午坐舡板去采样,在养殖笼里混入一个黄黑相间的热带鱼,这两种着色在精灵搞怪的鱼儿身上完美无缺地体现到了和谐的美感,我在想,这两种颜色几乎没有人会选择穿在身上,为什么会在大自然里出现,是人们的审美出现了问题吗?    上午开始的实验,今天酷热,出也不少汗,中午也顾不上休息了,虽然很困,但还是实验要紧。 海上第五日 蚊香阵和飞索走道 9月3日 晴    昨天晚上两点起来,正好发现船长在前甲板上忙活,走近一看,竟然是在点蚊香,原来小蛟害了他的好梦,在舒服的船长室里也睡不着了,又怕在驾驶室里点火会影 响到地上安睡的我们,就只好到外面打地铺外加一圈的蚊香阵了。我接着回去睡,这次不同的是,找到了耳塞,果然奏效,在懵懵懂懂中便睡下了。    早上七点多就开始实验了,结果不好,实验进程很慢,干扰太多,意外的事情总是时时发生,让人措手不及。    中午休息完,就发现身上又多了几十个小红点,不一会便打死了十几只小虫子。手脚上也早已抓出了血,用酒精一擦,像针扎一样。     下午时分,渔民们开始到外海工作,留下我们和厨师在船上,下午的实验就在眼前,可是我们却被困在了船上,大船用绳索套在码头上,就是这十几米远的距离,被 水一隔,也成了天堑。着急不是办法,最好索性用手抓住绳索,贴着水面攀附在绳上尽力爬到码头上,刚走了不到一半,半边身体就入水了,船在体重的牵引下,向 码头移动了,没有办法,整个人都落水算了。看我如此,船上的小于也按捺不住激动的心情,跃入水中,当然这不是抢救我,因为我身上早就准备好了泳衣,正好给 自己一个游泳的理由。   从今天起,便天天在海里游泳,只有后来去拍网箱里误了一天。今天最为高兴,拿了相机去水里录像,拍照,留下了许多精彩的瞬间。     到了晚上,渔民们准备了醉蟹,并不是真的用酒泡过的,这只是一个浪漫的说法,是用凉开水加了盐再加上姜和醋,使调味品的鲜味被活蟹吞进肚里,整个下午过 后,晚上便可以品尝了,果然味道非同一般:凉凉的蟹肉在坚硬的甲壳下不经意间溶化在唇齿之间,生肉的脉络轻轻地挠动舌尖上的味蕾,没有一丝腥气,淡淡的姜 味让人如沐春风,这感觉像果冻,但更腻滑爽口,像棉花,却明显带着湿润。 海上第六日 渔歌互答 此乐何极   9月4日晴    上午照旧做实验,结果不是太好,样品状态不好,我们也没有办法,我们也是辗转反复才有这样的时机进行实验,其它的没有考虑周到现在也是无法完全解决的,只好走一步算一步了。    中午吃饭完又去做实验,渔民们把船靠在岸边上,这样我们就可以一脚踏上坚实的水泥地,不用再涉水而游了!做到两点多,回来困乏无聊,就一直聊到五点,渔民早已出去整理网箱,天逐渐黑下去了。     突然想到昨天晚上实验结束时经过的一段小路,两旁的鲜花正开得欢快,香味沁人心脾,让人不禁胸怀飘然直上云宵之感,今天正是好时机品味这一美妙时刻。坐在 攀升的台阶上,远处的夕阳点燃了蓝色的晴空,天空中的浮云被海风撕扯成一抹又抹,不时有鸟儿从头顶飞过,不远处黑色网箱逐渐溶入进黑暗之中,移动的人形也 失去了连续的动作,一切都是那么自然,近景沁人,远观飘渺,如此渔歌互答,此乐何极。 海上第七日 捕蟹笼 9月5日 晴    早上一大早起来,苦苦支撑吃完了早餐,在我们还睡意朦胧,没有多少做实验的心情的时候,渔民们便开始忙碌起来了,先是拍贻贝,全是前一天从网箱的支撑绳上 扯下的一节指头大小的小贻贝,黑压压地爬满了甲板,两位渔民左一下、右一下,不断地拍打,翻动,本来就显得脆弱的小贻贝但血肉横飞了,原本黑得发亮的贝类 变得混浊不堪了。看着他们热火朝天的劳动场面,又感于这几天消受了这么多渔民辛劳劳动的结晶,无论如何也得要亲身体验一下前人栽树的干净画面,也要留下一 点长久回味的影像资料吧。缆绳一解开,三号船便好像正欲跃出跨栏的赛马,一发动便控制不住,正在此时,我从住的甲板上拿起相机,又抓了两个备用电池,跨到 正在移动的船上,向风浪正湍的双尖礁驶去。早上正是退潮的时候,浪花正带着余威横扫过崎岖不平的礁石,船就行驶在带着白色泡沫的浪花之上。渔民像是脚底长 根一样,在船边上紧张有序地分工合作,我在前甲板一分钟也站不安稳,只好坐在地方拿着相机胡乱抓拍,只见大副在液压机前把系着蟹笼的长绳拖曳上来,紧随其 后的是一位渔民把蟹笼里的捕获物收集起来,然后再有一个人把蟹笼重新归位,最后一位渔民把带着长绳的蟹笼按顺序安放在船尾,就这样五百米长的蟹笼在不到半 个小时的时间内从深水中绞出,留下了满满两框鱼蟹。    捕完蟹子回来,实验马上就要开始了,今天做的是扇贝,我和小于的实验也是交替进行,昨天是我的海参。实验进行得很快,一上午就完成了,下午的时间就是游泳了。     我在水里游泳是标准的蛙泳和自由泳,整个身体八成时间浸在水里,相对动作较大的自由泳,蛙泳就是在水里面用作休息的,这时候身体肌肉得到了全面的放松,呼 吸也能顺畅起来,而且耳边也传来来自波涛的久振不息的回声,这声响好似燃烧的薪柴,噼哩啪啦从不止息,那感觉又像吃了辣椒,身体就要冒火一样,加上眼前不 断漂来的海雪,像在登山途中突遇风雨,那种联觉是没有过亲身体验的人如何也理解不了的。    苦苦等待的晚餐终于开张了,照旧是丰盛的海鲜,这次多加了肥嫩的鳗鱼,比大拇指还要粗许多的鳗鱼块加上点辣椒,爽口异常,鱼肉晶莹如雪,撕开的肉块中清晰 可见微微绽放的肉丝,入口即化,吃不到一点肌间骨,也没有鱼鳞,我认为这是在船上能吃到的最美妙的珍物了。蟹子也不错,大的留下做为商品,小的就全部就地 解决了,相对浅水的蟹子,深水的要小一些,但是也更肥厚,当满满的一大铝锅的蟹子搬上来时,久经此阵的渔民将之息数倒翻在甲板上,一人面前再分一堆,对于 远道而来的我们,更是优待,我前后吃了不下十几个蟹子,小于这几天竟然对美食产生了审美疲劳,最后勉强接受了将近三十个鳌足,那可是蟹肉里的精华,在他面 前排成奇异的扇面,而他就不管别的饮食了,只管慢慢地享用坚甲厚壳下的美味了。 海上第八日 贻贝之贻害和海上美景 9月6日 晴 大风    早上风云突变,风浪又来了,早上渔民是出不海了,更坏的消息是我们明天也回不去了。只有等网箱整理完毕才能返程。只有等明天才能彻底解决令人生厌的贻贝了。    我们的实验只剩下最后一点了,早上到岛上不一会就解决完毕。     下午在船长的催促下,做为随船摄影师跟随他们去网箱附近工作。我用完了两节电池,总共拍了近二百张相片。腕口粗的贻贝纠缠在手指粗细的缆绳上,渔民费力地 用人力从海底拖上来,再人手一个木棒,将之敲碎。一条缆绳上丛生的贻贝少说也得有两千多斤,总共数十条缆绳,他们的工作量的确大的吓人。就在留下他们张力 极大的劳动画像时,头顶上多变的云彩在下午的娇阳下千恣百态,更吸引了我的注意力。真是烈日千里,长烟一空。蓝蓝的天空上白云飞,同样蔚蓝的茫茫大海更是 浮光耀金,还有远处的山崖,无言地屹立在波涛之中,只做静影沉壁观。 海上第九日 实验结束 9月7日 晴       实验终于结束了,上午去实验室里把东西整理好,终于闲下来了,就和小于重走了以前在岛上浏览风光时的杂草之中的小路,一路上留下了不少舒心的影相。     中午也不觉得累,午觉竟然睡不着,渔民们都在安睡之中,正好小于找我去游泳,天还早呢,我出主意去太平湾里测水质,没有舡板,于是我又提出步行前往的主 意,于是我们两提着沉重的仪器出发了,正是午后两点多,光照最为强烈,我们就在海边怪石嶙峋和不断漫延上来的潮水之间艰难跋涉,短短的几百米距离,我们走 了不下半小时,终于到了湾口的入口处,一个对于我们不啻于壁垒森严的山崖挡住了去路。最后找到一个半米宽的小山沟,我们踩着中间的碎石攀折上到崖顶,又用 电线把仪器贴着垂直的山石一点一点吊上来,沉重的负担得要手脚并用才能结束战斗。终于看到久违的太平湾了,我们又从山崖下小心翼翼地抓着风化的石条倒行下 去,才发现周边的浪花很大,水也太浅,完全不适合实验,我们一下子没有了底气,这次的行为只当是一次历险了,值得一提的是,在山崖上的碉堡里我发现了两瓶 开户的矿泉水,生产日期是今年的7月22日,正值军事演习的时候,一定是两个观察员在此测算弹道,还有同样多的一瓶汽油,可能是当做烽火使用了。 海上第十日 返程 9月8日 阴转晴      终于到了回去的时刻了,在海上漂泊了十天了,竟有点舍不得,不过还有陆地上的任务等着我们去完成。       今天的风浪依旧很大。八点多的时候我们把我们的个人用品还有实验样品悉数搬到三号船上,小小的船舱容不下我们这么多东西,就索性全部放到船尾的厨房里,九 点多的时候我们正式出发,海上风浪大得像我们来时的样子,过去的道路照亮了归途。船一直开到十二点多才看到陆地,正式靠岸时都快一点了,先是把捕获的鱼蟹 运走,我们也顾不上船上我们的辎重了,养殖场里还有导师在等我们,于是坐着现代车就离去了。      终于回到了陆地。
个人分类: 海上生活|4136 次阅读|1 个评论
大自然实验室
moxj 2008-12-10 23:38
今天路过实验室的时候,师姐看到我,喊我过去帮忙.我以为出什么事情,原来是操作不当,针管不能用了.不会使用超声就束手无策.其实,有时候很多事情只要一些小技巧就能做好.只是大家不注意,也不这样去思考和观察. 想起来今天这个话题,我应该从小时候满山遍野溜达讲起,从我5岁开始捕鸟和8岁开始捕鱼讲起,但大家成长经历毕竟不同,有的可能几句话是说不清楚的.讲小时候,话题也太多了,所以今晚回去之前还拿几张野外的照片和你们几个分享下. 出发前要准备好工作和生活必须的东西,做其它事情也是一样. 有了失误要赶快想办法弥补. 这个不衔接了,但后面的事情也是要注意和学习的.(这是家酒店,石头房子是厨房和客房,帐篷是餐厅) 我要说的是路过这里不要只记得狂欢.给你的马修补马掌,以后工作会很方便. 业余学习,这个也很有技巧的.不要把我们看过的解剖学都忘在脑后.什么东西都有实用的时候. 别说右手这个了,司机经常用的喷灯大概很多人都不知道.但你把很多东西都组装到一起就不一样了,所以现在实验室的仪器也一样.买人家最好的仪器,只能重复别人的工作. 随处可见的牛粪就是燃料,再不要拿裤子烧了. 思维要变通,这样的方法可以吗?你小时候玩过积木吗?燃料就不能做石块吗?初中化学的燃烧原理你还记得吗?图我不会画,你自己设计一种合理方案吧. 需要的时候,什么不可以做到呢? 但在什么地方,都要记得和别人合作.即使室内的实验室也一样,我不是写过 我把秘密藏在你心里 吗?只要是自己觉得好的东西,先想到分享给别人. 前面有过这只鹰,我有时也很顽皮,不过要观察到草鼠的活动情况和鹰的食物关系才能做到. 如果你想和这样大的动物玩,那成本可就大了,一匹马,比我们吃一餐饭还快就没有了. 不要乱想了,鹰我放走了.要和动物和平相处.给刚出窝的和平鸽照张相. 忘了说捕鱼的事情,其实就更简单了.
个人分类: 地质队员|5043 次阅读|2 个评论
实验的境界——您达到哪种境界了?(转改)
吴信 2008-11-17 19:38
实验的境界您达到哪种境界了?(转改) 常人皆有五感,而圣斗士的终极目标是超越第七感,那实验又如何呢?类比了一下,将实验也大体附会出了几重境界。要说明的是,这一境界理论仅限于生物学领域,医学等不在其列,另外该理论只应用于实验,生物学的理论研究也不在其中。那这所谓的八重境界究竟是哪八重呢?下面就让我一一叙述。 一、初学者简单操作的境界 这个层面的实验包括配试剂、灭菌等,可以认为是分析化学的级别。别看只是第二重,要求一点都不低,想当年分化实验对数据的偏差要求可是0.17%! 二、典型生物学操作的境界 对于分子生物学工作者来说,这个境界的实验就是抽、批、切、离了。 三、需要保护实验对象的境界 典型的微生物和细胞实验都属于这一层面,如果你养细胞总是污染的话,好好检查一下你的操作吧! 四、需要保护实验者自身的境界 处理EB和丙稀酰铵该注意什么?戴手套。光知道这一点是不够的,废液、废胶的处理也是需要上心的。别看跑电泳也许不是那么难,其中自我保护和保护他人的意识其实是很体现能力的。同样的问题在处理微生物和细胞实验废料时同样存在,这时问题就变成在保护实验对象的前提下保护实验者,要求明显就更进一步了。 以上的五重都是一目了然的实验技能的境界,就好比人的五感一样,下面的就越来越行而上了。 五、安排实验的境界 初中的时候我们学过一篇阐述统筹规划的说明文,讲应该在烧水的同时做其他事情。具体记不得了,大抵如此。生物学实验同样存在一个合理安排时间的问题。很多人也许实验操作很过关,但是却不会安排时间,经常做得知前忘后、废寝忘食的。当然我们并不期待能像某大虾那样southern、northern和western同时做。 六、分析实验的境界 实验的结果怎么分析讨论,实验中遇到的问题考虑用什么策略来解决,这些只有黄金圣斗士才能达到的境界几乎可以说是生物学实验中的究极考验了。 七、指导实验的境界 自己知道容易,让别人也知道就难了。同样,自己会做实验不稀奇,指导别人做得一样好就要复杂的多。如果考虑到要让别人也掌握前面所述的几重境界的话,这超越第七重境界的境界确实是绝对的实验大师的标杆了! 至于这第七重以上是什么,以我的能力已经无法体味,因此我也就不再继续牵强附会下去了。也许大家已经发现,其实我这儿所提出的几重境界,在具体的实验中并不是那么泾渭分明的,好几个层面的东西往往互为呼应,互相补充着,低层次的内容需要高层次的指导,高层次的内容离开了低层次的同样玩不转。 这几重境界理论完全是随性想出来的,非常的不成熟。就仅当作抛砖引玉,与大家共勉吧!
个人分类: 科研心得|3806 次阅读|1 个评论
做实验的时候不要太相信书本上的标准实验操作
cutefay 2008-11-14 08:46
最近我在检测固体中蛋白质的含量,用凯式定氮法来做。我们课题组的凯式定氮的装置以及实验操作的办法都是教科书中的办法。做的有好几个相似的样品,,每个样品都做了几个平行样品,测的含量都是4%多一点。因为每次测误差都不大,并且感觉实验操作是严格按照书上的说法来做的。所以我觉得这个实验测得的结果是很准确的。 而刚好这个样品被和我们课题组合作的公司拿到其他机构去做同样的检测,他们的检测结果是12%多,数据差得很大。于是,我又做了好几次实验,把可能出现误差的因素都排除掉,反复验证,还是测的结果是4%多。而最后我找了一下原因,可能的原因是我们的凯式定氮以仪不是微量凯式定氮仪,所以测定结果误差较大。 不仅是凯式定氮,以前测淀粉、还原糖、总糖、可溶性蛋白等物质的时候也发现各种测定方法之间是有差别,有时候差别也是很大的。 所以,做实验不要迷信一种办法或者仪器,用不同的方法和仪器做比较,多验证一下,才能找到最佳的测定办法。
个人分类: 科研*创新|3285 次阅读|0 个评论
[水煮物理]之六:扒掉皇帝的新衣
热度 1 penrose 2008-11-9 15:08
之六:扒掉皇帝的新衣 (连环画《皇帝的新衣》) 中国有句古话:舍得一身剐,敢把皇帝拉下马!可见,碰碰至高无上的皇帝是一种多么恐怖的事情。即便是皇帝被骗子蒙蔽穿了一件无法看见的衣服,也无人敢直言一句,最后只有一个无知的小孩喊出了皇帝在裸奔。那位小孩的命运不可而知,肯定是倒霉到家了。此等事情在学术界想必屡见不鲜,因为学霸们、权威们、先知们的思想总是统领某个或者整个领域。比如亚里士多德,他的思想便统领西方自然科学千年之久,堪称自然科学的皇帝。然而皇帝总有出错的时候,比如穿上了骗子的新衣。只是在科学领域,不只是存在一两个敢说真话的人,像我们前面提到的哥白尼和布鲁诺就是其中代表。我们还有更大胆的同学,他不仅仅说皇帝的新衣是假的,而且亲手在众人面前,扒掉了皇帝的新衣,让众人看到,一个赤裸裸的皇帝,不过如此!这位胆大包天的同学,便是伽利略,近代自然科学的先驱者。 (伽利略) 亚里士多德的教义里有那么一条:重物下落是物体的自然属性,物体越重,趋向自然位置的倾向性也就越大,所以下落速度也越大。即到物体下落速度与物体重量成正比。这条教义一直到16世纪仍然为人们所笃信,因为好像理所当然。不过从没有人怀疑过,这位哲人无非是转了转脑子就蹦出的这么句话,没想到成了金科玉律。事实上,早在伽利略之前,就有三人怀疑此语,只是他们没有流传下实验记录。而伽利略,作为实验物理的奠基人,第一次做了那个闻名遐迩的自由落体实验比萨斜塔实验。实验的设计很简单,让一个小铁球和一个大铁球同时在斜塔高出释放,看谁先落地。实验的思想却很精妙:假如小球下落慢v1、大球下落快v2,那么把两个球绑在一起的话,必然小球要拖慢大球的下落速率,于是这样的下落速率介于两者之间vv1+v2,可是两个在一起的质量大于任何一个m=m1+m2m1,m2,若看成整体那它们的下落速率应该大于其中任何一个vv1,v2。很显然,从同一个前提假设出发推出了一个矛盾的命题结论,亚里士多德的命题肯定有问题的。据说,伽利略在公众面前做了这个落体实验,证实了两个球是同时落地的,于是证明物体的下落速率与其质量无关。有人也一直怀疑伽利略到底干过这个事情没,事实上,即使如此的实验,也很难判定的,因为抓重球的那个手会释放的慢一些,所以可能会导致与亚里士多德完全相反的结论重球反而下落慢!这可不是人们所能接受的解释。只能说,比萨斜塔实验是伽利略一次成功的表演,真正扒掉皇帝的新衣的实验,乃是更为巧妙的斜面实验。 (比萨斜塔) 1632年和1638年是伽利略的丰收年,他在这两年里分别出版了两部《对话》:《关于托勒密和哥白尼两大世界体系的对话》支持了地动学说,首先阐明了运动的相对性原理;《两门新科学的对话》讨论了材料抗断裂、媒质对运动的阻力、惯性原理、自由落体运动、斜面上物体的运动、抛射体的运动等问题,给出了匀速运动和匀加速运动的定义。这两部《对话》奠定了力学的基础,而关于物体运动的相关讨论和实验研究,更是开创了用实验事实说话的物理学研究风格。更重要的是,关于运动的相对性原理和惯性的讨论,启发了后来的牛顿、爱因斯坦等人,后来关于惯性质量和引力质量的讨论引出了物理学史上最伟大的革命。而这一切的开端,就在于伽利略哪个精巧的斜面实验。 (伽利略的斜面实验) 斜面实验在现在看来非常简单:只要测量斜面上铜球滚下相同距离所需要的时间就可以。伽利略发现铜球滚下1/4距离所需要的实验正好是全程时间的一半,最终确认铜球滚下的距离与所用的时间平方成比例,并且对于不同高度的斜面均能成立。由此可以推广到90斜面,即自由落体运动,物体下落高度应该和所用的时间平方成正比。可是,这个实验有许多致命的问题。测量长度恐怕问题不大,因为只要测量斜面的几分之几而已,用根棉绳就可以做到,可是测量时间呢?读者恐怕会笑用个钟表不就可以嘛!事实上,您错了。那个年代根本没有钟表,因为钟表的发明其实起源于伽利略在后面的几年里关于单摆的等时性等后续研究中。 (钟摆计时器的发明原理是单摆的等时性) 没有表也要计时,这正是伽利略聪明之处,正如欧姆发现欧姆定律的时候,根本就不可能有电流表电压表一样(那时甚至连电流电压是啥都还不清楚!)。一种说法是伽利略用自己的脉搏计时(聪明吧?),只要数脉搏的个数,认为任意两个脉搏之间等时间间隔就可以,不过若您要是有哮喘,那就完了。《对话》里的记录是伽利略发明了漏水计量时间的方法,在一个大水箱戳个小洞,接下所须计量的时间内所有漏出的水,然后称量它们的比重,只要得到不同时间漏出的水的重量之比,就可以得到时间之比!这简直太绝了。不过这一招,其实在公元前二世纪咱大汉王朝就用过了,而且发明了最原始的计时工具漏壶,此待《水煮物理》下期后话。我更喜欢另一个传说,伽利略能精确计时,在于他有个懂音乐的老爸。伽利略小时候就跟老爸学小提琴,因此音乐节拍感非常强,所以只要在做实验的时候,哼支小曲就可以计量时间了,何不乐哉!传说终归还是传说,也就平时吹牛乐呵乐呵罢了。伽利略在斜面实验之后,对物体的运动问题做了大量思考,得出了许多有用而准确的结论。他对时间计量的发明,更是开拓了人类如何记录和度量时间的先河。中国人会日晷、漏壶、沙漏、燃香计时,可偏偏没有发明出机械计时,与其说是遗憾,不如说是孔子的吃饭哲学堵塞了读书人的脑子,实属必然。 (伽利略发明的机械定时器)
个人分类: 水煮物理|6764 次阅读|3 个评论
【水煮物理】之六:扒掉皇帝的新衣
luohuiqian 2008-11-9 15:04
之六:扒掉皇帝的新衣 (连环画《皇帝的新衣》) 中国有句古话:舍得一身剐,敢把皇帝拉下马!可见,碰碰至高无上的皇帝是一种多么恐怖的事情。即便是皇帝被骗子蒙蔽穿了一件无法看见的衣服,也无人敢直言一句,最后只有一个无知的小孩喊出了皇帝在裸奔。那位小孩的命运不可而知,肯定是倒霉到家了。此等事情在学术界想必屡见不鲜,因为学霸们、权威们、先知们的思想总是统领某个或者整个领域。比如亚里士多德,他的思想便统领西方自然科学千年之久,堪称自然科学的皇帝。然而皇帝总有出错的时候,比如穿上了骗子的新衣。只是在科学领域,不只是存在一两个敢说真话的人,像我们前面提到的哥白尼和布鲁诺就是其中代表。我们还有更大胆的同学,他不仅仅说皇帝的新衣是假的,而且亲手在众人面前,扒掉了皇帝的新衣,让众人看到,一个赤裸裸的皇帝,不过如此!这位胆大包天的同学,便是伽利略,近代自然科学的先驱者。 (伽利略) 亚里士多德的教义里有那么一条:重物下落是物体的自然属性,物体越重,趋向自然位置的倾向性也就越大,所以下落速度也越大。即到物体下落速度与物体重量成正比。这条教义一直到16世纪仍然为人们所笃信,因为好像理所当然。不过从没有人怀疑过,这位哲人无非是转了转脑子就蹦出的这么句话,没想到成了金科玉律。事实上,早在伽利略之前,就有三人怀疑此语,只是他们没有流传下实验记录。而伽利略,作为实验物理的奠基人,第一次做了那个闻名遐迩的自由落体实验比萨斜塔实验。实验的设计很简单,让一个小铁球和一个大铁球同时在斜塔高出释放,看谁先落地。实验的思想却很精妙:假如小球下落慢v1、大球下落快v2,那么把两个球绑在一起的话,必然小球要拖慢大球的下落速率,于是这样的下落速率介于两者之间vv1+v2,可是两个在一起的质量大于任何一个m=m1+m2m1,m2,若看成整体那它们的下落速率应该大于其中任何一个vv1,v2。很显然,从同一个前提假设出发推出了一个矛盾的命题结论,亚里士多德的命题肯定有问题的。据说,伽利略在公众面前做了这个落体实验,证实了两个球是同时落地的,于是证明物体的下落速率与其质量无关。有人也一直怀疑伽利略到底干过这个事情没,事实上,即使如此的实验,也很难判定的,因为抓重球的那个手会释放的慢一些,所以可能会导致与亚里士多德完全相反的结论重球反而下落慢!这可不是人们所能接受的解释。只能说,比萨斜塔实验是伽利略一次成功的表演,真正扒掉皇帝的新衣的实验,乃是更为巧妙的斜面实验。 (比萨斜塔) 1632年和1638年是伽利略的丰收年,他在这两年里分别出版了两部《对话》:《关于托勒密和哥白尼两大世界体系的对话》支持了地动学说,首先阐明了运动的相对性原理;《两门新科学的对话》讨论了材料抗断裂、媒质对运动的阻力、惯性原理、自由落体运动、斜面上物体的运动、抛射体的运动等问题,给出了匀速运动和匀加速运动的定义。这两部《对话》奠定了力学的基础,而关于物体运动的相关讨论和实验研究,更是开创了用实验事实说话的物理学研究风格。更重要的是,关于运动的相对性原理和惯性的讨论,启发了后来的牛顿、爱因斯坦等人,后来关于惯性质量和引力质量的讨论引出了物理学史上最伟大的革命。而这一切的开端,就在于伽利略哪个精巧的斜面实验。 (伽利略的斜面实验) 斜面实验在现在看来非常简单:只要测量斜面上铜球滚下相同距离所需要的时间就可以。伽利略发现铜球滚下1/4距离所需要的实验正好是全程时间的一半,最终确认铜球滚下的距离与所用的时间平方成比例,并且对于不同高度的斜面均能成立。由此可以推广到90斜面,即自由落体运动,物体下落高度应该和所用的时间平方成正比。可是,这个实验有许多致命的问题。测量长度恐怕问题不大,因为只要测量斜面的几分之几而已,用根棉绳就可以做到,可是测量时间呢?读者恐怕会笑用个钟表不就可以嘛!事实上,您错了。那个年代根本没有钟表,因为钟表的发明其实起源于伽利略在后面的几年里关于单摆的等时性等后续研究中。 (钟摆计时器的发明原理是单摆的等时性) 没有表也要计时,这正是伽利略聪明之处,正如欧姆发现欧姆定律的时候,根本就不可能有电流表电压表一样(那时甚至连电流电压是啥都还不清楚!)。一种说法是伽利略用自己的脉搏计时(聪明吧?),只要数脉搏的个数,认为任意两个脉搏之间等时间间隔就可以,不过若您要是有哮喘,那就完了。《对话》里的记录是伽利略发明了漏水计量时间的方法,在一个大水箱戳个小洞,接下所须计量的时间内所有漏出的水,然后称量它们的比重,只要得到不同时间漏出的水的重量之比,就可以得到时间之比!这简直太绝了。不过这一招,其实在公元前二世纪咱大汉王朝就用过了,而且发明了最原始的计时工具漏壶,此待《水煮物理》下期后话。我更喜欢另一个传说,伽利略能精确计时,在于他有个懂音乐的老爸。伽利略小时候就跟老爸学小提琴,因此音乐节拍感非常强,所以只要在做实验的时候,哼支小曲就可以计量时间了,何不乐哉!传说终归还是传说,也就平时吹牛乐呵乐呵罢了。伽利略在斜面实验之后,对物体的运动问题做了大量思考,得出了许多有用而准确的结论。他对时间计量的发明,更是开拓了人类如何记录和度量时间的先河。中国人会日晷、漏壶、沙漏、燃香计时,可偏偏没有发明出机械计时,与其说是遗憾,不如说是孔子的吃饭哲学堵塞了读书人的脑子,实属必然。 (伽利略发明的机械定时器) 更多相关博文请访问 【若水阁】(科学博客) : 之零:物理当然很有趣 之一:物理是谁他妈生的? 之二:物理的第一次 之三:有关吃饭问题 之四:裸奔之行为艺术 之五:偷窥上帝的秘密
个人分类: 水煮物理|2562 次阅读|1 个评论
扫脑记
eloa 2008-11-1 10:45
安婆婆 发表于2008-11-1 星期六 0:37 近日一遭奇遇,自觉颇有所得。且拿来与众位分享一通,聊充饭后谈资~ 偶遇脑专家 大学里有一次去朋友那玩,饭前无聊的时候,大家比赛辨认CD音乐里的各种乐器。小D以前学过一阵钢琴,有点艺术细胞,多数都是他抢先辨认出来。我们都不服气地嚷嚷根本没听到,小D就把CD回放。还真邪门,每次重听的时候,当他提醒我们注意小提琴加进来了,大家就果真都听到了小提琴。唉呀呀,一屋子人,摸着脑袋自叹弗如。 回到学校以后我曾琢磨过这事,越想越觉得迷惑:经过耳膜的音乐明明是一模一样的,为什么第一次我听不到小提琴,经过提醒就听到了呢?是我对一种声音的期待改变了耳朵对这声音的灵敏度么?这种改变又是怎么来的呢?想了半天,什么答案也没有。这事过一阵也就忘了。 事隔多年,前不久我在楼下早点摊偶遇一身知识分子装扮的小D,互相寒暄叙旧。我惊讶于一个艺术青年变成了老学究,不免又想起当年的那层迷惑,于是向小D提出来。没想到这家伙下巴微微一扬,显露得色地说,我现在就研究这个呢。 小D一面啃着煎饼果子,一面语调激昂地给我介绍脑科学里面的新奇理论:对一件事物集中注意,确实能改变我们对它感知的灵敏程度。为啥呢?因为人的脑子各个部分是有分工的,一些部位能对另一些部位进行调节,来改变后者的灵敏度。这些被调节的大脑区域负责比较低级的功能,有的接收眼睛传来的视觉信号,有的接收耳朵传来的听觉信号,有的接收肢体传来的触觉信号等等。所有这些感官的信号,都汇总到更高一级的部位进行整合、分析之后,人才能看见、听见、感觉到外界的刺激。这后一类负责整合的区域,能产生较高级的功能,比如语言、记忆、情绪、计算等等。当你得到注意小提琴的讯号,高级区域就让听觉区域的一部分细胞提前活跃起来。当提琴奏响的一刹,早就高度戒备的细胞处理起信号来,比没有被调节的细胞更准确迅速,这种乐音也就更容易辨认出来。 (图片来源:Lekshmi Santhosh: Hearing Colors and Tasting Shapes , Yale Scientific Magazine, summer 2004 ) 他说得天花乱坠,一边卖煎饼的大娘却嗤之以鼻。大娘说:你咋知道人脑子就是这么个转法呢?难不成你剖来看过?大活人的也被你弄死了呀!我刚刚清醒一点的脑子,被几句话又问糊涂了。好在小D拿的是实打实的文凭,不慌不忙地擦擦嘴说,当然不能剖活人,我们用的是功能性磁共振技术。了无生趣的学术词汇打消了大娘的谈话欲,我却拉住小D,非要他解释清楚这是个啥玩意儿。难道真有一种技术可以读出我们的脑子在想什么吗?我又兴奋又有点恐惧。小D豪爽地一拍我大腿,干脆,周末带你到我们实验室来亲身体验一把! 充当小白鼠 周六我起了个大早,兴冲冲来到实验室门口。按照小D的指点,我把身上的硬币、手机、银行卡、手表等等一切有磁性的东西都掏出来放进了储物间。小D打开厚重的隔磁门,带我进到了仪器间。一台硕大的圆筒状机器出现在眼前。圆筒前面是一张一人宽的平台,台子上固定着一个比人头颅稍大的线圈状物。这就是磁共振扫描仪了。我跃跃欲试地就要往上躺,被拦住取掉了眼镜哦,眼镜框也是有磁性的啊。 我把头伸进那个线圈,两耳套好耳机,身体被尼龙搭扣带舒适地固定住,手边放置了一个按钮板。平台开动,我被缓缓地送入大圆筒中。小D关门出去,回到一层玻璃窗相隔的控制室。耳机里很快传来他熟悉的声音:注意听指令,然后用左、中、右三个按钮 报告你看见的物体的倾斜方向。注意,眼睛不能动,要一直盯着正中间的小叉。准备好了吗?开始。 我眼睛上方的一面镜子亮起来,正中央是一个黑色的小十字。短暂的等待,然后耳机里传出一个语音提示:左。我努力地把注意力转移到左边,同时保持眼睛盯着小十字不动。这还真不是太容易的事呢。几秒钟以后,又一个语音提示:左这是让我报告左边物体的倾斜方向。同时,两个黑白条纹的圆点一起在左右两边出现,瞬息即逝。尽管我的视线保持在中央小叉,通过余光还是可以判断出左边的圆点上是向右倾斜的条纹。于是我按动右边的按钮,报告判断结果。有时候我的注意力被引导到右边,却要报告左边的物体方向,这就变得更困难了。游戏就这样进行了二十分钟,我终于在精疲力竭之前被放了出来。 小D笑吟吟地在门口迎接我:不好意思,我们故意把任务设计得有挑战性,是为了吸引你的大脑努力提高注意力,才能尽量探测到较强的信号。我的眼神显得十分迷茫:你说的信号指啥?他把眼镜递给我,一边说:下午再过来,就可以看到了。 看见大脑在干啥 午觉起来,小D领我到了他们系机房。你来看,这是我们早上收集的磁共振图像。电脑屏幕上赫然一幅黑白相间的大脑截面图。 小D敲了几下键盘,图像开始缓慢变化起来,截面从前额向后脑勺移动,我看着沟回像剖西瓜一样层层显现。太酷了,就这样从外面扫描一下,什么伤害也没有,就能获得整个大脑的三维结构!更神奇的是,图像上我的前额和后脑部位各有几小团桔红色,小D说那就是从数据分析出来的大脑活跃区。 这些就是你所说的和注意力有关的部位吗?我指着自己漂亮的剖面图问。是的,比较提示音为左和右的情况,磁共振信号在这几个部位有明显的差别,所以它们很可能负责你对空间的注意力,属于所谓的高级区域。哦,我回想起早点摊上的闲聊,那么这些高级区域应该在和低级区域对话,让它们做好接受信号的准备。在实验里,我要通过看来判断方向,那么被调节的就是和视觉有关的区域了?小D赞许地点头,下面我们来看看视觉区的活动是怎么随时间变化的。 在另一台电脑前,他打开专门的数据分析软件,输出了一条红色的曲线。我仔细观察,在12秒左右的时间里,曲线出现了两次起伏。第一次在3秒左右,像个平缓的小丘;第二次在8秒左右,像个耸起的高峰。回忆实验的情景,我在第1秒的时候接到集中注意的语音提示,第6秒左右小圆点出现。啊,那么8秒时的那个山峰就是视觉区对小圆点产生的反应!奇妙啊,我居然看见了自己的大脑在干什么!可是3秒时的小起伏是怎么回事?那时屏幕上什么也没有,是什么让视觉区产生了活跃? 小D得意地输出另一条蓝色的曲线说,看看来自前额区的信号。哇,3秒时蓝线也出现了相似的起伏!在我集中注意力等待的时候,我的前额区正在提醒视觉区接收将要到来的信号!我居然看见了不能被意识到的大脑活动! 等等,让我冷静一下。虽然专业知识我一点不懂,逻辑训练可不差。同是3秒处产生活跃,凭什么说是前额区在调节视觉区,而不是视觉区在调节前额区呢?这样的活跃同时出现会不会只是巧合呢?小D两手一摊,光凭两条曲线的形状可不能下结论。必须通过严谨的统计分析,才能试着排除其他可能性。我一听头又大了,他理解地哈哈大笑。咱就不深究那些复杂的数学理论了,来,拿罐可乐,我们聊些轻松的话题。 从维纳到格兰杰 走到外面,在门口的台阶上坐下来。阳光斜照在树叶间,一片秋景秋色,这样的美丽后面深藏着多少我们还不能理解的复杂。有时我们觉得自然应该是这样运转的,有时又觉得应该是那样的。一个现在看起来完美的推理,很可能百年后又被后人所推翻。有时候我们认为自己找到了原因,其实却由于对事实了解的不够全面,只看见了表面的假象。我仰头感叹,就像前额区和视觉区的活动,我们知道它们是相互关联的,可谁是因谁是果?小D微微一笑:或许你该先问一下,因果关系是什么? 对于因果最强有力的判断莫过于清楚地知道一件事的来龙去脉。可世界上这样的事情太有限了,谁知道聪明的孩子是不是小时候吃多了核桃?谁知道超市里泡面涨价是不是因为全球粮荒?谁知道今冬不冷是不是因为大气层二氧化碳增多?这都是很难回根溯源的问题。50多年前的一个美国数学天才,控制论的创始人维纳,给出了这样一个定义:如果我们对一件事情的了解能使预测另一件事情变得更精确,就说事件一是导致事件二的原因。这个思路很受经济学家的欢迎,因为经济上的事件往往难以追踪其确切的来龙去脉,大家都在寻找能从宏观表象判断隐藏规律的方法。1969年,一个叫格兰杰的经济学家把维纳的定义数学化了,给出了具体的计算公式。用这种方法判断出的因果关系,就叫做维纳-格兰杰因果。 (诺伯特维纳(黑白照片)和克莱夫格兰杰(彩色照片)) 说到这里,他开始眉飞色舞:你知道吗,我们用格兰杰的方法来比较前额和视觉区的关系,发现前额的活动确实是视觉区活动的格兰杰原因,而反过来效果却不显著。真的?那人们对注意力机理的猜测,确实能得到事实的证据了! 我真庆幸偶遇了小D,得以窥探到一点点大脑运作的奥秘,这感觉真好。我也开始有点理解了小D这样的老学究,为什么能够一门心思地沉迷在实验室和电脑前。能不停拥有发现的快乐,也是让人羡慕的一件事情啊!何况这发现还有关人类意识的未解之谜。 我弹弹可乐的空罐子,想起了最后一个问题:为啥在进仪器间之前你把我身上的金属物件全给没收了?他比划出半个人的长度,说:磁共振扫描仪能把这么大的铁家伙一下子给吸进去,如果你不想在实验中被硬币别针扎得一脑袋,还是老老实实交出来吧。哈哈! 转载原创文章请注明,转载自: 科学松鼠会 本文链接: http://songshuhui.net/archives/3703.html
个人分类: 心理|1498 次阅读|0 个评论
实验与休闲同在,科学共人文齐飞
lixiaoyan 2008-10-28 20:11
趁周五刚好去新区开会,决定去学校周边看看有没有适合的土壤,虽然太阳很大,但是我没有感到一丝的炎热,心情还不错啊,嘿逛了两个多小时,取了五个点,下图 是取土点的位置(自制的,哈哈借用googleearth的数据,不用征税吧): 把取回来的土晾在实验室的某个角落(目的、意义、哈哈保密): 师兄自制的小温室吧,不过本人以后用的比这个大多了(至于保暖效果呵呵论证当中) 这些草长得还不错吧(哎呀这叫穷人家的孩子早当家,这不科研经费不要随便浪费嘛,随便一个棚子草儿们就长的根正苗壯的,随便吹一下) 这叫不服不行就是要绿不是叫你眼睛绿话要说明白 池塘、水牛还有什么比这更加惬意?? 话不多说,咋穷人家科研条件不能和科学院的什么比,不过比的是结果。吹大了泡泡灭了
个人分类: 科研学习|2932 次阅读|1 个评论
暂时的消停
lixiaoyan 2008-10-19 11:32
连续12天的实验,终于告一段落,过两天测有机质需要的时间应该不长。实验虽然辛苦,但自己的确是学到东西了,导师对我们的指责是我们最宝贵的财富,从一开始的成天指责到最后导师可以放心的交给我们,可知我们在进步。实验最大的心得就是:做什么事都要认真细心。实验结束,突然停了下来,不知道自己要干什么了,呵呵,还是想就这样一直做下去又回到自己的现状了,读书报告、综述、实验方案没有一个是有把握的,心里着急但同时也是空落落的 昨天帮师兄把我们种的盆栽草统计了一下,看到那些草,觉得自己的实验有希望但更觉得希望好渺茫,无助有希望是因为小草长得不错,绿油油的;希望渺茫是因为每盆草的数目参差不齐,多的多,少的少,明显的不按我们预计播的种子数目生长,好郁闷,为什么别人能做好呢?这也让我明白老师说的,我们没做过实验,自己的那些实验别空想,一定要有参考原来看似简单的事,做好却这样的难。像我这样粗心的人,这样的实验能做下去吗?很怀疑。 最近总听到些让人伤感的事,真的啊,生命真的很脆弱。 这几天做实验下来,还为自己担心呢,整天碰那些有毒的哎!以后还是小心点吧! 安静的安静去忙碌的忙碌去无聊着的还在无聊 天凉了,大家都注意身体! 今天该打个电话回家了,问候家人,特别是爷爷,去上海就医了,不知道健康的回家了没?担心着心里也默默的祝福爷爷健康
个人分类: 科研学习|2867 次阅读|0 个评论
2007暑假闽江边上
lengwa 2008-9-26 11:40
闽江边的咸草地 涨潮时甲烷通量 午餐时间
个人分类: 实验风采|2275 次阅读|2 个评论
从伽利略到朱棣文
jlpemail 2008-9-11 21:16
从伽利略到朱棣文 重力测量点滴之三 有人把朱棣文用原子干涉仪进行的重力测量和先前的绝对重力测量仪器进行的测量结果的比较,称为现代比萨斜塔实验。这是有道理的。 这两个实验,都利用了自由落体规律。实验都表明,重力的作用,对于宏观的球体和对于微观的球体,是一视同仁的。 但是,朱棣文的实验,还使用了干涉技术。干涉技术多次被用于测量时间、距离或者重力。其他比如:迈克尔逊激光干涉技术、甚长基线干涉技术。他们利用了光、电磁波或者原子的物质波动特性,其实现远比伽利略时代的实验要复杂得多。 干涉技术只是实现测量目的的技术之一,测量量的观测还需要其他技术的配合。 而笔者关注的是,即使是原理简单的自由落体现象,其作用的发挥也是不断花样翻新的。谁能保证,以后不会有更奇妙的粒子,等待我们用于重力测量?精度再上一个台阶,不是没有可能的。 虽然相距 400 年,但可以说,伽利略是 16 世纪的朱棣文、朱棣文是 20 世纪的伽利略。他们的共同之处在于,极度重视物理科学的实验性、操作性;强调技术细节。原理十分简单的试验,其实现未必简单。可能会在一些不为人察觉的细节上出现纰漏,导致试验的失败。 在从 1564 至今的四百多年中,对重力测量的理论和实践施加了重要影响的人物不胜枚举。笔者兴趣所在,还是进行了这些特别试验的人们。从早期的数学摆、物理摆,到 20 世纪早期的气压重力仪、再到弹簧重力仪,直至现在的原子干涉重力仪器,许多能工巧匠留下了他们的闪光名字。 他们的思想和理念值得研究和推崇。
个人分类: 思维秀场|3993 次阅读|2 个评论
我只是一个做实验的
buffer 2008-5-11 09:50
不知道为什么,从来不觉得自己是在进行科学研究,只觉觉自己是一个做实验的。 总觉得科学研究是一件神圣的,高贵的事情,而自己还远远不能企及。 当然,自己的身份目前也只是一个学生,那么进行科学研究就需要哪些条件或者说都具备什么样的条件时候,我就会感觉自己是在进行科学研究呢?这个对于我来说,也真是件迷惑的事情? 做了导师?有自己的学生?有自己的课题经费?有自己的实验室? 请各位专家们或者进行科学研究的老师们指导迷津。
个人分类: 自然与社会|3844 次阅读|4 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-23 14:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部