久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

如何編寫和語言程序解讀

時間:2019-05-13 19:56:52下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《如何編寫和語言程序解讀》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《如何編寫和語言程序解讀》。

第一篇:如何編寫和語言程序解讀

如何編寫和匯編語言程序

可以用普通文本編輯器編輯匯編語言源程序。常用的有 MS-DOS 下的 EDIT 文本編輯程序,Windows 下的寫字板(WORDPAD.EXE)等。用戶通過屏幕編輯程序鍵入源程序,檢查無誤,可將源程序存到匯編系統盤上,該程序的擴展名為· ASM。軟件運行基本環境

運行匯編程序必備的軟件環境: DOS 操作系統;匯編系統。匯編系統盤應包含如下文件: MASM 宏匯編程序文件 LISK 連接程序文件

CRFF 索引程序文件(也可不用)匯編源程序編寫)源程序的書寫格式

當 CPU 訪問內存時,是把存儲器分成若干個段,通過 4 個段寄存器中存放的地址對內存儲器訪問,因此在編源程序時必須按段的結構來編制程序。由于每個段的物理空間為≤ 64KB,所以程序中各段可以分別為一個或幾個。源程序的書寫一般有如下形式:

邏輯堆棧段 堆棧段名 SEGMENT STACK 用變量定義預置的堆棧空間 · ·

堆棧段名 ENDS 邏輯數據段 數據段名 SEGMENT 用變量定義預置的數據空間 · ·

數據段名 ENDS 邏輯代碼段 代碼段名 SEGMENT ASSUME 定義各段尋址關系 過程名 PROC … 程序 · ·

過程名 ENDP 代碼段名 ENDS END 過程名或起始標號

在源程序中最少要有一個代碼段,數據段根據需要可有可無,也可以增設附加段。對于堆棧段也可以根據需要可有可無,但在連接(LINK)時計算機將顯示警告性的錯誤: Warning : N STACK segment There was 1 error detected.在程序中如果沒有用到堆棧時,該錯誤提示不影響程序的運行,如果程序中用到堆棧時必須設置堆棧段。其中: SEGMENT、ASSUME、PROC … ENDP 為偽指令,偽指令是發給匯編程序 ASM 的,而不和微處理器打交道,在匯編時不產生目標代碼,只是把源程序中各段的設置情況告訴匯編程序。)段寄存器的段地址的裝入

Assume 偽指令語句只是建立了當前段與段寄存器的聯系,但不能把各段的段地址裝入相應的段寄存器中,段寄存器的段地址的裝入是在程序中完成的。(1)DS、ES、SS 的裝入

由于段寄存器不能用立即數尋址方式直接傳送,所以段地址裝入可通過通用寄存器傳送給段寄存器。MOV AX,邏輯段名 MOV 段寄存器,AX 其中邏輯段名為程序中定義各邏輯段的名字,(不包括代碼段),段寄存器是指與各邏輯段相對應的各段寄存器(DS、ES、SS)。(2)CS 的裝入

代碼段寄存器是裝當前執行目標代碼的段地址,IP 是提供下一條要執行的目標代碼的偏移量,為了保證程序的正確執行,CS 和 IP 裝入新值時是一起完成的。對 CS 和 IP 的裝入有如下幾種情況:

①根據用戶程序中的偽指令 END 后的標號為 CS 和 IP 提供代碼段的段地址和目標代碼的偏移地址。

②在程序運行過程中,當執行某些指令和操作時,CPU 自動修改 CS 和 IP 的值,使它們指向新的代碼段。)程序中的數據與變量

在匯編源程序中的數據除了立即數,由指令產生的數和通過鍵盤輸入的數以外,還胡大量的數據是通過偽指令語句進行預置和分配的,也就是在某邏輯段中(除代碼段),將所需的數據以某種形式存放起來,在程序中可任意調用。在數據定義的同時還可以定義變量,將變量與數據結合在一起。可以為某個變量分配存儲空間以便在程序執行過程中存放中間結果和最終結果,使用起來極為方便。

(1)變量與數據的定義

變量與數據的定義可以通過符號定義偽指令 EQU、=和數據定義偽指令 DB 或 DW 或 DD 來實現。EQU 和=可以出現在程序的邏輯段內也可出現在邏輯段外。

(2)匯編程序中數據的提供方法 ①用數據定義偽指令提供數據

如果程序要求原始數據為一批數據時,用數據定義偽指令 DB、DW 和 DD 來提供較為方便。②用立即數的形式提供數據

當原始數據只有幾個時,一般用立即數的方法來提供。當然,用立即數的方法只是將一個數據傳送到通用寄存器中,它只是通過通用寄存器傳送數據。③用編程的方法提供數據

假如原始數據是一組有規律的數據項,則用編程序的方法形成這一組數據,不用專門為這組數據分配存儲單元,節省了存儲空間。④用鍵盤提供數據

當原始數據為任意數據時,一般用鍵盤輸入方法,調用 DOS 21H 中斷。

(3)數據的輸出方式 ①在顯示器上顯示一個字符

調用 02H 號功能調用號,發 21H 號中斷,將要顯示的字符的 ASCII 碼送入 DL,就可在顯示器上顯示該字符。②在打印機上輸出一個字符

調用 05H 號功能調用號,發 21H 號中斷,將要打印字符的 ASCII 碼送入 DL,就可在打印機上打印出 DL 中的字符。

4)返回 DOS 狀態的方法

當執行.EXE 文件時,是在 DOS 狀態下進行的,如果希望在執行完.EXE 文件后正常返回 DOS 狀態,一般用如下兩種方法:采用 DOS 4CH 功能調用和采用返回(RET)斷點的方法。

匯編處理 — 執行宏匯編程序 MASM.EXE

用匯編語言編寫的源程序必須是一個完整的源程序。宏匯編程序對匯編語言源程序的匯編過程包括語法檢查和數據代碼匯編兩部分,生成目標程序和輔助信息文件。為了完成匯編任務,匯編程序一般采用兩遍掃描的方法,第一遍掃描源程序產生符號表、處理偽指令等,第二遍掃描產生機器指令代碼、確定數據等。源程序用宏匯編程序翻譯(匯編)后,可以得到三個文件:一個是擴展名為.OBJ 的目標文件,在該文件中,將源程序的操作碼部分變為機器碼,但地址操作數是可浮動的相對地址,而不是實際地址,因此需經 LINK 連接文件進行連接才能形成可執行文件。第二個文件是列表文件,擴展名為.LST,它把源程序和目標程序列表,以供檢查程序用。第三個文件是交叉索引文件,擴展名為.CRF,它是一個對源程序所用的各種符號進行前后對照的文件。其中目標文件是必須產生的,而其它兩個文件在需要時給予命令就可產生,對連接和執行匯編程序無直接的關系。)匯編操作過程

在 DOS 狀態下,鍵入 MASM ↓則調入宏匯編程序,屏幕顯示與操作如下: masm ↓ Microsoft(R)Macro Assemble Version 5.00 Copyright(C)Microsoft Corp 1981-1985,1987,All right reserved.Source filename [.ASM ]: MYFILE ↓ Object filename [MYFILE.OBJ ]: MYFILE ↓ Source listing [NUL.LST ]: MYFILE ↓ Cross-reference [NUL.CRF]: MYFILE ↓ 50678 + 410090 Bytes symbol space free 0 Warning Errors 0 Severe Errors 其中劃線部分為用戶鍵入部分,MYFILE 為源程序名(MYFILE.ASM),方括號中是機器規定的默認文件名,如果用戶認為方括號內的文件名就是要鍵入的文件名,則可只在劃線部分鍵入回車符。如果不想要列表文件和交叉索引文件,則可在 [NUL.LST ] 和 [NUL.CRF] 后不鍵入文件名只鍵入回車符。

當回答完上述四個詢問后,匯編程序就對源程序進行匯編。在匯編過程中,如果發現源程序中有語法錯誤,則提示出錯信息,指出是什么性質的錯誤,錯誤類型,最后列出錯誤的總數。之后可重新進入屏幕編輯狀態,調入源程序(MYFILE.ASM)進行修改,修改完畢,再進行匯編,直到匯編通過為止。

如果在匯編時不需要產生列表文件(.LST)和交叉索引文件(.CRF),調用匯編程序時可用分號結束。如果需要產生.OBJ 和.LST 文件,不需要.CRF 文件,則在分號前面加兩個逗號即可。如果 4 個文件都需要,用簡便的操作方法是在分號前用了 3 個逗號。)列表文件(.LST)

列表文件(.LST)是通過匯編程序(MASM)產生的,可以在 DOS 狀態下用 TYPE 命令顯示或打印該文件,以便分析調試源程序。如顯示 D 盤上已存在的列表文件 MYFILE.LST 操作方法如下: D> TYPE MYFILE.LST ;↓ 列表程序由三部分組成:(1)源程序和目標程序清單

列表程序同時列出源程序和對應的機器語言清單。列表程序的第一列給出每條指令所在行號;第二列給出從段的首地址開始的每條指令存放的偏移地址;接著是數字列,給出對應每條語句的機器碼和對應于存放在棧段和數據段的值,在機器碼加上“ R ”的指令表示:這條指令在連接時可能產生與列出來的偏移地址不同的地址,因為這些偏移地址可能與其它模塊有關;最右邊就是用匯編語言編寫的源程序。(2)段信息匯總表

在段信息匯總表中列出該程序用了哪幾個段,如:代碼段 CODE、數據段 DATA 和堆棧段 STACK ;每個段所占存儲空間的長度(字節數);每個段的定位類型,包括 PAGE(頁)、PARA(節)、WORD(字)和 BYTE(字節),它們表示此段的起始邊界要求,即起始邊界地址應分別可以被 256、16、2 和 1 除盡。該列表清單 中是以 PARA 為 CODE 段、DATA 段和 STACK 段的起始邊界地址。最后一列為段的組合類型;段的組合類型是告訴連接程序,本段與其它段的關系,組合類型有 NONE、PUBLIC、COMMOM、AT 表達式、STACK 和 MEMORY。NONE :表示本段與其它段不發生邏輯關系,即每段都有自己的基本地址。是隱含組合類型。

STACK :表明連接程序首先要把本段與同名同類別的其它段相鄰地連接在一起,然后為所有定義為棧段的連接在一起的段,定義一個共同的段基地址,即連接成一個物理段。

在列表程序的源程序中只有一個棧段,在棧段定義中給出了組合類型為 STACK,因此在段信息匯總表中列出了該項,在本程序中它沒有任何意義,因為沒有其它棧段與它連接,只是為了說明這個問題而設置的。(3)符號匯總表

在列表程序中最后部分列出了符號匯總,是指在源程序中用戶定義的符號名、類型、值和所在段。

如果在源程序中存在某些語法錯誤時,列表文件可提示某條語句有哪些錯誤,出錯提示顯示在出錯指令行的下面,因此用戶可借助列表文件很快地找到錯誤行,以便調試。另外由于列表文件給出了各條指令的偏移地址,對和程序時設置斷點很方便。)交叉索引文件(.CRF)

