科學網

 找回密碼
  注冊
搜索
熱搜: 科學 論文

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
個人分類: 基礎數學-邏輯-物理|10477 次閱讀|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的程序。
個人分類: 生活點滴|6518 次閱讀|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 。
個人分類: 生活點滴|9850 次閱讀|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
個人分類: 生活點滴|4966 次閱讀|1 個評論
分享 "錯時上班"之另一好處
notebook 2009-1-16 20:26
日前在我院加速器上做實驗,發現一個很有意識的現象:測量系統的穩定性與幾乎與上班時間剛好相反。 9:00之前,系統的穩定性還好;9:00之后,噪聲水平大增;下午4:00之后,噪聲水平突然降低,測量系統恢復正常。大家懷疑這是由電源引起的,因為此實驗室沒有一個好的接地線,而目前我院幾個大工程正在建設,也許是大型施工設備運行帶來的干擾。 沒辦法,只好求加速器操作人員陪我們晚上加班,否則實驗沒法開展。 電源問題,接地問題,是實驗中常出的問題和忽略的問題,有時也是很難發現和解決的問題,只好錯時上班。
個人分類: 生活點滴|2077 次閱讀|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日 陰轉晴      終于到了回去的時刻了,在海上漂泊了十天了,竟有點舍不得,不過還有陸地上的任務等著我們去完成。       今天的風浪依舊很大。八點多的時候我們把我們的個人用品還有實驗樣品悉數搬到三號船上,小小的船艙容不下我們這么多東西,就索性全部放到船尾的廚房里,九 點多的時候我們正式出發,海上風浪大得像我們來時的樣子,過去的道路照亮了歸途。船一直開到十二點多才看到陸地,正式靠岸時都快一點了,先是把捕獲的魚蟹 運走,我們也顧不上船上我們的輜重了,養殖場里還有導師在等我們,于是坐著現代車就離去了。      終于回到了陸地。
個人分類: 海上生活|3175 次閱讀|1 個評論
分享 大自然實驗室
moxj 2008-12-10 23:38
今天路過實驗室的時候,師姐看到我,喊我過去幫忙.我以為出什么事情,原來是操作不當,針管不能用了.不會使用超聲就束手無策.其實,有時候很多事情只要一些小技巧就能做好.只是大家不注意,也不這樣去思考和觀察. 想起來今天這個話題,我應該從小時候滿山遍野溜達講起,從我5歲開始捕鳥和8歲開始捕魚講起,但大家成長經歷畢竟不同,有的可能幾句話是說不清楚的.講小時候,話題也太多了,所以今晚回去之前還拿幾張野外的照片和你們幾個分享下. 出發前要準備好工作和生活必須的東西,做其它事情也是一樣. 有了失誤要趕快想辦法彌補. 這個不銜接了,但后面的事情也是要注意和學習的.(這是家酒店,石頭房子是廚房和客房,帳篷是餐廳) 我要說的是路過這里不要只記得狂歡.給你的馬修補馬掌,以后工作會很方便. 業余學習,這個也很有技巧的.不要把我們看過的解剖學都忘在腦后.什么東西都有實用的時候. 別說右手這個了,司機經常用的噴燈大概很多人都不知道.但你把很多東西都組裝到一起就不一樣了,所以現在實驗室的儀器也一樣.買人家最好的儀器,只能重復別人的工作. 隨處可見的牛糞就是燃料,再不要拿褲子燒了. 思維要變通,這樣的方法可以嗎?你小時候玩過積木嗎?燃料就不能做石塊嗎?初中化學的燃燒原理你還記得嗎?圖我不會畫,你自己設計一種合理方案吧. 需要的時候,什么不可以做到呢? 但在什么地方,都要記得和別人合作.即使室內的實驗室也一樣,我不是寫過 我把秘密藏在你心里 嗎?只要是自己覺得好的東西,先想到分享給別人. 前面有過這只鷹,我有時也很頑皮,不過要觀察到草鼠的活動情況和鷹的食物關系才能做到. 如果你想和這樣大的動物玩,那成本可就大了,一匹馬,比我們吃一餐飯還快就沒有了. 不要亂想了,鷹我放走了.要和動物和平相處.給剛出窩的和平鴿照張相. 忘了說捕魚的事情,其實就更簡單了.
個人分類: 地質隊員|3931 次閱讀|2 個評論
分享 實驗的境界——您達到哪種境界了?(轉改)
吳信 2008-11-17 19:38
實驗的境界您達到哪種境界了?(轉改) 常人皆有五感,而圣斗士的終極目標是超越第七感,那實驗又如何呢?類比了一下,將實驗也大體附會出了幾重境界。要說明的是,這一境界理論僅限于生物學領域,醫學等不在其列,另外該理論只應用于實驗,生物學的理論研究也不在其中。那這所謂的八重境界究竟是哪八重呢?下面就讓我一一敘述。 一、初學者簡單操作的境界 這個層面的實驗包括配試劑、滅菌等,可以認為是分析化學的級別。別看只是第二重,要求一點都不低,想當年分化實驗對數據的偏差要求可是0.17%! 二、典型生物學操作的境界 對于分子生物學工作者來說,這個境界的實驗就是抽、批、切、離了。 三、需要保護實驗對象的境界 典型的微生物和細胞實驗都屬于這一層面,如果你養細胞總是污染的話,好好檢查一下你的操作吧! 四、需要保護實驗者自身的境界 處理EB和丙稀酰銨該注意什么?戴手套。光知道這一點是不夠的,廢液、廢膠的處理也是需要上心的。別看跑電泳也許不是那么難,其中自我保護和保護他人的意識其實是很體現能力的。同樣的問題在處理微生物和細胞實驗廢料時同樣存在,這時問題就變成在保護實驗對象的前提下保護實驗者,要求明顯就更進一步了。 以上的五重都是一目了然的實驗技能的境界,就好比人的五感一樣,下面的就越來越行而上了。 五、安排實驗的境界 初中的時候我們學過一篇闡述統籌規劃的說明文,講應該在燒水的同時做其他事情。具體記不得了,大抵如此。生物學實驗同樣存在一個合理安排時間的問題。很多人也許實驗操作很過關,但是卻不會安排時間,經常做得知前忘后、廢寢忘食的。當然我們并不期待能像某大蝦那樣southern、northern和western同時做。 六、分析實驗的境界 實驗的結果怎么分析討論,實驗中遇到的問題考慮用什么策略來解決,這些只有黃金圣斗士才能達到的境界幾乎可以說是生物學實驗中的究極考驗了。 七、指導實驗的境界 自己知道容易,讓別人也知道就難了。同樣,自己會做實驗不稀奇,指導別人做得一樣好就要復雜的多。如果考慮到要讓別人也掌握前面所述的幾重境界的話,這超越第七重境界的境界確實是絕對的實驗大師的標桿了! 至于這第七重以上是什么,以我的能力已經無法體味,因此我也就不再繼續牽強附會下去了。也許大家已經發現,其實我這兒所提出的幾重境界,在具體的實驗中并不是那么涇渭分明的,好幾個層面的東西往往互為呼應,互相補充著,低層次的內容需要高層次的指導,高層次的內容離開了低層次的同樣玩不轉。 這幾重境界理論完全是隨性想出來的,非常的不成熟。就僅當作拋磚引玉,與大家共勉吧!
個人分類: 科研心得|2825 次閱讀|1 個評論
分享 做實驗的時候不要太相信書本上的標準實驗操作
cutefay 2008-11-14 08:46
最近我在檢測固體中蛋白質的含量,用凱式定氮法來做。我們課題組的凱式定氮的裝置以及實驗操作的辦法都是教科書中的辦法。做的有好幾個相似的樣品,,每個樣品都做了幾個平行樣品,測的含量都是4%多一點。因為每次測誤差都不大,并且感覺實驗操作是嚴格按照書上的說法來做的。所以我覺得這個實驗測得的結果是很準確的。 而剛好這個樣品被和我們課題組合作的公司拿到其他機構去做同樣的檢測,他們的檢測結果是12%多,數據差得很大。于是,我又做了好幾次實驗,把可能出現誤差的因素都排除掉,反復驗證,還是測的結果是4%多。而最后我找了一下原因,可能的原因是我們的凱式定氮以儀不是微量凱式定氮儀,所以測定結果誤差較大。 不僅是凱式定氮,以前測淀粉、還原糖、總糖、可溶性蛋白等物質的時候也發現各種測定方法之間是有差別,有時候差別也是很大的。 所以,做實驗不要迷信一種辦法或者儀器,用不同的方法和儀器做比較,多驗證一下,才能找到最佳的測定辦法。
個人分類: 科研*創新|2288 次閱讀|0 個評論
分享 [水煮物理]之六:扒掉皇帝的新衣
熱度 1 penrose 2008-11-9 15:08
之六:扒掉皇帝的新衣 (連環畫《皇帝的新衣》) 中國有句古話:舍得一身剮,敢把皇帝拉下馬!可見,碰碰至高無上的皇帝是一種多么恐怖的事情。即便是皇帝被騙子蒙蔽穿了一件無法看見的衣服,也無人敢直言一句,最后只有一個無知的小孩喊出了皇帝在裸奔。那位小孩的命運不可而知,肯定是倒霉到家了。此等事情在學術界想必屢見不鮮,因為學霸們、權威們、先知們的思想總是統領某個或者整個領域。比如亞里士多德,他的思想便統領西方自然科學千年之久,堪稱自然科學的皇帝。然而皇帝總有出錯的時候,比如穿上了騙子的新衣。只是在科學領域,不只是存在一兩個敢說真話的人,像我們前面提到的哥白尼和布魯諾就是其中代表。我們還有更大膽的同學,他不僅僅說皇帝的新衣是假的,而且親手在眾人面前,扒掉了皇帝的新衣,讓眾人看到,一個赤裸裸的皇帝,不過如此!這位膽大包天的同學,便是伽利略,近代自然科學的先驅者。 (伽利略) 亞里士多德的教義里有那么一條:重物下落是物體的自然屬性,物體越重,趨向自然位置的傾向性也就越大,所以下落速度也越大。即到物體下落速度與物體重量成正比。這條教義一直到16世紀仍然為人們所篤信,因為好像理所當然。不過從沒有人懷疑過,這位哲人無非是轉了轉腦子就蹦出的這么句話,沒想到成了金科玉律。事實上,早在伽利略之前,就有三人懷疑此語,只是他們沒有流傳下實驗記錄。而伽利略,作為實驗物理的奠基人,第一次做了那個聞名遐邇的自由落體實驗比薩斜塔實驗。實驗的設計很簡單,讓一個小鐵球和一個大鐵球同時在斜塔高出釋放,看誰先落地。實驗的思想卻很精妙:假如小球下落慢v1、大球下落快v2,那么把兩個球綁在一起的話,必然小球要拖慢大球的下落速率,于是這樣的下落速率介于兩者之間vv1+v2,可是兩個在一起的質量大于任何一個m=m1+m2m1,m2,若看成整體那它們的下落速率應該大于其中任何一個vv1,v2。很顯然,從同一個前提假設出發推出了一個矛盾的命題結論,亞里士多德的命題肯定有問題的。據說,伽利略在公眾面前做了這個落體實驗,證實了兩個球是同時落地的,于是證明物體的下落速率與其質量無關。有人也一直懷疑伽利略到底干過這個事情沒,事實上,即使如此的實驗,也很難判定的,因為抓重球的那個手會釋放的慢一些,所以可能會導致與亞里士多德完全相反的結論重球反而下落慢!這可不是人們所能接受的解釋。只能說,比薩斜塔實驗是伽利略一次成功的表演,真正扒掉皇帝的新衣的實驗,乃是更為巧妙的斜面實驗。 (比薩斜塔) 1632年和1638年是伽利略的豐收年,他在這兩年里分別出版了兩部《對話》:《關于托勒密和哥白尼兩大世界體系的對話》支持了地動學說,首先闡明了運動的相對性原理;《兩門新科學的對話》討論了材料抗斷裂、媒質對運動的阻力、慣性原理、自由落體運動、斜面上物體的運動、拋射體的運動等問題,給出了勻速運動和勻加速運動的定義。這兩部《對話》奠定了力學的基礎,而關于物體運動的相關討論和實驗研究,更是開創了用實驗事實說話的物理學研究風格。更重要的是,關于運動的相對性原理和慣性的討論,啟發了后來的牛頓、愛因斯坦等人,后來關于慣性質量和引力質量的討論引出了物理學史上最偉大的革命。而這一切的開端,就在于伽利略哪個精巧的斜面實驗。 (伽利略的斜面實驗) 斜面實驗在現在看來非常簡單:只要測量斜面上銅球滾下相同距離所需要的時間就可以。伽利略發現銅球滾下1/4距離所需要的實驗正好是全程時間的一半,最終確認銅球滾下的距離與所用的時間平方成比例,并且對于不同高度的斜面均能成立。由此可以推廣到90斜面,即自由落體運動,物體下落高度應該和所用的時間平方成正比?墒,這個實驗有許多致命的問題。測量長度恐怕問題不大,因為只要測量斜面的幾分之幾而已,用根棉繩就可以做到,可是測量時間呢?讀者恐怕會笑用個鐘表不就可以嘛!事實上,您錯了。那個年代根本沒有鐘表,因為鐘表的發明其實起源于伽利略在后面的幾年里關于單擺的等時性等后續研究中。 (鐘擺計時器的發明原理是單擺的等時性) 沒有表也要計時,這正是伽利略聰明之處,正如歐姆發現歐姆定律的時候,根本就不可能有電流表電壓表一樣(那時甚至連電流電壓是啥都還不清楚!)。一種說法是伽利略用自己的脈搏計時(聰明吧?),只要數脈搏的個數,認為任意兩個脈搏之間等時間間隔就可以,不過若您要是有哮喘,那就完了!秾υ挕防锏挠涗浭琴だ园l明了漏水計量時間的方法,在一個大水箱戳個小洞,接下所須計量的時間內所有漏出的水,然后稱量它們的比重,只要得到不同時間漏出的水的重量之比,就可以得到時間之比!這簡直太絕了。不過這一招,其實在公元前二世紀咱大漢王朝就用過了,而且發明了最原始的計時工具漏壺,此待《水煮物理》下期后話。我更喜歡另一個傳說,伽利略能精確計時,在于他有個懂音樂的老爸。伽利略小時候就跟老爸學小提琴,因此音樂節拍感非常強,所以只要在做實驗的時候,哼支小曲就可以計量時間了,何不樂哉!傳說終歸還是傳說,也就平時吹牛樂呵樂呵罷了。伽利略在斜面實驗之后,對物體的運動問題做了大量思考,得出了許多有用而準確的結論。他對時間計量的發明,更是開拓了人類如何記錄和度量時間的先河。中國人會日晷、漏壺、沙漏、燃香計時,可偏偏沒有發明出機械計時,與其說是遺憾,不如說是孔子的吃飯哲學堵塞了讀書人的腦子,實屬必然。 (伽利略發明的機械定時器)
個人分類: 水煮物理|5082 次閱讀|3 個評論
分享 【水煮物理】之六:扒掉皇帝的新衣
luohuiqian 2008-11-9 15:04
之六:扒掉皇帝的新衣 (連環畫《皇帝的新衣》) 中國有句古話:舍得一身剮,敢把皇帝拉下馬!可見,碰碰至高無上的皇帝是一種多么恐怖的事情。即便是皇帝被騙子蒙蔽穿了一件無法看見的衣服,也無人敢直言一句,最后只有一個無知的小孩喊出了皇帝在裸奔。那位小孩的命運不可而知,肯定是倒霉到家了。此等事情在學術界想必屢見不鮮,因為學霸們、權威們、先知們的思想總是統領某個或者整個領域。比如亞里士多德,他的思想便統領西方自然科學千年之久,堪稱自然科學的皇帝。然而皇帝總有出錯的時候,比如穿上了騙子的新衣。只是在科學領域,不只是存在一兩個敢說真話的人,像我們前面提到的哥白尼和布魯諾就是其中代表。我們還有更大膽的同學,他不僅僅說皇帝的新衣是假的,而且親手在眾人面前,扒掉了皇帝的新衣,讓眾人看到,一個赤裸裸的皇帝,不過如此!這位膽大包天的同學,便是伽利略,近代自然科學的先驅者。 (伽利略) 亞里士多德的教義里有那么一條:重物下落是物體的自然屬性,物體越重,趨向自然位置的傾向性也就越大,所以下落速度也越大。即到物體下落速度與物體重量成正比。這條教義一直到16世紀仍然為人們所篤信,因為好像理所當然。不過從沒有人懷疑過,這位哲人無非是轉了轉腦子就蹦出的這么句話,沒想到成了金科玉律。事實上,早在伽利略之前,就有三人懷疑此語,只是他們沒有流傳下實驗記錄。而伽利略,作為實驗物理的奠基人,第一次做了那個聞名遐邇的自由落體實驗比薩斜塔實驗。實驗的設計很簡單,讓一個小鐵球和一個大鐵球同時在斜塔高出釋放,看誰先落地。實驗的思想卻很精妙:假如小球下落慢v1、大球下落快v2,那么把兩個球綁在一起的話,必然小球要拖慢大球的下落速率,于是這樣的下落速率介于兩者之間vv1+v2,可是兩個在一起的質量大于任何一個m=m1+m2m1,m2,若看成整體那它們的下落速率應該大于其中任何一個vv1,v2。很顯然,從同一個前提假設出發推出了一個矛盾的命題結論,亞里士多德的命題肯定有問題的。據說,伽利略在公眾面前做了這個落體實驗,證實了兩個球是同時落地的,于是證明物體的下落速率與其質量無關。有人也一直懷疑伽利略到底干過這個事情沒,事實上,即使如此的實驗,也很難判定的,因為抓重球的那個手會釋放的慢一些,所以可能會導致與亞里士多德完全相反的結論重球反而下落慢!這可不是人們所能接受的解釋。只能說,比薩斜塔實驗是伽利略一次成功的表演,真正扒掉皇帝的新衣的實驗,乃是更為巧妙的斜面實驗。 (比薩斜塔) 1632年和1638年是伽利略的豐收年,他在這兩年里分別出版了兩部《對話》:《關于托勒密和哥白尼兩大世界體系的對話》支持了地動學說,首先闡明了運動的相對性原理;《兩門新科學的對話》討論了材料抗斷裂、媒質對運動的阻力、慣性原理、自由落體運動、斜面上物體的運動、拋射體的運動等問題,給出了勻速運動和勻加速運動的定義。這兩部《對話》奠定了力學的基礎,而關于物體運動的相關討論和實驗研究,更是開創了用實驗事實說話的物理學研究風格。更重要的是,關于運動的相對性原理和慣性的討論,啟發了后來的牛頓、愛因斯坦等人,后來關于慣性質量和引力質量的討論引出了物理學史上最偉大的革命。而這一切的開端,就在于伽利略哪個精巧的斜面實驗。 (伽利略的斜面實驗) 斜面實驗在現在看來非常簡單:只要測量斜面上銅球滾下相同距離所需要的時間就可以。伽利略發現銅球滾下1/4距離所需要的實驗正好是全程時間的一半,最終確認銅球滾下的距離與所用的時間平方成比例,并且對于不同高度的斜面均能成立。由此可以推廣到90斜面,即自由落體運動,物體下落高度應該和所用的時間平方成正比?墒,這個實驗有許多致命的問題。測量長度恐怕問題不大,因為只要測量斜面的幾分之幾而已,用根棉繩就可以做到,可是測量時間呢?讀者恐怕會笑用個鐘表不就可以嘛!事實上,您錯了。那個年代根本沒有鐘表,因為鐘表的發明其實起源于伽利略在后面的幾年里關于單擺的等時性等后續研究中。 (鐘擺計時器的發明原理是單擺的等時性) 沒有表也要計時,這正是伽利略聰明之處,正如歐姆發現歐姆定律的時候,根本就不可能有電流表電壓表一樣(那時甚至連電流電壓是啥都還不清楚!)。一種說法是伽利略用自己的脈搏計時(聰明吧?),只要數脈搏的個數,認為任意兩個脈搏之間等時間間隔就可以,不過若您要是有哮喘,那就完了!秾υ挕防锏挠涗浭琴だ园l明了漏水計量時間的方法,在一個大水箱戳個小洞,接下所須計量的時間內所有漏出的水,然后稱量它們的比重,只要得到不同時間漏出的水的重量之比,就可以得到時間之比!這簡直太絕了。不過這一招,其實在公元前二世紀咱大漢王朝就用過了,而且發明了最原始的計時工具漏壺,此待《水煮物理》下期后話。我更喜歡另一個傳說,伽利略能精確計時,在于他有個懂音樂的老爸。伽利略小時候就跟老爸學小提琴,因此音樂節拍感非常強,所以只要在做實驗的時候,哼支小曲就可以計量時間了,何不樂哉!傳說終歸還是傳說,也就平時吹牛樂呵樂呵罷了。伽利略在斜面實驗之后,對物體的運動問題做了大量思考,得出了許多有用而準確的結論。他對時間計量的發明,更是開拓了人類如何記錄和度量時間的先河。中國人會日晷、漏壺、沙漏、燃香計時,可偏偏沒有發明出機械計時,與其說是遺憾,不如說是孔子的吃飯哲學堵塞了讀書人的腦子,實屬必然。 (伽利略發明的機械定時器) 更多相關博文請訪問 【若水閣】(科學博客) : 之零:物理當然很有趣 之一:物理是誰他媽生的? 之二:物理的第一次 之三:有關吃飯問題 之四:裸奔之行為藝術 之五:偷窺上帝的秘密
個人分類: 水煮物理|2215 次閱讀|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的數據,不用征稅吧): 把取回來的土晾在實驗室的某個角落(目的、意義、哈哈保密): 師兄自制的小溫室吧,不過本人以后用的比這個大多了(至于保暖效果呵呵論證當中) 這些草長得還不錯吧(哎呀這叫窮人家的孩子早當家,這不科研經費不要隨便浪費嘛,隨便一個棚子草兒們就長的根正苗壯的,隨便吹一下) 這叫不服不行就是要綠不是叫你眼睛綠話要說明白 池塘、水牛還有什么比這更加愜意?? 話不多說,咋窮人家科研條件不能和科學院的什么比,不過比的是結果。吹大了泡泡滅了
個人分類: 科研學習|2091 次閱讀|1 個評論
分享 暫時的消停
lixiaoyan 2008-10-19 11:32
連續12天的實驗,終于告一段落,過兩天測有機質需要的時間應該不長。實驗雖然辛苦,但自己的確是學到東西了,導師對我們的指責是我們最寶貴的財富,從一開始的成天指責到最后導師可以放心的交給我們,可知我們在進步。實驗最大的心得就是:做什么事都要認真細心。實驗結束,突然停了下來,不知道自己要干什么了,呵呵,還是想就這樣一直做下去又回到自己的現狀了,讀書報告、綜述、實驗方案沒有一個是有把握的,心里著急但同時也是空落落的 昨天幫師兄把我們種的盆栽草統計了一下,看到那些草,覺得自己的實驗有希望但更覺得希望好渺茫,無助有希望是因為小草長得不錯,綠油油的;希望渺茫是因為每盆草的數目參差不齊,多的多,少的少,明顯的不按我們預計播的種子數目生長,好郁悶,為什么別人能做好呢?這也讓我明白老師說的,我們沒做過實驗,自己的那些實驗別空想,一定要有參考原來看似簡單的事,做好卻這樣的難。像我這樣粗心的人,這樣的實驗能做下去嗎?很懷疑。 最近總聽到些讓人傷感的事,真的啊,生命真的很脆弱。 這幾天做實驗下來,還為自己擔心呢,整天碰那些有毒的哎!以后還是小心點吧! 安靜的安靜去忙碌的忙碌去無聊著的還在無聊 天涼了,大家都注意身體! 今天該打個電話回家了,問候家人,特別是爺爺,去上海就醫了,不知道健康的回家了沒?擔心著心里也默默的祝福爺爺健康
個人分類: 科研學習|1932 次閱讀|0 個評論
分享 2007暑假閩江邊上
lengwa 2008-9-26 11:40
閩江邊的咸草地 漲潮時甲烷通量 午餐時間
個人分類: 實驗風采|1593 次閱讀|2 個評論
分享 從伽利略到朱棣文
jlpemail 2008-9-11 21:16
從伽利略到朱棣文 重力測量點滴之三 有人把朱棣文用原子干涉儀進行的重力測量和先前的絕對重力測量儀器進行的測量結果的比較,稱為現代比薩斜塔實驗。這是有道理的。 這兩個實驗,都利用了自由落體規律。實驗都表明,重力的作用,對于宏觀的球體和對于微觀的球體,是一視同仁的。 但是,朱棣文的實驗,還使用了干涉技術。干涉技術多次被用于測量時間、距離或者重力。其他比如:邁克爾遜激光干涉技術、甚長基線干涉技術。他們利用了光、電磁波或者原子的物質波動特性,其實現遠比伽利略時代的實驗要復雜得多。 干涉技術只是實現測量目的的技術之一,測量量的觀測還需要其他技術的配合。 而筆者關注的是,即使是原理簡單的自由落體現象,其作用的發揮也是不斷花樣翻新的。誰能保證,以后不會有更奇妙的粒子,等待我們用于重力測量?精度再上一個臺階,不是沒有可能的。 雖然相距 400 年,但可以說,伽利略是 16 世紀的朱棣文、朱棣文是 20 世紀的伽利略。他們的共同之處在于,極度重視物理科學的實驗性、操作性;強調技術細節。原理十分簡單的試驗,其實現未必簡單?赡軙谝恍┎粸槿瞬煊X的細節上出現紕漏,導致試驗的失敗。 在從 1564 至今的四百多年中,對重力測量的理論和實踐施加了重要影響的人物不勝枚舉。筆者興趣所在,還是進行了這些特別試驗的人們。從早期的數學擺、物理擺,到 20 世紀早期的氣壓重力儀、再到彈簧重力儀,直至現在的原子干涉重力儀器,許多能工巧匠留下了他們的閃光名字。 他們的思想和理念值得研究和推崇。
個人分類: 思維秀場|2917 次閱讀|2 個評論
分享 我只是一個做實驗的
buffer 2008-5-11 09:50
不知道為什么,從來不覺得自己是在進行科學研究,只覺覺自己是一個做實驗的。 總覺得科學研究是一件神圣的,高貴的事情,而自己還遠遠不能企及。 當然,自己的身份目前也只是一個學生,那么進行科學研究就需要哪些條件或者說都具備什么樣的條件時候,我就會感覺自己是在進行科學研究呢?這個對于我來說,也真是件迷惑的事情? 做了導師?有自己的學生?有自己的課題經費?有自己的實驗室? 請各位專家們或者進行科學研究的老師們指導迷津。
個人分類: 自然與社會|2951 次閱讀|4 個評論

Archiver|手機版|科學網 ( 京ICP備14006957 )

GMT+8, 2019-5-15 06:28

Powered by ScienceNet.cn

Copyright © 2007- 中國科學報社

返回頂部
时时彩平台