匯編后產生的交叉索引文件,擴展名為.CRF, 它列出了源程序中定義的符號(包括:標號、變量等)和程序中引用這些符號的情況。如果要查看這個符號表,必須使用 CREF.EXE 的文件,它根據.CRF 文件建立一個擴展名為.REF 的文件,而后再用 DOS 的 TYPE 命令顯示,就可以看到這個符號使用情況表。具體操作方法如下: D> CREF ↓

cref filename [.CRF] : MYFILE ↓ list filename [MYFILE.REF] : ↓ D> TYPE MYFILE.REF ↓

目標代碼鏈接程序----LINK.EXE

用匯編語言編寫的源程序經過匯編程序(MASM)匯編后產生了目標程序(.OBJ),該文件是將源程序操作碼部分變成了機器碼,但地址是可浮動的相對地址(邏輯地址),因此必須經過連接程序 LINK 連接后才能運行。連接程序 LINK 是把一個或多個獨立的目標程序模塊裝配成一個可重定位的可執行文件,擴展名為.EXE 文件。此外還可以產生一個內存映象文件,擴展名為.MAP。1)連接程序執行過程

在 DOS 狀態下,鍵入 LINK ↓(或 LINK MYFILE ↓)則系統調入 LINK 程序,屏幕顯示操作如下: D> LINK ↓

IBM Personal Computer Linker Version 2.00(C)Copyright IBM Corp 1981,1982,1983 Object Modules [.OBJ] : MYFILE ↓ Run File [MYFILE.EXE] : MYFILE ↓ List File [NUL.MAP] : MYFILE ↓ Libraries [.LIB] : ↓

其中劃線部分為用戶鍵入部分,MYFILE 為源程序名,方括號內為機器默認文件名,當用戶認為方括號中的文件名就是要鍵入的文件名時,可在冒號后面只鍵入回車。

其中 MAP 文件是否需要建立,由用戶決定,需要則鍵入文件名,不需要則直接送入一個回車鍵。

最后一個詢問是問是否在連接時用到庫文件,對于連接匯編語言源程序的目標文件,通常是不需要的,因此直接鍵入回車鍵。

與匯編程序一樣,可以在連接時用分號結束后續詢問。例如:

D> LINK MYFILE ;↓

IBM Personal Computer Linker Version 2.00(C)Copyright IBM Corp 1981,1982,1983 連接后只產生 MYFILE.EXE 文件。如果除 MYFILE.EXE 文件外還要產生 MYFILE.MAP 文件,則在分號前加兩個逗號。D> LINK MYFILE,;↓ IBM Personal Computer Linker Version 2.00(C)Copyright IBM Corp 1981,1982,1983 2)內存映象文件(.MAP)

由連接程序 LINK 產生的擴展名為.MAP 文件,它實際上是連接程序的列表文件,它給出了每個段的地址分配情況及長度。

在 DOS 狀態下,用 TYPE 命令顯示打印出來。例如: D> TYPE MYFILE.MAP ↓ Start Stop Length Name Class 00000H 0000FH 0010H DATA 00010H 0004FH 0040H STACK 00050H 0005FH 0010H CODE Origin Group Program entry point at 0005:0000 從中可以看到,源程序 MYFILE 中定義了三個段:數據段(DATA)起始地址為 00000H,終止地址為 0000FH,長度為 0010H 個字節;堆棧段(STACK)起始地址為 00010H,終止地址為 0004FH,長度為 0040H 個字節;代碼段(CODE)起始地址為 00050H,終止地址為 0005FH,長度為 0010H 個字節。

應用程序執行

當用連接程序 LINK 將目標程序(.OBJ)連接定位后,可產生可執行的應用程序文件(.EXE),可以在 DOS 狀態下執行該程序。執行操作如下: D> MYFILE ↓ 或 D> MYFILE.EXE ↓

在源程序 MYFILE 中如果有顯示結果的指令,則在執行程序后可以看到執行結果;如需要動態調試應用程序 MYFILE.EXE,則可以借助動態調試程序 DEBUG.COM 來進行調試、運行,DEBUG 是一種支持命令行方式的匯編語言編程調試工具。

動態調試程序 DEBUG.COM 在編寫和運行匯編程序的過程中,會遇到一些錯誤和問題,需要對程序進行分析和調試,調試程序 DEBUG 就是專為匯編語言設計的一種調試工具。它在調試匯編語言程序時有很強的功能,能使程序設計者接觸到機器內部,能觀察和修改寄存器和存儲單元內容,并能監視目標程序的執行情況,使用戶真正接觸到 CPU 內部,與計算機產生最緊密的工作聯系。

動態和程序 DEBUG 的主要特點 DEBUG 的執行 DEBUG 命令格式 主要 DEBUG 命令

動態和程序 DEBUG 的主要特點)能夠在最小環境下運行匯編程序

在 DOS 狀態下運行匯編程序,必須將程序經過 MASM 匯編程序,而后還要經過 LINK 連接程序產生可執行程序,才能最終運行,比較麻煩。在 DEBUG 狀態下,為用戶提供了調試、控制測試的環境,可以在此環境下進行編程、調試、監督、執行用戶編寫的匯編程序。因此調試周期短,為用戶提供了極大的方便。2)提供極簡單的修改手段

DEBUG 提供了修改命令,可以修改內存單元內容,修改寄存器的內容,為調試程序、修改程序帶來了方便。3)提供用戶與計算機內部聯系的窗口

DEBUG 具有顯示命令,它既可以使用戶看到某內存單元或某一塊單元內容,也可以看到 CPU 內部各寄存器的內容。用單步執行命令實現跟蹤執行,每執行一步都使用戶看到各寄存器的內容的變化,以便分析和調整程序。4)可裝入、修改或顯示任何文件

當然在 DEBUG 狀態下運行匯編程序也具有一定局限性。在 DEBUG 狀態下運行的程序不能使用宏匯編程序中的宏指令,大部分偽指令也不能使用,因此只能把程序分段調試。此外,不能調試太長的程序,只能分塊進行中程序設計。在 DEBUG 狀態下調試好的程序不能形成可執行文件(.EXE),因此調試好的程序只能記下,到編輯環境下重新鍵入調試好的程序,通過匯編程序(如 MASM),再通過連接程序(LINK)形成可執行文件(.EXE)。

DEBUG 的執行

在操作系統(DOS 或 WIndows)命令行方式下,直接調入 DEBUG 程序,鍵入命令的格式如下: D>DEBUG [d:][Path][filename[.ext]][Parm1][Parm2] 其中 [] 的內容為可選項,可以有也可以缺省。

[d:] 為驅動器號,指要調入 DEBUG 狀態的可執行文件在哪個驅動器中,如 A:、B:、C: 等。[Path] 為路徑,指要調入 DEBUG 狀態的可執行文件是在哪個目錄下或子目錄下。

[filename[.ext]],指要調入 DEBUG 狀態下的可執行文件的文件名,該文件可以是通過編輯、匯編、連接后產生的可執行文件,也可以是在 DEBUG 狀態下匯編的程序 段,通過寫盤命令 W 寫入磁盤的文件。[Parm1][Parm2] 為任選參數,是給定文件的說明參數。

在啟動 DEBUG 時,如果輸入 filename(文件名),則 DEBUG 程序把指定文件裝入內存,用戶可以通過 DEBUG 的命令對指定文件進行修改、顯示或執行。如果沒有文件名,則是以當前內存的內容工作,或者用命名命令或裝入命令把需要的文件裝入內存,然后再通過 DEBUG 命令進行修改、顯示或執行。當啟動 DEBUG 程序后,屏幕上出現“—”,說明系統已進入 DEBUG 狀態。DEBUG 命令格式(1)DEBUG 命令都是一個英文字母,后面跟著一個或多個有關參數。多個操作參數之間用“ , ”或空格隔開。(2)DEBUG 命令必須接著按 ENTER 鍵,命令才有效。

(3)參數中不論是地址還是數據,均用十六進制數表示,但十六進制數據后面不要用“ H ”。(4)可以用 Ctrl 和 Break 鍵來停止一個命令的執行,返回到 DEBUG 的提示符“—”下。(5)用 Ctrl - Num Lock 鍵中止正在上卷的輸出行,再通過按任意鍵繼續輸出信息。主要 DEBUG 命令

(1)匯編命令 A

格式: a.A [ 段寄存器名 ]:[ 偏移地址 ] b.A [ 段地址 ]:[ 偏移地址 ] c.A [ 偏移地址 ] d.A 功能:用該命令可以將匯編語言程序直接匯編進入內存。

當鍵入 A 命令后,顯示段地址和偏移地址等待用戶鍵入匯編指令,每鍵入一條匯編指令回車后,自動顯示下一條指令的段地址和偏移地址,再鍵入下一條匯編指令,直到匯編語言程序全部鍵入,又顯示下一地址時可直接鍵入回車返回到提示符“-”為止。

其中 a 的段地址在段地址寄存器中,因此在使用該命令時必須將段地址寄存器送入段地址,c 的地址在 CS 中,d 的段地址在 CS 中,偏移地址為 100H。

(2)顯示內存命令 D 格式: a.D [ 地址 ] b.D [ 地址范圍 ] c.D 功能:顯示指定內存范圍的內容。

顯示的內容為兩種形式:一種為十六進制內容,一種為與十六進制相對應的 ASCII 碼字符,對不可見字符以“·”代替。

對于 a、c 每次顯示 128 個字節內容,b 顯示的字節數由地址范圍來決定。

若命令中有地址,則顯示的內容從指定地址開始,若中中無地址(如 c)則從上一個 D 命令所顯示的最后一個單元的下一個單元開始。若以前沒有使用過 D 命令,則以 DEBUG 初始化的段寄存器的內容為起始段地址,起始偏移地址為 100H,即 CS:100。

對于 a 中的地址為偏移地址,段地址為 CS 的內容,對 b 中的地址范圍,可以指定段地址和起始偏移地址和終止偏移地址。

(3)修改存儲單元內容命令 E 格式: a · E [ 地址 ] [ 內容表 ] b · E [ 地址 ] 功能: a ·用命令所給定的內容表去代替指定地址范圍的內存單元內容。b ·一個單元一個單元地連續修改單元內容。

其中:內容表為一個十六進制數,也可以是用單引號括起的一串字符。

(4)填充內存命令 F

格式: F [ 范圍 ][ 單元內容表 ] 功能:將單元內容表中的內容重復裝入內存的指定范圍內。

(5)內存搬家命令 M

格式: M [ 源地址范圍 ][ 目標起始地址 ] 其中源地址范圍和目的起始地址為偏移地址,段地址為 DS 的內容。功能:把源地址范圍的內容搬至以目標起始地址開始的存儲單元中。

(6)比較命令 C

格式: C [ 源地址范圍 ],[ 目標地址 ] 其中源地址范圍是由起始地址和終止地址指出的一片連續的存儲單元,目標地址為與源地址所指單元對比的目標地址起始地址。功能:從源地址范圍是由起始的地址單元開始逐個與目標起始地址往后的單元順序比較每個單元內容,比較到源終止地址為止。比較結果如果一致則不顯示任何信息,如果不一致,則以 [ 源地址 ][ 源內容 ][ 目的內容 ][ 目的地址 ] 的形式顯示失敗單元地址及內容。

(7)搜索指定內容命令 S 格式: S [ 地址范圍 ][ 表 ] 功能:在指定地址范圍內搜索表中內容,搜索到就顯示表中元素所在地址。

(8)檢查和修改寄存器內容命令 R 格式: a · R b · R [ 寄存器名 ] 功能: a ·顯示 CPU 內部所有寄存器的內容和全部標志位的狀態。b ·顯示和修改一個指定寄定器的內容和標志位的狀態。

其中對狀態標志寄存器 FLAG 以位的形式顯示,顯示時,8 個狀態標志的顯示次序和符號如表 B - 1 所示。表 B - 1 狀態標志顯示形式

標 志 位 溢出標志 OF 方向標志 DF 中斷標志 IF 符號標志 SF 零標志 ZF 輔助進位 AF 奇偶標志 PF 進位標志 CF

(9)跟蹤與顯示命令 T

格式: a · T[ =地址 ] 或 T [ 地址 ] b · T[ =地址 ][ 條數 ] 或 T [ 地址 ][ 條數 ] 功能: a ·執行一條指定地址處的指令,停下來,顯示 CPU 所有寄存器內容和全部標志位的狀態,以及下一條指令的地址和內容。

b ·為多條跟蹤命令,從指定地址開始;若命令中用 [ 地址 ] 給定了起始地址,則從起始地址開始,若未給定,則從當前地址(CS:IP)開始,執行命令中的 [ 條數 ] 決定一共跟蹤幾條指令后返回 DEBUG 狀態。

(10)反匯編命令 U 格式: a · U [ 地址 ] b · U [ 地址范圍 ] 功能:將指定范圍內的代碼以匯編 語言形式顯示,同時顯示該代碼位于內存的地址和機器。

若在命令中沒有指定地址則以上一個 U 命令的最后一條指令地址的下一個單元作為起始地址;若沒有輸入過 U 命令,則以 DEBUG 初始化段寄存器的值作為段地址,以 0100H 作為偏移地址。

(11)命名命令 N 格式: N 文件名

功能:在調用 DEBUG 時,沒有文件名,則需要用 N 命令將要調用的文件名格式化到 CS:5CH 的文件控制塊中,才能用 L 命令把它調入內存進行調試(其它形式參考 DOS 手冊)。

(12)讀盤命令 L

格式: a · L [ 地址 ][ 驅動器號 ][ 起始扇區號 ][ 所讀扇區個數 ] b · L [ 地址 ] c · L 功能: a ·把指定驅動器和指定扇區范圍的內容讀到內存的指定區域中。其中地址是讀入內存的起始地址,當輸入時沒有給定地址,則隱含地址為 CS:100H。起始扇區號指邏輯扇區號的起始位置。所讀扇區個數是指從起始扇區號開始讀到內存幾個扇區的內容。驅動器號為 0 或 1,0 表示 A 盤,1 表示 B 盤。

b ·讀入已在 CS:5CH 中格式化的文件控制塊所指定的文件。在使用該命令前用 N 命令命名即可將要讀入的文件名格式化到 CS:5CH 的文件控制塊中,其中地址為內存地址。

狀 態 有 / 無 增 / 減 開 / 關 負 / 正 零 / 非 有 / 無 偶 / 奇 有 / 無

顯示形式(置位 / 復位)

OV/NV DN/UP EI/DI NG/PL ZR/NZ AC/NA PE/PO CY/NC c ·同 b ·地址隱含在 CS : 100H 中。

當讀入的文件有擴展名.COM 或.EXE,則始終裝入 CS:100H 中,命令中指定了地址也沒用。其中 BX 和 CX 中存放所讀文件的字節數。

(13)寫盤命令 W

格式: a · W[ 地址 ][ 驅動器號 ][ 起始扇區號 ][ 所寫扇區個數 ] b · W[ 地址 ] c · W 功能: a · 把在 DEBUGU 狀態下調試的程序或數據寫入指定的驅動器中 , 起始扇區號 , 所寫扇區個數為要占盤中幾個扇區。

寫盤指定扇區的操作應十分小心,如有差錯將會破壞盤上的原有內容。如果在命令行中的地址只包含偏移地址,W 命令認為段地址在 CS 中。

b ·當鍵入不帶參數的寫盤命令時,(或只鍵入地址參數的寫盤命令),寫盤命令把文件寫到軟盤上。該文件在用 W 命令之前用命名命令 N 將文件格式化在 CS:5CH 的文件控制塊中。c ·只有 W 命令以前而沒有任何參數時,與 N 配合使用進行寫盤操作。在用 W 命令以前在 BX 和 CX 中應寫入文件的字節數。

(15)輸出命令 O

格式: O[ 端口地址 ] [ 字節值 ] 功能:向指定端口地址輸出一個字節。

(16)運行命令 G

格式: G [ =地址 ][ 地址 [ 地址… ]] 功能:執行用戶正在調試的程序。

其中地址為執行的起始地址,以 CS 中內容作為段地址,以等號后面的地址為偏移地址。再后面的地址為斷點地址。在命令行中只有起始地址,沒有斷點地址,則程序在執行時不中斷。DEBUG 規定最多設置 10 個斷點地址。設置多個斷點用于調試較大的程序,即程序中有多個模塊、多個通路時用,比較方便,在執行時不論走哪條通路,程序都可以在斷點處停下來,以便調整程序。

斷點地址為程序中斷處的偏移地址,段地址在 CS 中。

當執行在 DEBUG 狀態下匯編的小段程序時,只用 G 命令即可。

(17)十六進制運算命令 H 格式: H 數據 1 數據 2 其中數據 1 和數據 2 為十六進制數據。

功能:將兩個十六進制數進行相加、減,結果顯示在屏幕上。(18)結束 DEBUG 返回到 DOS 命令 Q 格式: Q 功能:程序調試完退出 DEBUG 狀態,返回到 DOS 狀態下。

Q 命令不能把內存的文件存盤,要想存盤必須在退出 DEBUG 之前用 W 命令寫盤

讀書的好處

1、行萬里路,讀萬卷書。

2、書山有路勤為徑,學海無涯苦作舟。

3、讀書破萬卷,下筆如有神。

4、我所學到的任何有價值的知識都是由自學中得來的。——達爾文

5、少壯不努力,老大徒悲傷。

6、黑發不知勤學早,白首方悔讀書遲。——顏真卿

7、寶劍鋒從磨礪出,梅花香自苦寒來。

8、讀書要三到:心到、眼到、口到

9、玉不琢、不成器,人不學、不知義。

10、一日無書,百事荒廢。——陳壽

11、書是人類進步的階梯。

12、一日不讀口生,一日不寫手生。

13、我撲在書上,就像饑餓的人撲在面包上。——高爾基

14、書到用時方恨少、事非經過不知難。——陸游

15、讀一本好書,就如同和一個高尚的人在交談——歌德

16、讀一切好書,就是和許多高尚的人談話。——笛卡兒

17、學習永遠不晚。——高爾基

18、少而好學,如日出之陽;壯而好學,如日中之光;志而好學,如炳燭之光。——劉向

19、學而不思則惘,思而不學則殆。——孔子

20、讀書給人以快樂、給人以光彩、給人以才干。——培根

第二篇:5編寫一個C語言程序

前面幾節介紹了常量和變量、運算符、表達式和語句的概念,對它們的使用有了一個大概的了解。也許剛學程序的人會覺得有些枯燥,下面我們就來編寫第一個C語言程序。

#define PI 3.1416 main(){ float Radius,Area;scanf(%f,&Radius);/*輸入半徑的值*/ Area=PI*Radius*Radius;printf(%fn,Area);/*輸出圓的面積*/ }

1.一個C語言程序,通常由帶有#號的編譯預處理語句開始。關于預處理我們在以后介紹,這里的#define PI 3.1415926相當于PI代表3.1416,下面在程序中遇到PI,我們就用3.1416替代一下。在以后的程序中,在學習預處理之前,我們都將不使用預處理語句。

2.main()任何一個完整的程序都需要main(),這是一個函數,具體什么是函數,以后再講,這兒你就要記住就行。后面有一對{}把所有的語句都括在里面,表明那些語句都屬于main()里面。程序運行時從這個左大括號開始。

3.{}里面的4行語句大家應該都能明白,先定義兩個變量,一個代表半徑,一個代表面積,然后輸入半徑的值,然后求面積,最后在屏幕上輸出面積。程序到main()的那對{}的右大括號結束。求面積的語句Area=PI*Radius*Radius;相當于Area=3.1416*Radius*Radius;(完全用3.1416替代PI)。

具體程序從編寫到運行得到結果的步驟為: 1.雙擊tc.exe,進入Turbo C 2.0編譯界面 2.ALT+E 進入編輯模式 3.書寫程序

4.F2 存儲程序(也可進入File菜單,選擇save),第一次存儲需要寫上程序名稱(*.C),回車

5.ALT+F9 編譯,如果有錯誤和警告,光標停留在錯誤行,回車進行修改,修改后,回到4;沒有錯,下一步 6.CTRL+F9 連接和運行程序

7.用ALT+F5查看程序運行結果,任意鍵返回程序

如何打開一個已有的C文件:

1.雙擊tc.exe,進入Turbo C 2.0編譯界面

2.F3 進入load狀態,找到所要打開文件的目錄,找到文件,回車;后面都一樣。具體的有哪些快捷鍵及其它們的作用,請查看第一節概述。

說明:

1.必須在程序的最開始部分定義所有用到的變量,例如這里的Area,Radius。2.變量的命名要盡量有意義,如用代表該意思的英文單詞、或者是漢語拼音,例如這里的Radius,Area,絕對禁止用毫無干系的字母,如a,b,c。例如下面的程序,雖然意思和上面的一樣,但是看上去意思不明朗,時間長了,很可能忘記程序本身的意思。對于僅僅是控制程序運行,不代表實際意思時,可以用一些簡單字母。main(){ float a,b;scanf(%f,&a);b=3.1416*a*a;printf(%fn,b);} 3.采用層次書寫程序的格式,要有合理的縮進,必要的時候要有空行,一行只書寫一個語句。所有語句盡量不分行,除非太長(分行時變量、運算符,格式字符等等不能拆開),例如下面兩個程序看起來就不好看了,雖然它們的功能和前面是一樣的。main(){float Radius,Area;scanf(%f,&Radius);Area=3.1416*Radius*Radius;printf(%fn,Area);}

main(){ float Radius,Area;scanf(%f, %Radius);Area=3.1416*Radius *Radius;printf(%fn, Area);} 4.程序在適當的地方要用/*……*/注釋,它的意思表示在/* */里面的所有字符都不參加編譯。因為一個較大的程序,經過一段時間,有些地方可能連編程者都忘記了,增加注釋可以幫助恢復記憶,調試程序時,也容易找出錯誤。注釋也可以分行寫。5.在書寫{}時要對齊。雖然不對應也不影響程序運行,但對齊后方便以后檢查程序,也是為了美觀,特別是后面學到流程控制時,{}一定要對齊。

程序設計方法:

1.從問題的全局出發,寫出一個概括性的抽象的描述。

2.定義變量,選取函數,確定算法。算法這個東西不好說,遇到的問題多了,自然就會形成自己一整套的算法。

3.按照解決問題的順序把語句和函數在main()里面堆砌起來。一個好的C程序員應該做到: 1.在運行程序之前存盤

2.所有在程序中用到的常量都用預處理語句在程序開頭定義 3.所有在程序中用到的函數都在程序開頭聲明 4.頭文件的#ifndef 5.變量名和函數名使用有意思的英文單詞或漢語拼音 6.盡量少用全局變量或不用全局變量

7.采用層次的書寫程序格式,對for,while,if_else,do_while,switch_case等控制語句或他們的多重嵌套,采用縮格結構 8.所有對應的{}都對齊

9.盡量用for,而不用while做記數循環 10.盡量不用goto語句

11.一個函數不宜處理太多的功能,保持函數的小型化,功能單一化 12.一個函數要保持自己的獨立性,如同黑匣子一樣,單進單出 13.函數的返回類型不要省略

14.用malloc()分配內存空間時,以后一定要用free()釋放 15.打開文件后,記住在退出程序前要關閉 16.出錯情況的處理 17.寫上必要的注釋

這里說的是一些基本的,經常遇到的情況,還有其他很多要注意的地方,在實際編程中都會遇到.

第三篇:用VHDL語言編寫的數字鐘程序

永州職業技術學院

課 程 設 計

課程名稱: EDA技術實用教程 題 目:基于FPGA的數字鐘設計 系、專業: 電子技術系應用電子 年級、班級: 07級電子大專 學生姓名: 馮 苗 指導老師: 龍 安 國 時 間: 2008年12月

目 錄

一、系統設計………………………………………………………..1.1設計要求…………………………………………………… 1.1.1任務………………………………………………..1.1.2要求……………………………………………….1.1.3題目分析………………………………………… 二.方案論證與比較…………………………………

2.1方案一 …………………………………………

2.2 方案二 ………………………………………… 2.3 方案三 …………………………………………

三、設計思路……………………………………………………

3.1硬件模塊……………………………………………… 3.2軟件模塊………………………………………………….四、調試情況………………………………………………….五、系統調試…………………………………………………

六、心得體會……………………………………………………...附:參考文獻……………………………………………………..用VHDL語言編寫的數字鐘程序

摘要:本設計要求一個12進制或24進制的具有時、分、秒計時功能的數字鐘,并要求能進行時、分、秒調整,每逢時有報時功能。數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。本設計基于FPGA芯片的數字鐘的設計,通過多功能數字鐘的設計思路,詳細敘述了整個系統的硬件、軟件實現過程,實現了時間的顯示和修改功能、報時功能等,并盡可能的減少誤差,使得系統可以達到實際數字鐘的允許誤差范圍內。

關鍵詞:FBGA、數碼管、按鍵

一、系統設計

1.1 設計要求 1.1.1 任務

設計并制作一個數字鐘,通過設計,掌握電子設計的一般思路,學習電子設計的一般方法。

1.1.2要求

(1)基本要求

①計時功能:這是數字鐘的基本功能,每隔一秒鐘計時一次,并在顯示屏上顯示當前時間。

②校時功能:能設置實時時間作為數字鐘的當前時間,具有小時、分鐘的手動校準時間功能。

(2)發揮部分

①計時進制的選擇功能:十二小時制或二十四小時制可選擇控制; ②整點報警功能:每逢整點自動報警; ③其他創新功能。二.方案論證與比較

2.1、方案一:采用74LS163和CD4046設計數字鐘

圖1.1.1 方案一電路圖

晶體振蕩器電路給數字鐘提供一個頻率穩定準確的32768Hz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。由CD4046組成的分頻器電路將32768Hz的高頻方波信號經32768(2次分頻后得到2Hz的方波信號經過D觸發器二分頻得到秒信號供秒計數器進行計數。分頻器實際上也就是計數器。時間計數電路由秒個位和秒十位計數器、分個位和分十位計數器及時個位和時十位計數器電路構成,其中秒個位和秒十位計數器、分個位和分十位計數器為60進制計數器,而根據設計要求,時個位和時十位計數器為12進制計數器。時間計數器由74LS163組成.譯碼驅動電路將計數器輸出的8421BCD碼轉換為數碼管需要的邏輯狀態,并且為保證數碼管正常工作提供足夠的工作電流。數碼管通常有發光二極管(LED)數碼管和液晶(LCD)數碼管,本設計提供的為LED數碼管。

14)

2、方案二:采用AT89C52單片機、數碼管設計數字鐘

圖1.1.2 方案二電路圖

本方案采用AT89C52單片機,單片機的P1口接數碼管顯示電路,P0口接鍵控制數碼管的顯示,P2.0口接入整點報時電路,RESET接入復位和晶振電路。該電路能否成功,關鍵在于程序的編寫而對元器件的要求不太高。用匯編編寫得數字鐘電路,采用分支結構編寫,利用跳轉指令與大量的中斷指令.當沒有按鍵掃描沒有按鍵按下時,程序正常計數,當檢測到有鍵按下時,程序運轉到相應中斷程序進行響應處理.從而實現了分支程序的處理.方案三:采用FPGA制成的數字鐘

圖1.1.3 方案三電路圖

市電經過降壓電路為FPGA芯片提供3.3V的直流電壓,12MHZ的晶振信號加入到FPGA芯片的內定義PORT,切換鍵、調時鍵,輸出的8個四位的BCD碼,經過數據選擇器使得某一位信號的BCD碼被選中,被選中的信號經過3/8譯碼電路,送到數碼管的進行段碼顯示.而數碼管的位選端也有內部軟件編程實現位選.而由時、分,信號為蜂鳴器提供鬧鐘信號.并口端為程序輸入端.三.設計思路

3.1硬件模塊

采用ALTER公司的ACE×1K系列的EP1K10TC100-3芯片,通過Quartus軟件編譯各個管腳的功能及特性.接入12MHZ時鐘信號,經過內部軟件分頻.得到1HZ和1000HZ信號,得到的1HZ時鐘信號作為內部秒個位計數模塊的時鐘信號,秒個位進行十進制計數,到9進位,為秒十位提供6進制時鐘信號,當秒為59時,為分鐘提供時鐘信號.當秒進位信號作為低位十進制分計數器時鐘.分鐘計數器為59時,為小時計數器的個位提供時鐘信號,當小時計數器、分鐘計數器輸出信號與鬧鐘預設信號一樣時,揚聲器發聲.輸出信號經過數據選擇器選擇1位BCD碼輸出到譯碼電路,譯碼后送到數碼管顯示.位選擇信號為數碼管顯示提供條件.而分頻得到的1KHZ的時鐘頻率作為位選計數器的時鐘信號.由于該方案簡單而且可靠性高,故采用此種方案.該數字鐘可以實現3個功能:計時功能、整點報時功能和重置時間功能,因此有3個子模塊:計時、報時(alarm1)、重置時間(s1、m1、h1、d1)。其中計時模塊有4部分構成:秒計時器(second1)、分計時器(minute1)、時計時器(hour1)和星期計時器(day1)。

該數字鐘可以實現3個功能:計時功能、整點報時功能和重置時間功能,因此有3個子模塊:計時、報時(alarm1)、重置時間(s1、m1、h1、d1)。其中計時模塊有4部分構成:秒計時器(second1)、分計時器(minute1)、時計時器(hour1)和星期計時器(day1)。

3.2軟件模塊 1)、分頻器模塊

其實是一個計數器,外加信號頻率為12MHZ時,在內部定義了一個信號從0到11999999的整數型計數信號count1,當內部信號計數為11999999時,count1計數為0,產生進位信號CLK1為1,其余時間計數器正常計數.CLK為0,從而實現了12000000次分頻.得到1HZ的時鐘信號.內部定義了一個從0到11999的整數性信號countf,當內部信號計數為11999時,countf計數為0,產生進位信號CLK1為1,其余時間計數器正常計數.CLK為0,從而實現了12000次分頻.得到1KHZ的時鐘信號的位選信號.2)、秒計數模塊

內部定義時鐘其余時刻均為為秒計時器(second1)是由一個60進制的計數器構成的,具有清0、置數和計數功能。其中reset為清0信號,當reset為0時,秒計時器清0;set 為置數信號,當set為0時,秒計時器置數,置s1的值。clk為驅動秒計時器的時鐘,sec為秒計時器的輸出,ensec為秒計時器的進位信號,作為下一級的時鐘輸入信號。

3)、分計時器(minute1)是由一個60進制的計數器構成的,具有清0、置數和計數功能。其中reset為清0信號,當reset為0時,分計時器清0;set 為置數信號,當set為0時,分計時器置數,置m1的值。clkm為驅動分計時器工作的時鐘,與ensec相連接;min為分計時器的輸出;enmin為分計時器的進位信號,作為下一級的時鐘輸入信號。4)、時計時器(hour1)模塊

是由一個24進制的計數器構成的,具有清0、置數和計數功能。其中reset為清0信號,當reset為0時,時計時器清0;set 為置數信號,當set為0時,時計時器置數,置h1的值。clkh為驅動時計時器工作的時鐘,與enmin相連接;hour為時計時器的輸出;enhour為時計時器的進位信號,作為下一級的時鐘輸入信號。

圖7

5)、報時模塊(alarm1)的功能是當整點(將min作為該模塊的輸入信號,min=00)時,alarm輸出高電平,并且持續1分鐘。清0端(reset)前面一小段(200ns)為低電平,后面均為高電平;設置min的值,使其分別為……58分、59分、00分、01分、02分、03分……,保存波形圖,進行仿真,產生如下波形: 7

見由上述波形可以清楚的看到:alarm在0分時輸出高電平,并且持續至1min不為0。

6)、去抖模塊

定義變量fb范圍0到29999,當外部時鐘信號來臨時候,fp計數,只有當FP為29999時,fp賦值為0.內部5ms信號反向輸出.輸出5ms時鐘信號,該信號送到內部的D觸發器中,只有按鍵按下且5ms時鐘信號來臨時,按鍵信號才被送到觸發器.從而實現了去抖.7)、系統總調試(topclock)(Endtime為10us

在秒計時器的clk輸入一個周期為5ns的時鐘信號;清0端(reset)前面一小段(40ns)為低電平,后面均為高電平;置數端(set)前面一小段(60ns)為低電平,后面均為高電平;秒重置端(s1)可設置數值為50秒,分重置端(m1)可設置數值為57分, 時重置端(h1)可設置數值為23時, 星期重置端(d1)可設置數值為6(星期六);保存波形圖,進行仿真,產生如下波形”

圖8

由上述波形可以清楚的看到:當reset為0時,數字鐘清0;當set為1時,數字鐘置數

圖9由上述波形可以清楚的看到:秒計時器開始計時,當到達59秒后,秒計時器sec又從0開始計時,同時分鐘min加了1,為58分。

由上述波形可以清楚的看到:分計時器開始計時,當到達59分后,分計時器min又從0開始計時,同時小時hour加了1,為24時,即時計時器hour也又從0開始計時,而此時星期計時器day也由6加1后回0,又從0開始計時。當分計時器min為0時,alarm輸出一個高電平,持續直到分計時器min的值為1。

圖10

8)、用經過5ms去抖程序后,使得keyout輸出一個脈沖,將此信號作為按鍵代碼計數電路.為每一種按鍵代碼賦已一定功能.從而實現一鍵控制.

程序流程圖如下:

詳細程序見附錄。程序控制過程如下說明:

四、產品調試與結果分析 1)書寫遺漏

錯誤提示在305行和307行附近有一個錯誤,沒有加IF.查看后發現由于自己的疏忽,在結束時,沒有加END IF.將307行中加入一行結束語句,問題解決.2)數碼管顯示時有閃爍

檢查掃描信號時鐘時,發現掃描信號時鐘為100HZ,掃描頻率過低,引起閃爍.檢查分頻部分程序,發現掃描信號頻率設為100HZ,將掃描信號頻率改為1000KHZ.然后發現無閃爍.修改有效.3)數碼管秒個位顯示時無2、8字符

檢查后發現秒個位譯碼部分字符書寫錯誤.將秒個位字符2、8賦值錯誤修改觀察,有顯示.五、心得體會

轉眼一學期就要悄悄走遠,感覺這些天是我學的最多的.通過這次設計,進一步加深了對EDA的了解,讓我對它有了更加濃厚的興趣。特別是當每一個子模塊編寫調試成功時,心里特別的開心。但是在編寫頂層文件的程序時,遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯誤,在細心的檢查下,終于找出了錯誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。在波形仿真時,也遇到了一點困難,想要的結果不能在波形上得到正確的顯示:在設定輸入的時鐘信號后,數字鐘開始計數,但是始終看不到小時、星期的循環計數。后來,在數十次的調試之后,才發現是因為輸入的時鐘信號對于小時、星期來說太短了。經過屢次調試,終于找到了比較合適的輸入數值:分鐘的初始值可以設為57(58、59都可以),小時的初始值可以設為23,星期的初始值可以設為6,這樣,仿真之后,就能清楚的看出分鐘、小時的循環計數。另外,Endtime的值需要設置的長一點:10us左右,輸入的時鐘周期值要設置的短一點:5ns左右。

總的來說,這次設計的數字鐘還是比較成功的,有點小小的成就感,終于覺得平時所學的知識有了實用的價值,達到了理論與實際相結合的目的,不僅學到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認識,同時,對未來有了更多的信心。

附:參考文獻

1、黃仁欣主編《EDA技術實訓教程》,清華大學出版社,2006年第2版。

2、楊志忠主編《數字電子技術》,北京高等教育出版社,2003年12第2版。

3、潘松、黃繼業主編《單片機實訓教程》,科學出版社,2005年5月第2版。

附件程序:

library ieee;use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clock is

port(clk:in std_logic;--12M時鐘

keyin:in std_logic;

speak:out std_logic;--蜂鳴器

dout:out std_logic_vector(7 downto 0);--段碼

selout:out std_logic_vector(2 downto 0));--位選 end clock;architecture one of clock is

signal count:integer range 0 to 11999999;--1HZ秒信號

signal counf:integer range 0 to 11999;--1000HZ

SIGNAL CP_5ms : STD_LOGIC;

SIGNAL Q1,Q2,Q3: STD_LOGIC;

SIGNAL keyout : STD_LOGIC;

SIGNAL CJ:STD_LOGIC_VECTOR(2 DOWNTO 0);

signal sel:std_logic_vector(2 downto 0);--位選

signal hou1:std_logic_vector(3 downto 0);--計數中小時的十位

signal hou2:std_logic_vector(3 downto 0);--小時的個位

signal min1:std_logic_vector(3 downto 0);--分鐘的十位

signal min2:std_logic_vector(3 downto 0);--分鐘的個位

signal sec1:std_logic_vector(3 downto 0);--秒的十位

signal sec2:std_logic_vector(3 downto 0);--秒的個位

signal seth1:std_logic_vector(3 downto 0);--設時中小時的十位

signal seth2:std_logic_vector(3 downto 0);--小時的個位

signal setm1:std_logic_vector(3 downto 0);--分鐘的十位

signal setm2:std_logic_vector(3 downto 0);--分鐘的個位

signal h1:std_logic_vector(3 downto 0);---顯示小時十位

signal h2:std_logic_vector(3 downto 0);---小時的個位

signal m1:std_logic_vector(3 downto 0);--分鐘的十位

signal m2:std_logic_vector(3 downto 0);--分鐘的個位

signal s1:std_logic_vector(3 downto 0);--秒的十位

signal s2:std_logic_vector(3 downto 0);--秒的個位

signal clk1,clkk,beep:std_logic;

begin-----------------分頻 fp:process(clk)

begin

if rising_edge(clk)then

count<=count+1;

counf<=counf+1;

if count=11999999 then clk1<='1';---1Hz

count<=0;

beep<='1';

elsif count>5999999 then beep<='0';---2Hz

else clk1<='0';

end if;

if counf=11999 then clkk<='1';--1000HZ

counf<=0;

else clkk<='0';

end if;

end if;end process fp;---------------位掃描 choice:process(clkk)---位選

掃描

begin

if rising_edge(clkk)then

if sel=“111” then

sel<=“000”;

else

sel<=sel+1;

end if;

end if;end process choice;-------------秒個位 s220:process(clk1,cj)

begin

if clk1'event and clk1='1' then

if sec2=“1001” then

---其中sec2是秒的個位

sec2<=“0000”;

elsif cj=“010” then

sec2<=sec2;

else sec2<=sec2+1;

end if;

end if;if cj=“001” then sec2<=“0000”;---秒個位復位

end if;end process s220;--------------秒十位 s110:process(clk1,cj)

begin

if clk1'event and clk1='1' then

if(sec1=“0101” and sec2=“1001”)then---其中sec1是秒鐘的十位

sec1<=“0000”;

elsif cj=“010” then

sec1<=sec1;

else if sec2=“1001”then

sec1<=sec1+1;

end if;

end if;end if;if cj=“001” then sec1<=“0000”;---秒十位復位

end if;end process s110;---------------分鐘個位 m220:process(clk1,sec1,sec2,cj)

begin

if clk1'event and clk1='1' then

if min2=“1001”and(sec1=“0101” and sec2=“1001”)then----其中min2是分鐘的個位

min2<=“0000”;

elsif min2=“1001”and(cj=“011” and cj=“100”)then---

min2<=“0000”;

else if(sec1=“0101” and sec2=“1001”)or(cj=“011” and cj=“100”)then

min2<=min2+1;

end if;

end if;end if;if cj=“001” then min2<=“0000”;

end if;

end process m220;----------------分鐘十位 m110:process(clk1,min2,sec1,sec2,cj)

begin

if clk1'event and clk1='1' then

if(min1=“0101” and min2=“1001”)and(sec1=“0101” and sec2=“1001”)then

min1<=“0000”;

elsif min1=“0101”and min2=“1001”and(cj=“011” and cj=100)then

min1<=“0000”;

elsif(min2=“1001”and(sec1=“0101” and sec2=“1001”))or(min2=“1001”and cj=“011” and cj=“100”)then

min1<=min1+1;

end if;

end if;--end if;if cj=“001” then min1<=“0000”;

end if;end process m110;----------------小時個位

h220:process(clk1,min1,min2,sec1,sec2,cj,hou1)

begin

if clk1'event and clk1='1' then

if(hou1=“0010” and hou2=“0011”)and(min1=“0101” and min2=“1001”)and(sec1=“0101” and sec2=“1001”)then

hou2<=“0000”;

elsif hou2=“1001”and(min1=“0101” and min2=“1001”)and(sec1=“0101” and sec2=“1001”)then

hou2<=“0000”;

elsif(hou2=“1001”and cj=“110”)or(hou1=“0010”and hou2=“0011”and cj=“110”)then

hou2<=“0000”;--md<='1';

elsif((min1=“0101” and min2=“1001”)and(sec1=“0101” and sec2=“1001”))or(cj=“110”)then

hou2<=hou2+1;--speak<=clk;

end if;

end if;if cj=“001” then hou2<=“0000”;

end if;end process h220;----------------小時十位 h110:process(clk1,hou2,min1,min2,sec1,sec2,cj)

begin

if clk1'event and clk1='1' then

if(hou1=“0010” and hou2=“0011”)and(min1=“0101” and min2=“1001”)and(sec1=“0101” and sec2=“1001”)then

hou1<=“0000”;

elsif hou1=“0010”and hou2=“0011”and cj=“110” then--當時間為23點且處于校時狀態時

hou1<=“0000”;

elsif(hou2=“1001”and(min1=“0101” and min2=“1001”)and(sec1=“0101” and sec2=“1001”))or(hou2=“1001”and cj=“110”)then

hou1<=hou1+1;

end if;

end if;if cj=“001” then hou1<=“0000”;

end if;end process h110;------------時間設置小時部分 sethour1:process(clk1,seth1,seth2,cj)

begin

if clk1'event and clk1='1' then

if seth1=“0010”and seth2=“0011” then

seth1<=“0000”;

elsif seth2=“1001” then

seth1<=seth1+1;

end if;

end if;if cj=“001” then seth1<=“0000”;end if;end process sethour1;------------sethour2:process(clk1,seth1,cj)

begin

if clk1'event and clk1='1' then

if(seth1=“0010”and seth2=“0011”)or seth2=“1001” then

---其中seth1,seth2分別是調時的小時部位的十位與個位

seth2<=“0000”;

elsif cj=“111” then

seth2<=seth2+1;

end if;

end if;if cj=“001” then seth2<=“0000”;

end if;end process sethour2;------------時間設置分鐘部分 setmin1:process(clk1,setm2,cj)

begin

if clk1'event and clk1='1' then

if setm1=“0101”and setm2=“1001” then

setm1<=“0000”;

elsif setm2=“1001” then

setm1<=setm1+1;

end if;

end if;if cj=“001” then setm1<=“0000”;

end if;end process setmin1;---------------setmin2:process(clk1,cj)

begin

if clk1'event and clk1='1' then

if setm2=“1001” then

setm2<=“0000”;

elsif cj=“101” then

setm2<=setm2+1;

end if;

end if;if cj=“001” then setm2<=“0000”;

end if;end process setmin2;-------------鬧鈴

speaker:process(clkk,hou1,hou2,min1,min2,cj)

begin

if clkk'event and clkk='1'then

if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then

speak<=beep;

else speak<='0';

end if;

end if;if cj=“001” then speak<='0';

end if;end process speaker;------------disp:process(sel,cj,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)---顯示

begin

if sel=“010” then

selout<=“010”;--位選

case h1 is

---顯示小時的十位

when “0000”=>dout<=“00111111”;---0

when “0001”=>dout<=“00000110”;---1

when “0010”=>dout<=“01011011”;---2

when others =>dout<=“00000000”;---不顯示

end case;

elsif sel=“011” then

selout<=“011”;

case h2 is

---顯示小時的個位

when “0000”=>dout<=“10111111”;---0

when “0001”=>dout<=“10000110”;---1

when “0010”=>dout<=“11011011”;---2

when “0011”=>dout<=“11001111”;---3

when “0100”=>dout<=“11100110”;---4

when “0101”=>dout<=“11101101”;---5

when “0110”=>dout<=“11111101”;---6

when “0111”=>dout<=“10000111”;---7

when “1000”=>dout<=“11111111”;---8

when “1001”=>dout<=“11101111”;---9

when others=>dout<=“10000000”;---不顯示

end case;

elsif sel=“100” then

selout<=“100”;

case m1 is

---顯示分鐘的十位

when “0000”=>dout<=“00111111”;

when “0001”=>dout<=“00000110”;

when “0010”=>dout<=“01011011”;

when “0011”=>dout<=“01001111”;

when “0100”=>dout<=“01100110”;

when “0101”=>dout<=“01101101”;

when others=>dout<=“00000000”;

end case;

elsif sel=“101” then

selout<=“101”;

case m2 is

---顯示分鐘的個位

when “0000”=>dout<=“10111111”;

when “0001”=>dout<=“10000110”;

when “0010”=>dout<=“11011011”;

when “0011”=>dout<=“11001111”;

when “0100”=>dout<=“11100110”;

when “0101”=>dout<=“11101101”;

when “0110”=>dout<=“11111101”;

when “0111”=>dout<=“10000111”;

when “1000”=>dout<=“11111111”;

when “1001”=>dout<=“11101111”;

when others=>dout<=“10000000”;

end case;

elsif sel=“110” then

selout<=“110”;

case s1 is

---顯示秒的十位

when “0000”=>dout<=“00111111”;

when “0001”=>dout<=“00000110”;

when “0010”=>dout<=“01011011”;

when “0011”=>dout<=“01001111”;

when “0100”=>dout<=“01100110”;

when “0101”=>dout<=“01101101”;

when others=>dout<=“00000000”;

end case;

elsif sel=“111” then

selout<=“111”;

case s2 is

---顯示秒的個位

when “0000”=>dout<=“00111111”;

when “0001”=>dout<=“10000110”;

when “0010”=>dout<=“01011011”;

when “0011”=>dout<=“11001111”;

when “0100”=>dout<=“01100110”;

when “0101”=>dout<=“11101101”;

when “0110”=>dout<=“01111101”;

when “0111”=>dout<=“10000111”;

when “1000”=>dout<=“01111111”;

when “1001”=>dout<=“11101111”;

when others=>dout<=“00000000”;

end case;

end if;

if cj=“011” then---------------計時時間顯示和設置模式

h1<=hou1;h2<=hou2;

m1<=min1;m2<=min2;

s1<=sec1;s2<=sec2;

else

-----------鬧鈴時間現實和設置模式

h1<=seth1;h2<=seth2;

m1<=setm1;m2<=setm2;

s1<=“1111”;s2<=“1111”;

end if;end process disp;--------------------------yanshi:process(clk)variable fp:integer range 0 to 29999;begin if clk'event and clk='1' then if fp=29999 then fp:=0;

CP_5ms<= not CP_5ms;else

fp:=fp+1;end if;end if;end process;------------------quout:process(CP_5ms,keyin)begin if CP_5ms'event and CP_5ms='1' then Q1<=keyin;Q2<=Q1;Q3<=Q2;end if;end process;-------------------process(Q1,Q2,Q3)begin if(Q1='0' and Q2='0' and Q3='0')then keyout<='0';else keyout<='1';end if;end process;process(keyout,CJ)begin if Rising_edge(keyout)then if cj=“111” then cj<=“000”;

else CJ<=CJ+1;end if;end if;end process;end

one;

第四篇:條目編寫規范解讀

第四章 條目

第二十一條 所立條目應為獨立主題,記載內發生的事件,一事一條,資料完整系統,一般應具備時間、地點、事件、人物、原因、結果六個要素。

一、地方綜合年鑒的條目地方綜合年鑒條目是年鑒的基本細胞,信息的實際載體,也是年鑒記述事實的基本手段和表現形式。年鑒條目文字一般占全書文字量的70%左右。如果我們將年鑒編纂比作建房子,那么框架就猶如房子的設計藍圖,沒有藍圖,房子就建不好;條目就猶如建筑材料,沒有材料,藍圖也只能空紙一張。高質量的年鑒,框架要好,條目也要好。

二、地方綜合年鑒要一事一條

一事一條,即記錄一條信息,介紹一個單位、一個人或一件事,一種情況,可以含有幾個數據資料。內容包括時間、地點、結果和全面的、獨立的、完整的、排它性的資料。

三、地方綜合年鑒條目的六個要素

要寫好條目,首先要搞清楚什么是條目的“六何要素”。正文內要包括“六何要素”,即:“何時、何地、何事、何人、何因、何果”。

例如:【完成“422”轉移毒劑炸彈任務】4月22日,位于長春市亞泰大街和南湖大路交匯處一建筑工地現場挖掘出疑似日偽時期遺留的毒氣彈。五支隊接到作戰命令,成功將55枚毒氣彈轉移至安全地帶。(張冰峰)這段文字,就是一個比較規范的條目。它具備了條目的“六何要素”。

何時:4月22日。

何地:位于長春市亞泰大街和南湖大路交匯處一建筑工地。何事:現場挖掘出疑似日偽時期遺留的毒氣彈。何人:五支隊。何因:接到作戰命令。

何果:成功將55枚毒氣彈轉移至安全地帶。各類條目應具備的要素如下:

綜合性條目,要記述全年完成的主要工作,被授予的集體榮譽,工作中存在的主要問題等,要把全年的工作歸納提煉,再濃縮展現。

事件性條目應有事主、時間、地點、事情、原因、結果。活動性條目應有對象、目的、方法、結果。成果性條目應有名稱、性狀(或性能)特點、價值。

人物性條目應有姓名、生卒年月、性別(男性可不標明)、民族、原籍、職務、學歷、經歷、成就等。

四、不宜立條目的事

1.沒有普遍使用價值的事,不宜立條。這包括單位內部的事、上層的事、過于偏狹的事。如:〔理論學習〕〔協商議政〕〔舉辦微機操作人員培訓班〕,再如:象某個超市開業、某個餐館生意火爆等。

2.沒有記述價值的公事、虛事、應酬事,也不宜立條。如:〔增設內設機構〕〔慶三八大聯歡〕〔舉辦聯誼活動〕等內容很空,屬于一般的日常性工作。又如〔迎接城市衛生檢查〕記述角度應放在衛生工作,記述衛生面貌的改觀、各種衛生指標、數據的展示,而不是迎接檢查本身。

3.部門、行業特定職能之外的事業不作為條目來寫。如:化學工業就不能記載化工主管部門在計劃生育、廉潔勤政以及其他與化工行業無關的內容。有一些單位的撰稿人覺得是成績就應該充分反映,而不論是否是本行業的主體,是否會干擾有用信息的發布與利用。

4.部門的內部建設、內部事務不作為條目來寫。

5.統一開展的重要學習活動,重要的工作作為非主管部門的不 能作為條目來寫(重點工作不等于重點選題)。6.階段性事務。不是全年的內容,資料價值不大。如:〔時間過半任務過半〕〔實現首季開門紅〕。

7.各類紀念活動:〔紀念解放50周年會議〕,各地都搞這類活動,記述意義不大。

8.片面的事。如公開招考處級領導干部的消息,只涉及有幾個崗位、怎么考試、報名人員情況等,而年鑒條目在記述時,應將重點放在記述人事制度改革的綜合情況上。公開招考只是其中一項措施。再如危改片拆遷,只是某個階段情況:某某片動遷、某某片回遷安置等。年鑒條目要將某片拆遷改造作為一個完整過程進行記述。

9.與業務無直接關聯的單位內部事務性工作,例如,某單位領導為全體黨員上黨課,組織全系統干部認真收看黨的十七大開幕式,某單位舉辦春節聯歡晚會,等等,都不是年鑒要記載的大事、要事,不需要專門立條。

10.正在計劃之中,預期發展而尚未實現的事情,年鑒內容是以1月1日至12月31日為記載的時間范圍。一般情況下,不追溯歷史、不展望未來。正在計劃之中,預期發展而尚未實現的事情不予以記載(如剛立項的工程等)。

六、杜絕年鑒的“死條”

無人問津或無法檢索的條目謂之“死條”。“死條”屬于無效信息,白白浪費版面,是條目編寫的一大禁忌。“死條”的成因,主要是選題不當:一是收入檢索性不強的非獨立主題,如[問題與不足]、[隊伍建設]、[項目論證]、[項目效益]等;二是收入存查價值不高或者說檢索意義不大的資料主題,如[防洪準備工作]、[信訪宣傳]、[接待工作]、[會務工作]等;三是在不該設條的地方設條,如在共青團的欄目里設立計劃生育、幼兒教育的條目,等等。第二十二條 條目一般由標題、釋文、作者署名三個部分組成;分為綜合性條目和單一性條目。

一、條目的基本組成形式是:標題+正文+署名。例如: 【延邊州地方志編委會參照公務員法管理】 11月2日,吉林省公務員局下發《關于延邊州及轄區事業單位參照公務員管理的批復》(吉公局發[2010]76號),批準延邊州地方志編纂委員會列入參照《中華人民共和國公務員法》管理范圍,年末前完成人員身份置換工作。

(李為平)

這段文字,就是一個比較規范的條目。它具備了條目的基本組成形式:

標題:【延邊州地方志編委會參照公務員法管理】。

正文:11月2日,吉林省公務員局下發《關于延邊州及轄區事業單位參照公務員管理的批復》(吉公局發[2010]76號),批準延邊州地方志編纂委員會列入參照《中華人民共和國公務員法》管理范圍,年末前完成人員身份置換工作。

署名:(李為平)

二、地方綜合年鑒的綜合性條目

綜合性條目是記錄一類事物的資料,可以先寫基本情況介紹,然后寫正文,將有關資料綜合歸納寫出。

例:《北京工業年鑒》2004年中:【技術改造】全年北京地區固定資產投資16.3億元,其中基本建設投資4.15億元,占25.47%;更新改造投資10.79億元,占66.21%。完成固定資產投資項目13項。

一、三高爐利用凈化后的煤氣余壓發電項目于2002年4月動工,2003年4月竣工,年內投資1573萬元,代替了過去高爐減壓閥組的功能,改善環境,降低噪音,減少污染;礦業公司擴建球團生產線于2002年1月動工,2003年11月竣工,年內投資14033萬元。礦業公司引進球團生產設備,年內投資4438萬元。中板廠技術改造,2001年7月動工,2003年2月竣工,當年投資28779萬元。股份公司大板坯鑄機改造,2001年9月動工,2003年11月竣工,當年投資2866萬元。主廠區電網改造,2002年3月動工,2003年12月竣工,當年投資220萬元。鑄造廠環保治理技術升級,2002年9月動工,2003年6月竣工,當年投資1195萬元。年內在建的項目有:2003年1月動工的遷鋼200萬噸鋼搬遷轉移項目等。結構調整的另一項重點工程是利用原初軋廠部分廠房和公輔設施,改造后建設一條全新的彩涂板生產線,2002年9月動工,設計年產彩涂板17萬噸,當年投資20949萬元。嘉華60萬噸礦渣綜合利用是廢渣治理項目,對高爐渣進行深加工,生產砼添加劑替代水泥,2003年4月開工,2004年2月竣工,當年投資6662萬元。氧氣廠新建一臺3.5萬立方米/小時制氧機組和空分系統,保證高爐噴煤的需要,2003年6月動工,當年投資2960萬元。

三、地方綜合年鑒的單一性條目

單一條目一般是一事一條,記錄一條信息,介紹一個單位、一個人或一件事,一種情況,可以含有幾個數據資料。內容包括時間、地點、結果和全面的、獨立的、完整的、排它性的資料。單一條目一般比較短小。例:

[建立特困老人檔案] 據福建省老齡辦[2002]28號《關于進一步完善我省特困老人生活狀況調查摸底的通知》,2002年,寧德市9個縣(市、區)老齡辦在開展“三不靠”(即民政靠不上、集體靠不上、子女靠不上)的特困老年人,以及雖已納入最低生活保障和民政救助,仍無法保障基本生活的特困老人家庭(即被當地群眾公認為“難中難”的老人家庭)調查摸底的基礎上,建立特困老人檔案。至年底,已有周寧、柘榮、蕉城區3縣(區)老齡辦完成建檔工作。上述這一單一性條目,字數不多,但寫明了事情的來龍去脈,它告訴讀者有:(1)建立特困老人檔案的文件依據是福建省老齡辦[2002]28號文件;(2)何謂“三不靠”特困老人;(3)特困老人建檔的對象指誰;(4)全市9個縣(市、區)已開展調查摸底,3個縣(區)已完成了建檔工作任務等四條信息,是當年老人工作的一件新事、要事,體現了內容單一性、特色性和新聞性。

第二十三條 條目標題頂格書寫,加黑,加方頭括號(【】),后空一格接寫正文:綜述類、概況類條目可分段書寫,其它條目一般不分段:條目作者名署正文下一行,頂后格,加圓括號:每個欄目下條目一般按重要性編排。

一、的書寫格式

1.條目標題、概況頂格書寫,加一方括號【】,后空一格接寫正文。文章、文獻、表格的標題居中書寫。

2.綜述條目和概況可分段書寫,分段的小標題前一般不標注數字,題目加黑后空一格接寫正文。其他條目不分段。

3.條目作者名署正文下一行,頂后格,加圓括號。署撰稿人實名,集體編寫可署機構名。

5.每個欄目下條目一般按時間順序編排,確有需要的可按重要性編排。

二、綜述類、概況類條目可分段書寫,其它條目一般不分段 大家可以參考《延邊年鑒(2011)70頁[濕地資源]、91頁[人大常委會會議]和311頁[競技體育賽事]等綜述類、概況類條目的分段規則。每段另起一行,段小標題用楷體,后空一字格進入正文。其他條目則不能分段,一事一條,從頭到尾,一氣呵成。

第二十四條 條目標題應簡潔明確、不加粉飾、見題知義、題文相符,一般不出現人名,中間不使用標點符號,中心詞前置,使用簡化稱謂要避免改變原意或產生歧義。

一、地方綜合年鑒的條目標題要求準確、簡明、實在,用一句話或一個詞組表達,做到見題知義,不需要宣傳性、鼓動性的詞語,不能用警句、問句、對偶句。還要注意要立足于本年鑒角度來制作標題。例如,A省B市年鑒有條目標題為“A省××會議在B市召開”,就不如“B市承辦A省××會議”位置恰當,“國家××部授予B市××稱號”就不如“B市被授予××稱號”中心突出,“A省檢查組檢查B市××工作”就不如“B市××工作接受A省檢查組檢查”角度準確。

二、地方綜合年鑒的條目標題中間不能使用標點符號

如【以“提素質、創一流”為目標加強自身建設】可以改成【自身建設】。

三、地方綜合年鑒的條目標題中心詞應前置

例如,【“轉作風 暖民心 促發展”領導干部作風建設主題教育】,標題冗長,中心詞不突出,應該刪去冠名套話,改為【領導干部作風建設主題教育】。又如【1234610農業和農村工作新思路】,中心詞也不突出,應去掉湊數文字,直接標為【農業和農村工作新思路】。再如【聯合上級人大常委會共同做好立法調研工作】,標題關鍵詞隱匿,前有繁言,后有蛇足,應當掐頭去尾,直接標為【人大立法調研】,則顯得主題更加鮮明,更利于檢索。

四、條目標題不宜使用的語句

條目標題中應當采用通用的詞和詞組、獨立的名稱和概念、短語及短句,不能采用以下語句:

1.冷僻、艱深的詞匯如:[黨群工團]、[農林水]、[科教文衛]、[站場建設]、[申報更名]、[創衛]、[LAS站]、[工情險情]等。

2.不規范的簡稱和縮略語如:“一線兩帶”、“兩基迎檢”、“三所三隊建設”、“四位一體”、“五溝整治”、“6433工程”等。(主題詞隱匿,內容難以界定,會給讀者檢索造成麻煩)。

3.太專的行業術語和完全地方化的簡稱如:“網購”、“降消”、“糾風”和“三會一節”、“東博會”、“南博會”、“西交會”等。(通用不能以一個地方、一個部門(行業)為標準,而是要社會通用、全國通用。因而這類行話和地方化的簡稱,在特定地方、特定情況下,人們也許能夠理解,但超出一定范圍,人們便會完全不知所云,后人更加無法理喻,應盡量避免使用)。

4.標語口號如:“全心全意為職工辦實事”、“努力改善山區教師工作生活條件”等。

5.鋪墊式句子和因果復句如:“多渠道集資,建成一所職業中學”;“加強制度建設,實現節能降耗目標”,等等。(這類不恰當的標引,也會造成“死條”,根本無法檢索)。

第二十五條 條目編寫使用第三人稱,據實而書、直陳其事、方便檢索,突出新事、大事、特事、要事;內容記述至多分三層,第一層序碼為一、二、三,第二層序碼為1.2,3,第三層序碼為(1)(2)(3);各部類內容重復、交叉時,按主題、主體、主辦方歸類。

一、地方綜合年鑒一律采用第三人稱。不用“我黨”、“我軍”、“我們”、“我辦”、“我省”、“我縣”、“我市”等第一人稱代詞,應直書“中國共產黨”、“中國人民解放軍”和省名、縣名、市名,“中央”應具體寫“中共中央”,使用古地名時應冠以朝代名稱,括注今地名。省市年鑒使用鄉鎮名稱時應冠以縣名,縣里的年鑒使用村名時應冠以鄉鎮名,如 “安圖縣新合鄉”、“兩江鎮西江村”。

二、從編寫實踐來看,條目中最好不分層次,綜述類、概況類條目可分段書寫,其它條目不分段,以避免年終總結之嫌。

第二十六條 綜合性條目分為綜述類和概況類兩種,綜述類條目置于分目之下,概況類條目置于欄目之下;綜合反映內不同分目和欄目所記事物發展變化的全貌和趨勢,應包括基本情況、主要成績、存在問題及重要數據等幾個方面的要素,注意資料信息的連續性和可比性。一般來說,綜合性條目的信息含量應占全書的7%。為便于檢索,綜合性條目標題應冠以表明所記事物的定語。

一、什么是綜合性條目

地方綜合年鑒的綜合性條目的重要標志是:設立在分目(即二級目)之下的第一個條目,以“概述”為標題。它以一個行業、一個系統、一個部門或一個門類的基本情況為中心主題,對其情況進行全面綜合、系統概括地記敘或說明,起勾勒全貌和背景的作用,又起到對不夠單位立條的個別、分散但卻不可缺少或重要的信息資料進行羅列綜合作用。一般包括:工作概括、機構隊伍、重要統計數據等內容。

二、綜合性條目寫作方法

先用統一的【×××概況】條目來概括地方經濟社會發展概況,內容涵蓋了一個地區工業、農業、外貿經濟、城鄉建設、科教文衛、人民生活、社會事業等。再用1~2個特色條目來反映本地區經濟社會發展過程中的大事、要事;將概述條目與特色條目聯結形成一個完整的結構,相輔相承,相得益彰,從不同角度反映了全部情況。

有的作者往往把綜合性條目理解為單一性條目的相加。比如某保險公司撰寫了4個條目,其中1個為概況,3個為單一條目。3個單一條目分別是“保險費率市場化改革”、“保費收入突破億元大關”、“確保賠款支出及時到位”。而其概況也分為三個自然段,每一自然段分別是寫保險事業改革、保費收入、理賠工作。這樣就很容易和后面的單一條目造成重復。當然,綜合性條目和單一條目之間有時不可避免會出現交叉,但即便如此,也要做到詳略不同,即具體內容在單一條目里展開寫、詳細寫,在綜述或概況里歸納寫、簡略寫,盡量避免過多的重復。

三、概況條目既要反映基本情況、取得的主要成就、又要突出發展的主要特點、存在的主要問題。

如2010年卷《廣東建設年鑒》“城市道路橋梁建設”分目的【概況】條目:“至2009年底,廣東省建成城市道路總長度為31348.2公里、道路總面積54809.8萬平方米,其中人行道路總面積12136萬平方米,全省城市人均道路面積12.63平方米。全省建成城市橋梁6199座,其中立交橋375座。安裝道路照明燈1617792盞,安裝路燈道路長度為24446公里。”這個條目基本符合年鑒“概況”條目的要求,基本反映了2009年廣東省城市道路橋梁建設的基本情況。但缺少發展的主要特點、存在的主要問題等要素。

四、概況條目要避免因工作總結式寫法造成的文不對題 又如,某部年鑒“城市建設”分目下的條目:【簡況】 2009年,市建設局重點工作取得成效:(1)及時調整住房保障標準,做到應保盡保;創新保障方式,擴大受惠面;創新建設理念,多形式、多渠道開展保障性住房建設。(2)開展房地產可持續發展調研,積極應對國際金融危機,??開展建筑節能調研,推動建設環境友好型、資源節約型社會;開展節能墻體生產基地建設調研;開展住房保障工作調研,探索完善住房保障體系的方法;開展房地產交易市場調研,積極尋求解決行政劃撥土地房屋上市問題的辦法。(3)在解決“辦證難”、“爛尾樓”等方面取得重大進展。(4)依法行政,做好綜治維穩和平安建設工作。(5)加強風景名勝區的綜合整治和監管工作。(6)代建工作穩步推進。??(7)加快推進“雙轉移”工作。(8)加大力度,做好城區有關重點工程項目收尾工作。上述條目,記載的是建設局的重點工作,而不是城市建設的基本情況。

五、概況條目應避免出現“兩個極端”

“概況”條目,在各地編輯的年鑒中都存在兩個突出的問題,一個是過于草率、簡單、空洞無物的“極端”。如一部年鑒的“檢察”分目下,“概況”條目是這樣表述的:“××××年,全市檢察機關認真貫徹黨的十六大精神,圍繞‘強化法律監督、維護公平正義’的檢查工作主題,依法履行檢察職能,大力懲治國家工作人員犯罪,嚴厲打擊嚴重刑事犯罪,全面開展訴訟監督,為××市的社會穩定和經濟發展做出了積極貢獻。”。該條目全文連同標點共115字,基本上是空話套話,放在哪個都適合。當然,不能僅以字數的多少來評價條目質量高低,但綜合性條目過于簡單,是難以達到年鑒編纂規律對“概況”條目的基本要求的。另一個是過于冗長、拖沓的“極端”。雖然綜合性條目講究內容全面、重點突出、層次清晰、詳略得當,但并不是越長越好。眼下,有的“概況’條目動輒3000到5000字,面面俱到且空話連篇,使讀者感覺很不舒服。從各地的編纂實踐來看,部分優秀的綜合性條目,一般在800字左右。大、中型企業,縣(市)直綜合部門的“綜合性條目”字數最多不得超過2000字。

六、概況條目實例分析:

【概況】 2001年,房地產開發所面臨的資金環境相對寬松,住房抵押貸款及房地產金融制度創新發展迅速,住房貨幣分配的全面實施,以及“房改房”進入市場,刺激了廣州市住宅消費市場,推動房地產業持續、穩定發展。

房地產投資繼續呈現持續、穩定和較快速的增長勢頭。全年廣州市完成房地產投資387.02億元,比上年增長8.8%。房地產開發完成住宅建設投資257.14億元,比上年增長11.2%;完成辦公樓宇投資20.81億元,增長11.3%,改變了長期下挫的格局;商業經營用房投資44.09億元,增長6.1%。房地產業及其他相關產業的快速、穩定增長,已成為廣州市實現經濟增長目標的重要保證之一。

商品房空置面積總量仍然較高,消化存量商品房的壓力較大。全年全市商品房空置總面積621.84萬平方米,比上年增長6.5%。其中空置住宅365.83萬平方米,下降0.4%;空置商務寫字樓45.55萬平方米,增長1.3%。從總體面積方面分析,商品房空置總量仍然較高的現狀,說明廣州市商品房市場供過于求,呈現買方市場的特征。

商品房施工面積繼續增長,新開工面積增長速度逐月回落,竣工面積出現下降態勢。全年全市商品房施工面積4312.37萬平方米,比上年增長13.1%,其中商品住宅施工面積2966.32萬平方米,增長12.3%。商品房竣工面積849.83萬平方米,比上年下降1.4%,其中商品住宅竣工面積671.24萬平方米,下降3.9%。商品房新開工面積1245.31萬平方米,比上年增長15%,比上年增長速度31.3%顯著回落,顯示眾多投資者對廣州房地產市場預期繼續看好,同時也預示商品房市場自我調節機制已經開始啟動,政府已適時加強對房地產開發用地供應的調控,并積極采取有效措施活躍商品房二級市場,努力促使廣州市商品房市場逐步趨向供求相對均衡的狀態。

商品房售價穩中有升,市場需求結構基本實現平穩調整。全年全市商品房預售面積513.31萬平方米,比上年增長4.2%,其中商品住宅預售面積481.98萬平方米,增長6.4%。表明在停止實物分配住房,全面實行貨幣分房后,廣州市商品房市場并未因集團購買力的消失,而對市場有效購買力產生重大影響,市場需求結構基本實現平穩過渡。與此同時,商品房及商品住宅價格繼續維持平穩,全年商品房預售均價4474元/平方米,其中住4117元/平方米,分別比上年下降0.3%和1.2%。(《廣州年鑒》(2002)P231)

該條目資料翔實具體,有分析、有綜合、有點、有面,突出了地方特點、行業特點和年代特點,是一條寫得相當不錯的概況,值得借鑒。

第二十七條 單一性條目一般不超過500字,綜合性條目一般不超過2000字。

一、地方綜合年鑒的單一性條目

單一性條目一般是一事一條,記錄一條信息,介紹一個單位、一個人或一件事,一種情況,可以含有幾個數據資料。內容包括時間、地點、結果和全面的、獨立的、完整的、排它性的資料。單一條目一般比較短小,一般不超過500字。

根據其記載的內容,單一性條目可劃分為記事類條目、機構類條目、會議類條目、成果類條目、人物類條目等。

記事類條目

記述某一具體事物、事件和現象的條目,是專題性條目中最常見的類型。它以資料重要,信息新穎,內容生動見長,是年鑒內容更新的主體。其基本要素包括事主、時間、地點、過程、原因、結果。重大活動類條目的要素:包括時間、地點、名稱、舉辦單位、參加人員及人數、內容、結果等。著重記述活動的主要內容、特點和結果。避免敘述一般過程、轉錄領導人講話。

機構類條目

記述內有重大影響的行政機關、企事業單位、社會團體的條目,一般以內新成立或有重大發展變化的重要機構為記述對象。其基本要素包括機構名稱、簡要沿革、隸屬關系、組織形式、基本職能、發展變化和突出成就等。機構類條目的要素:包括機構名稱、成立時間、批準機關、隸屬關系、組織形式、主要職能和業務范圍、內部機構設置等。著重介紹主要職能和工作成果。機構成立的原因、過程、意義一般不記述。

會議類條目

以內重要會議為記述對象的條目,主要內容包括會議名稱、時間、地點、主辦單位、主要議程、取得的成效或產生的影響,重點反映會議取得的實質性效果,而會議的氣氛和程序可以從略。部門和行業的工作例會和沒有實際成效的會議,一般不立目記述。會議類條目應注意兩點:一是要增加有效信息,把實質性的內容反映出來,參會的領導人列主要的,領導人的講話少錄以至不錄。在來稿中,有些局、部門會有會議的條目,按理應著重反映本地有關通過重大事項的做法和效果。但來稿中往往只寫了有哪些領導和部門參加大會,誰發來賀信,誰代表市政府講話,該局局長如何表態等。因為有效信息太少,未能錄用。二是與本地工作確實有關系的全國性或區域性會議,可以作為條目的選題,如果僅僅借本地某個地方開個會,同本地工作沒有什么關系,就沒有必要寫這個條目。

成果類條目

記載內重要新產品(成果)或獲得重大獎勵的產品(成果)的條目,主要內容要素包括產品(成果)名稱及其研制(完成)者、完成時間、主要技術性能、質量特點、鑒定或獲獎情況、推廣應用效果、生產能力或市場狀況等。其中成果類條目的要素:包括成果名稱、完成單位或個人、完成時間、成果價值或技術含量、社會效益、經濟效益、鑒定結果和獲獎等級等。著重介紹成果價值。成果研制的過程、意義一般不記述。項目類條目的要素:包括項目名稱、投資總額、工程規模、質量水平、地點、時間(開工、竣工)、施工單位、工程進度、社會效益、經濟效益等。重點介紹項目規模、質量水平和效益。項目開工(竣工)慶典場面、領導人講話一般不寫。人物類條目

以人立目,介紹人物的條目。年鑒人物類條目要嚴格掌握入選標準,格式統一,突出個性特征。該類目一般包括先進人物、新聞人物、著名專家學者、重要逝世人物等,所選錄的人物必須具有強烈的感,重點突出,表現集中,所輯入的資料要有鮮明的新穎性和高度的準確性。人物類條目的要素:包括人物的姓名、姓別(男性不注)、民族(漢族不注)、出生年月、籍貫、學歷、黨派、所在單位、職務職稱、主要事跡和貢獻、受表彰的情況及被授予的稱號等。重點介紹主要經歷、重要事跡和成就。

第五篇:個人簡歷html語言編寫

課后練習題五

姓 名 性別 出生年月 照片
畢業院校 專業 學歷
政治面貌 民族 身高
健康狀況 籍貫
身份證號碼 聯系電話
主修課程
英語水平
計算機水平
社會實踐
獎勵情況
自我評價

下載如何編寫和語言程序解讀word格式文檔
下載如何編寫和語言程序解讀.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    編寫一個以C 語言為基礎的DSP程序

    實驗1.2 : 編寫一個以C 語言為基礎的DSP程序 一.實驗目的 1.學習用標準C語言編制程序;了解常用的C語言程序設計方法和組成部分。 2.學習編制連接命令文件,并用來控制代碼的連接。......

    教案編寫怎樣創新解讀

    教案編寫怎樣創新 【摘 要】課堂教學革新,怎樣改,從哪里動手改,隨著新課程尺度的漸漸實驗,惜時增效課題研究的深入開展,筆者以為傳統的編寫教案必須改,也到了非改不行的田地。 【......

    編寫大型程序的感受

    編寫大型程序的感受: 最初,全組人對編寫此大程都沒有信心。因此,我們的進展一直很緩慢,前進的步伐異常艱難。夏學期第四周,我感覺不能再拖了,我和楊洋決定要投入。周六晚上,我畫出......

    編寫PLC程序一些心得(精選5篇)

    1. PLC和上位機(或觸摸屏)組成監控系統時,在畫面上很多時候需要有"手動","自動"等控制模式(一般都是多個只能一個時). 在程序里面可以用"MOV" 指令. 如:當選擇"手動" 就將常......

    C語言編寫俄羅斯方塊論文

    俄羅斯方塊 學 號: 班 級:姓 名:指導教師: 完成日期:2012年5月 目 錄 1.引言 ...............................................................................................

    C語言 程序代碼編寫規范

    C語言 程序代碼編寫規范(初級程序員 討論版)前言 一個好的程序編寫規范是編寫高質量程序的保證。清晰、規范的源程序不僅僅是方便閱讀,更重要的是能夠便于檢查錯誤,提高調試效......

    c語言編寫單片機感想

    用C語言對單片機編程感想 起先接觸單片機,單片機的程序是用匯編語言編寫的。匯編語言是面向機器的低級語言,保持了機器語言的優點,具有直接和簡捷的特點,目標代碼簡短,占用內存少......

    第2章用c語言編寫簡單程序實訓綜合練習

    第2章用c語言編寫簡單程序實訓綜合練習實驗目的 1) 使用if語句計算分段函數 2) 熟練掌握for語句和while語句編寫簡單的循環程序 3) 學習簡單的程序調試方法編程題 1. 編寫程......

主站蜘蛛池模板: 熟女女同亚洲女同| 亚洲人成网站18禁止| 婷婷五月六月激情综合色中文字幕| 日本a级特黄特黄刺激大片| 无码一区二区三区av在线播放| 亚洲国产精品无码一区二区三区| 老司机午夜精品99久久免费| 蜜臀av国产精品久久久久| 精品人妻无码一区二区三区性| 中国杭州少妇xxxx做受| 日本人妻丰满熟妇久久久久久| 爆乳熟妇一区二区三区| 精品久久久久久国产牛牛| 熟女人妻水多爽中文字幕| 无码人妻久久久一区二区三区| 国产精品久久无码一区二区三区网| 成人午夜高潮免费视频在线观看| 久热在线播放中文字幕| 国产麻豆一精品一av一免费| 无码熟妇人妻av在线电影| 人妻少妇久久中文字幕| av中文字幕无码免费看| 欧美制服丝袜人妻另类| 超清av在线播放不卡无码| 久久久人人人婷婷色东京热| 国产伦子沙发午休系列资源曝光| 人妻夜夜爽天天爽三区丁香花| 亚拍精品一区二区三区探花| 欧美牲交a欧美牲交aⅴ免费下载| 欧美精品亚洲精品日韩已满十八| 国产精品一区二区亚瑟不卡| 国产午夜鲁丝片av无码| 国产精品内射视频免费| 一本加勒比hezyo中文无码| 国产精品无码久久综合| 一本一道人人妻人人妻αv| 久久久久麻豆v国产精华液好用吗| 久久精品国产亚洲7777| 日本免费大黄在线观看| 久久精品国产精品亚洲| 免费视频成人片在线观看|