導航:首頁 > 器材知識 > 如何編寫設備dq文件

如何編寫設備dq文件

發布時間:2023-02-21 19:47:04

① 10版GMP中設備DQ如何做

大部分儀器設備都是市售非定製的儀器,廠家一般不會再根據每個人不同的URS去做不同的儀器,廠家都事先按照自己的設計早以將儀器設備設計好了,直接放到市場上銷售,所以使用人員再做DQ已沒有多大意義,只需檢查你買回來的儀器設備是否符合你預定的需求,你所希望的功能及測試范圍等是否都能滿足的了。

② 設備DQ編制是哪個部門的職責

幾大點:設備保養維護 備品的管理 設備日常故障的處理 設備台賬的管理 設備故障率的管理 設備評估采購 設備的合理化改善

③ 設備(材料)采購 投標文件分哪幾部分

(一)設備、材料采購招標文件的編制
設備招標文件是一種具有法律效力的文件,它是設備采購者對所需采購設備的全部要求,也是投標和評標的主要依據,內容應當做到完整、准確,所提供條件應當公平、合理,符合有關規定。招標文件主要由下列部分組成:
(1)招標書,包括招標單位名稱、建設工程名稱及簡介、招標設備簡要內容(設備主要參數、數量、要求交貨期等)、投標截止日期和地點、開標日期和地點;
(2)投標須知,包括對招標文件的說明及對投標者和投標文件的基本要求,評標、定標的基本原則等內容;
(3)招標設備清單和技術要求及圖.紙;
(4)主要合同條款應當依據合同法的規定,包括價格及付款方式、交貨條件、質量驗收標准以及違約罰款等內容,條款要詳細、嚴謹,防止事後發生糾紛;
(5)投標書格式、投標設備數量及價目表格式;
(6)其他需要說明的事項。
(二)設備、材料采購投標文件的編制
根據《建設工程設備招標投標管理試行辦法》規定,投標需要有投標文件。投標文件是評標的主要依據之一,應當符合招標文件的要求。基本內容包括:
(1)投標書;
(2)投標設備數量及價目表;
(3)偏差說明書,即對招標文件某些要求有不同意見的說明;
(4)證明投標單位資格的有關文件;』
(5)投標企業法人代表授權書;
(6)投標保證金(根據需要定);
(7)招標文件要求的其他需要說明的事項。

投標文件的編制必須嚴格對應招標文件的投標要求、技術規格要求、質量要求、服務要求、資格要求等各種要求,力求充分展示自己,適當的時候還需注意標書的後期製作。
投標文件中除包括投標函、報價表、企業情況簡介、擬響應的合同條款、各種資格證明文件外,還應包括以下內容:
1、技術規格要求及付款方式、交貨時間響應表

2、設計圖紙
圖紙必須按招標文件的具體技術規格要求,以一定的比例、一定的深度來設計繪制,同時圖紙的技術規格要求必須與投標所提供的實物相一致。

3、貨物主要用材、部件價格明細表及其證明材料貨物用材必須與設計圖紙相一致,並將在實物評價時得到驗證;同時材料價格、產地必須真實、可靠,應與投標文件中的貨物報價相吻合。

4、貨物的生產工藝流程及所用材料說明
該部分內容應與前面圖紙及用材情況相對應,以便於評委會評價投標人擬採用的生產工藝的先進性和合理性。此外,還可作為采購人在貨物生產過程中隨機對照檢查的依據。

5、企業主要設備明細表(並應註明設備用途)
該部分必須與生產工藝流程中所涉及的設備相配套。這樣既可以因此反映出上述工藝流程中所涉及的生產設備是否真實存在,同時也可以為前面所述的工藝流程的可行性提供物質保證。

6、質量保證體系
根據投標人提供的目前所具有的組織管理體系、檢測體系(含質量驗收標准、制度、質量管理及檢測方面的硬體)、管理制度及技術人員資質水平,從側面可以體現出該投標人的企業內部管理意識和管理水平,以作為該投標人對投標貨物質量承諾、保證的輔證。

7、服務承諾(一般不得低於采購人的基本服務要求)及售後服務機構、人員的情況介紹等
8、其他投標人認為需提供的材料。

④ 在虛擬機linux操作系統上怎麼編寫一個簡單的字元設備驅動程序

下載 virtualbox 下載一個 linux iso
用virtualbox 建立虛擬系統 配置好 載入iso 啟動安裝
VMware安裝完畢後,利用它可以建立多個虛擬機,每新建一個虛擬機,就會要求你建立一個配置文件。這個配置文件實際上相當於新電腦的「硬體配置」,你可以在配置文件中決定虛擬機的硬碟如何配置,內存多大.准備運行哪種操作系統,是否有網路等。配置Linux虛擬機的步驟如下。

(1)選擇File菜單下的「New Virtual Machine」出現新虛擬機向導後單擊「下一步」,選擇「Typical」典型安裝。

(2)再單擊「下一步」,在選擇操作系統界面的「Guest Operation System」中選擇 「Linux」,然後單擊Version對應的下拉菜單選擇具體的Linux版本, 此處我們選擇「Red Hat LinuX」。

(3)單擊「下一步」進入安裝目錄選擇界面。該界面上面的文本框是系統的名字,保持默認值即可,下面的文本框需要選擇虛擬機操作系統的安裝位置。

(4)根據需要選擇好後,單擊「下一步」按鈕,出現設置虛擬機內存大小的界面。Linux9.O對內存的要求是:文本模式至少需要64MB;圖形化模式至少需要128MB,推薦使用192MB。此處我們選擇192MB:

(5)單擊「下一步」按鈕進入網路連接方式選擇界面。VMware有四種網路設置方式,一般來說,Bridged方式使虛擬機就像網路內一台獨立的計算機一樣,最為方便好用(四種連網方式的區別大家可參考VMware的有關資料)。在此、我們選擇Brided方式。

(6)單擊「下一步」按鈕進入虛擬磁碟的設置界面。 這里有三種方式(Create a new virtual disk、Use an existing virtual disk、Use a physical disk)可供選擇、建議初學者選擇「Create a new Virtual disk」,其含義是新建一個虛擬磁碟,該虛擬磁碟只是主機—卜的一個獨立文件。

(7)在「下一步」中設置磁碟大小。在此、我們採用默認的4GB。

(8)單擊「下一步」進入文件存放路徑選擇界面。

在此界面可單擊Browse按鈕進行設置。此處我們使用默認值,單擊「完成」按鈕。

至此,完成一個虛擬機的配置。

⑤ 匯編中dq類型的變數要放在.data段中

在 Visual C++ 中使用內聯匯編- -

使用內聯匯編可以在 C/C++ 代碼中嵌入匯編語言指令,而且不需要額外的匯編和連接步驟。在 Visual C++ 中,內聯匯編是內置的編譯器,因此不需要配置諸如 MASM 一類的獨立匯編工具。這里,我們就以 Visual Studio .NET 2003 為背景,介紹在 Visual C++ 中使用內聯匯的相關知識(如果是早期的版本,可能會有些許出入)。

內聯匯編代碼可以使用 C/C++ 變數和函數,因此它能非常容易地整合到 C/C++ 代碼中。它能做一些對於單獨使用 C/C++ 來說非常笨重或不可能完成的任務。

一、 優點
使用內聯匯編可以在 C/C++ 代碼中嵌入匯編語言指令,而且不需要額外的匯編和連接步驟。在 Visual C++ 中,內聯匯編是內置的編譯器,因此不需要配置諸如 MASM 一類的獨立匯編工具。這里,我們就以 Visual Studio .NET 2003 為背景,介紹在 Visual C++ 中使用內聯匯的相關知識(如果是早期的版本,可能會有些許出入)。

內聯匯編代碼可以使用 C/C++ 變數和函數,因此它能非常容易地整合到 C/C++ 代碼中。它能做一些對於單獨使用 C/C++ 來說非常笨重或不可能完成的任務。

內聯匯編的用途包括:

使用匯編語言編寫特定的函數;
編寫對速度要求非常較高的代碼;
在設備驅動程序中直接訪問硬體;
編寫 naked 函數的初始化和結束代碼。

二、 關鍵字

使用內聯匯編要用到 __asm 關鍵字,它可以出現在任何允許 C/C++ 語句出現的地方。我們來看一些例子:

簡單的 __asm 塊:
__asm
{
MOV AL, 2
MOV DX, 0xD007
OUT AL, DX
}

在每條匯編指令之前加 __asm 關鍵字:
__asm MOV AL, 2
__asm MOV DX, 0xD007
__asm OUT AL, DX

因為 __asm 關鍵字是語句分隔符,所以可以把多條匯編指令放在同一行:
__asm MOV AL, 2 __asm MOV DX, 0xD007 __asm OUT AL, DX

顯然,第一種方法與 C/C++ 的風格很一致,並且把匯編代碼和 C/C++ 代碼清楚地分開,還避免了重復輸入 __asm 關鍵字,因此推薦使用第一種方法。

不像在 C/C++ 中的"",__asm 塊的""不會影響 C/C++ 變數的作用范圍。同時,__asm 塊可以嵌套,而且嵌套也不會影響變數的作用范圍。

為了與低版本的 Visual C++ 兼容,_asm 和 __asm 具有相同的意義。另外,Visual C++ 支持標准 C++ 的 asm 關鍵字,但是它不會生成任何指令,它的作用僅限於使編譯器不會出現編譯錯誤。要使用內聯匯編,必須使用 __asm 而不是 asm 關鍵字。

三、 匯編語言

1. 指令集

內聯匯編支持 Intel Pentium 4 和 AMD Athlon 的所有指令。更多其它處理器的指令可以通過 _EMIT 偽指令來創建(_EMIT 偽指令說明見下文)。

2. MASM 表達式

在內聯匯編代碼中,可以使用所有的 MASM 表達式(MASM 表達式是指用來計算一個數值或一個地址的操作符和操作數的組合)。

3. 數據指示符和操作符

雖然 __asm 塊中允許使用 C/C++ 的數據類型和對象,但它不能使用 MASM 指示符和操作符來定義數據對象。這里特別指出,__asm 塊中不允許 MASM 中的定義指示符(DB、DW、DD、DQ、DT 和 DF),也不允許使用 DUP 和 THIS 操作符。MASM 中的結構和記錄也不再有效,內聯匯編不接受 STRUC、RECORD、WIDTH 或者 MASK。

4. EVEN 和 ALIGN 指示符

盡管內聯匯編不支持大多數 MASM 指示符,但它支持 EVEN 和 ALIGN。當需要的時候,這些指示符在匯編代碼裡面加入 NOP 指令(空操作)使標號對齊到特定邊界。這樣可以使某些處理器取指令時具有更高的效率。

5. MASM 宏指示符

內聯匯編不是宏匯編,不能使用 MASM 宏指示符(MACRO、REPT、IRC、IRP 和 ENDM)和宏操作符(<>、!、&、% 和 .TYPE)。

6. 段

必須使用寄存器而不是名稱來指明段(段名稱"_TEXT"是無效的)。並且,段跨越必須顯式地說明,如 ES:[EBX]。

7. 類型和變數大小

在內聯匯編中,可以用 LENGTH、SIZE 和 TYPE 來獲取 C/C++ 變數和類型的大大小。
* LENGTH 操作符用來取得 C/C++ 中數組的元素個數(如果不是一個數組,則結果為 1)。
* SIZE 操作符可以獲取 C/C++ 變數的大小(一個變數的大小是 LENGTH 和 TYPE 的乘積)。
* TYPE 操作符可以返回 C/C++ 類型和變數的大小(如果變數是一個數組,它得到的是數組中單個元素的大小)。

例如,程序中定義了一個 8 維的整數型變數:

int iArray[8];

下面是 C 和匯編表達式中得到的 iArray 及其元素的相關值:

__asm C Size

LENGTH iArray sizeof(iArray)/sizeof(iArray[0]) 8
SIZE iArray sizeof(iArray) 32
TYPE iArray sizeof(iArray[0]) 4

8. 注釋

內聯匯編中可以使用匯編語言的注釋,即";"。例如:

__asm MOV EAX, OFFSET pbBuff ; Load address of pbBuff

因為 C/C++ 宏將會展開到一個邏輯行中,為了避免在宏中使用匯編語言注釋帶來的混亂,內聯匯編也允許使用 C/C++ 風格的注釋。

9. _EMIT 偽指令

_EMIT 偽指令相當於 MASM 中的 DB,但是 _EMIT 一次只能在當前代碼段(.text 段)中定義一個位元組。例如:

__asm
{
JMP _CodeLabel

_EMIT 0x00 ; 定義混合在代碼段的數據
_EMIT 0x01

_CodeLabel: ; 這里是代碼
_EMIT 0x90 ; NOP指令
}

10. 寄存器使用

一般來說,不能假定某個寄存器在 __asm 塊開始的時候有已知的值。寄存器的值將不能保證會從 __asm 塊保留到另外一個 __asm 塊中。

如果一個函數聲明為 __fastcall 調用方式,則其參數將通過寄存器而不是堆棧來傳遞。這將會使 __asm 塊產生問題,因為函數無法被告知哪個參數在哪個寄存器中。如果函數接收了 EAX 中的參數並立即儲存一個值到 EAX 中的話,原來的參數將丟失掉。另外,在所有聲明為 __fastcall 的函數中,ECX 寄存器是必須一直保留的。為了避免以上的沖突,包含 __asm 塊的函數不要聲明為 __fastcall 調用方式。

提示:如果使用 EAX、EBX、ECX、EDX、ESI 和 EDI 寄存器,你不需要保存它。但如果你用到了 DS、SS、SP、BP 和標志寄存器,那就應該用 PUSH 保存這些寄存器。
提示:如果程序中改變了用於 STD 和 CLD 的方向標志,必須將其恢復到原來的值。

四、 使用 C/C++ 元素

1. 可用的 C/C++ 元素

C/C++ 與匯編語言可以混合使用,在內聯匯編中可以使用 C/C++ 變數以及很多其它的 C/C++ 元素,包括:

符號,包括標號、變數和函數名;
常量,包括符號常量和枚舉型成員;
宏定義和預處理指示符;
注釋,包括"/**/"和"//";
類型名,包括所有 MASM 中合法的類型;
typedef 名稱,通常使用 PTR 和 TYPE 操作符,或者使用指定的的結構或枚舉成員。
在內聯匯編中,可以使用 C/C++ 或匯編語言的基數計數法。例如,0x100 和 100H 是相等的。

2. 操作符使用

內聯匯編中不能使用諸如"<<"一類的 C/C++ 操作符。但是,C/C++ 和 MASM 共有的操作符(比如"*"和"[]"操作符),都被認為是匯編語言的操作符,是可以使用的。舉個例子:

int iArray[10];

__asm MOV iArray[6], BX ; Store BX at iArray + 6 (Not scaled)
iArray[6] = 0; // Store 0 at iArray+12 (Scaled)

提示:在內聯匯編中,可以使用 TYPE 操作符使其與 C/C++ 一致。比如,下面兩條語句是一樣的:
__asm MOV iArray[6 * TYPE int], 0 ; Store 0 at iArray + 12
iArray[6] = 0; // Store 0 at iArray + 12

3. C/C++ 符號使用

在 __asm 塊中可以引用所有在作用范圍內的 C/C++ 符號,包括變數名稱、函數名稱和標號。但是不能訪問 C++ 類的成員函數。

下面是在內聯匯編中使用 C/C++ 符號的一些限制:

每條匯編語句只能包含一個 C/C++ 符號。在一條匯編指令中,多個符號只能出現在 LENGTH、TYPE 或 SIZE 表達式中。
在 __asm 塊中引用函數必須先聲明。否則,編譯器將不能區別 __asm 塊中的函數名和標號。
在 __asm 塊中不能使用對於 MASM 來說是保留字的 C/C++ 符號(不區分大小寫)。MASM 保留字包含指令名稱(如 PUSH)和寄存器名稱(如 ESI)等。
在 __asm 塊中不能識別結構和聯合標簽。
4. 訪問 C/C++ 中的數據

內聯匯編的一個非常大的方便之處是它可以使用名稱來引用 C/C++ 變數。例如,如果 C/C++ 變數 iVar 在作用范圍內:

__asm MOV EAX, iVar ; Stores the value of iVar in EAX

如果 C/C++ 中的類、結構或者枚舉成員具有唯一的名稱,則在 __asm 塊中可以只通過成員名稱來訪問(省略"."操作符之前的變數名或 typedef 名稱)。然而,如果成員不是唯一的,你必須在"."操作符之前加上變數名或 typedef 名稱。例如,下面的兩個結構都具有 SameName 這個成員變數:

struct FIRST_TYPE
{
char *pszWeasel;
int SameName;
};

struct SECOND_TYPE
{
int iWonton;
long SameName;
};

如果按下面方式聲明變數:

struct FIRST_TYPE ftTest;
struct SECOND_TYPE stTemp;

那麼,所有引用 SameName 成員的地方都必須使用變數名,因為 SameName 不是唯一的。另外,由於上面的 pszWeasel 變數具有唯一的名稱,你可以僅僅使用它的成員名稱來引用它:

__asm
{
MOV EBX, OFFSET ftTest
MOV ECX, [EBX]ftTest.SameName ; 必須使用"ftTest"
MOV ESI, [EBX]. pszWeasel ; 可以省略"ftTest"
}

提示:省略變數名僅僅是為了書寫代碼方便,生成的匯編指令還是一樣的。
5. 用內聯匯編寫函數

如果用內聯匯編寫函數的話,要傳遞參數和返回一個值都是非常容易的。看下面的例子,比較一下用獨立匯編和內聯匯編寫的函數:

; PowerAsm.asm
; Compute the power of an integer

PUBLIC GetPowerAsm
_TEXT SEGMENT WORD PUBLIC 'CODE'
GetPowerAsm PROC
PUSH EBP ; Save EBP
MOV EBP, ESP ; Move ESP into EBP so we can refer
; to arguments on the stack
MOV EAX, [EBP+4] ; Get first argument
MOV ECX, [EBP+6] ; Get second argument
SHL EAX, CL ; EAX = EAX * (2 ^ CL)
POP EBP ; Restore EBP
RET ; Return with sum in EAX
GetPowerAsm ENDP
_TEXT ENDS
END

C/C++ 函數一般用堆棧來傳遞參數,所以上面的函數中需要通過堆棧位置來訪問它的參數(在 MASM 或其它一些匯編工具中,也允許通過名稱來訪問堆棧參數和局部堆棧變數)。

下面的程序是使用內聯匯編寫的:

// PowerC.c

#include

int GetPowerC(int iNum, int iPower);

int main()
{
printf("3 times 2 to the power of 5 is %d\n", GetPowerC( 3, 5));
}

int GetPowerC(int iNum, int iPower)
{
__asm
{
MOV EAX, iNum ; Get first argument
MOV ECX, iPower ; Get second argument
SHL EAX, CL ; EAX = EAX * (2 to the power of CL)
}
// Return with result in EAX
}

使用內聯匯編寫的 GetPowerC 函數可以通過參數名稱來引用它的參數。由於 GetPowerC 函數沒有執行 C 的 return 語句,所以編譯器會給出一個警告信息,我們可以通過 #pragma warning 禁止生成這個警告。

內聯匯編的其中一個用途是編寫 naked 函數的初始化和結束代碼。對於一般的函數,編譯器會自動幫我們生成函數的初始化(構建參數指針和分配局部變數等)和結束代碼(平衡堆棧和返回一個值等)。使用內聯匯編,我們可以自己編寫乾乾凈凈的函數。當然,此時我們必須自己動手做一些有關函數初始化和掃尾的工作。例如:

void __declspec(naked) MyNakedFunction()
{
// Naked functions must provide their own prolog.
__asm
{
PUSH EBP
MOV ESP, EBP
SUB ESP, __LOCAL_SIZE
}

.
.
.

// And we must provide epilog.
__asm
{
POP EBP
RET
}
}

6. 調用 C/C++ 函數

內聯匯編中調用聲明為 __cdecl 方式(默認)的 C/C++ 函數必須由調用者清除參數堆棧,下面是一個調用 C/C++ 函數例子:

#include

char szFormat[] = "%s %s\n";
char szHello[] = "Hello";
char szWorld[] = " world";

void main()
{
__asm
{
MOV EAX, OFFSET szWorld
PUSH EAX
MOV EAX, OFFSET szHello
PUSH EAX
MOV EAX, OFFSET szFormat
PUSH EAX
CALL printf

// 壓入了 3 個參數在堆棧中,調用函數之後要調整堆棧
ADD ESP, 12
}
}

提示:參數是按從右往左的順序壓入堆棧的。
如果調用 __stdcall 方式的函數,則不需要自己清除堆棧。因為這種函數的返回指令是 RET n,會自動清除堆棧。大多數 Windows API 函數均為 __stdcall 調用方式(僅除 wsprintf 等幾個之外),下面是一個調用 MessageBox 函數的例子:

#include

TCHAR g_tszAppName[] = TEXT("API Test");

void main()
{
TCHAR tszHello[] = TEXT("Hello, world!");

__asm
{
PUSH MB_OK OR MB_ICONINFORMATION
PUSH OFFSET g_tszAppName ; 全局變數用 OFFSET
LEA EAX, tszHello ; 局部變數用 LEA
PUSH EAX
PUSH 0
CALL DWORD PTR [MessageBox] ; 注意這里不是 CALL MessageBox,而是調用重定位過的函數地址
}
}

提示:可以不受限制地訪問 C++ 成員變數,但是不能訪問 C++ 的成員函數。
7. 定義 __asm 塊為 C/C++ 宏

使用 C/C++ 宏可以方便地把匯編代碼插入到源代碼中。但是這其中需要額外地注意,因為宏將會擴展到一個邏輯行中。
為了不會出現問題,請按以下規則編寫宏:

使用花括弧把 __asm 塊包圍住;
把 __asm 關鍵字放在每條匯編指令之前;
使用經典 C 風格的注釋("/* comment */"),不要使用匯編風格的注釋("; comment")或單行的 C/C++ 注釋("// comment");
舉個例子,下面定義了一個簡單的宏:

#define PORTIO __asm \
/* Port output */ \
{ \
__asm MOV AL, 2 \
__asm MOV DX, 0xD007 \
__asm OUT DX, AL \
}

乍一看來,後面的三個 __asm 關鍵字好像是多餘的。其實它們是需要的,因為宏將被擴展到一個單行中:

__asm /* Port output */

從擴展後的代碼中可以看出,第三個和第四個 __asm 關鍵字是必須的(作為語句分隔符)。在 __asm 塊中,只有 __asm 關鍵字和換行符會被認為是語句分隔符,又因為定義為宏的一個語句塊會被認為是一個邏輯行,所以必須在每條指令之前使用 __asm 關鍵字。

括弧也是需要的,如果省略了它,編譯器將不知道匯編代碼在哪裡結束,__asm 塊後面的 C/C++ 語句看起來會被認為是匯編指令。

同樣是由於宏展開的原因,匯編風格的注釋("; comment")和單行的 C/C++ 注釋("// commen")也可能會出現錯誤。為了避免這些錯誤,在定義 __asm 塊為宏時請使用經典 C 風格的注釋("/* comment */")。

和 C/C++ 宏一樣 __asm 塊寫的宏也可以擁有參數。和 C/C++ 宏不一樣的是,__asm 宏不能返回一個值,因此,不能使用這種宏作為 C/C++ 表達式。

不要不加選擇地調用這種類型的宏。比如,在聲明為 __fastcall 的函數中調用匯編語言宏可能會導致不可預料的結果(請參看前文的說明)。

8. 轉跳

可以在 C/C++ 裡面使用 goto 轉跳到 __asm 塊中的標號處,也可以在 __asm 塊中轉跳到 __asm 塊裡面或外面的標號處。__asm 塊內的標號是不區分大小寫的(指令、指示符等也是不區分大小寫的)。例如:

void MyFunction()
{
goto C_Dest; /* 正確 */
goto c_dest; /* 錯誤 */

goto A_Dest; /* 正確 */
goto a_dest; /* 正確 */

__asm
{
JMP C_Dest ; 正確
JMP c_dest ; 錯誤

JMP A_Dest ; 正確
JMP a_dest ; 正確

a_dest: ; __asm 標號
}

C_Dest: /* C/C++ 標號 */
return;
}

不要使用函數名稱當作標號,否則將轉跳到函數中執行,而不是標號處。例如,由於 exit 是 C/C++ 的函數,下面的轉跳將不會到 exit 標號處:

; 錯誤:使用函數名作為標號
JNE exit
.
.
.
exit:
.
.
.

美元符號"$"用於指定當前指令位置,常用於條件跳轉中,例如:

JNE $+5 ; 下面這條指令的長度是 5 個位元組
JMP _Label
NOP ; $+5,轉跳到了這里
.
.
.
_Label:
.
.
.

五、在 Visual C++ 工程中使用獨立匯編

內聯匯編代碼不易於移植,如果你的程序打算在不同類型的機器(比如 x86 和 Alpha)上運行,你可能需要在不同的模塊中使用特定的機器代碼。這時候你可以使用 MASM(Microsoft Macro Assembler),因為 MASM 支持更多方便的宏指令和數據指示符。

這里簡單介紹一下在 Visual Studio .NET 2003 中調用 MASM 編譯獨立匯編文件的步驟。

在 Visual C++ 工程中,添加按 MASM 的要求編寫的 .asm 文件。在解決方案資源管理器中,右擊這個文件,選擇"屬性"菜單項,在屬性對話框中,點擊"自定義生成步驟",設置如下項目:

命令行:ML.exe /nologo /c /coff "-Fo$(IntDir)\$(InputName).obj" "$(InputPath)"
輸出:$(IntDir)\$(InputName).obj

如果要生成調試信息,可以在命令行中加入"/Zi"參數,還可以根據需要生成 .lst 和 .sbr 文件。

如果要在匯編文件中調用 Windows API,可以從網上下載 MASM32 包(包含了 MASM 匯編工具、非常完整的 Windows API 頭文件/庫文件、實用宏以及大量的 Win32 匯編例子等)。相應地,應該在命令行中加入"/I X:\MASM32\INCLUDE"參數指定 Windows API 匯編頭文件(.inc)的路徑。MASM32 的主頁是:,裡面可以下載最新版本的 MASM32 包。

⑥ 請問設備招標技術文件是由誰編寫業主委託招標代理或專業人員還是有承擔設計任務的設計院編寫請指教!

招標代理工作人員編制。

招標文件是由招標代理工作人員編制的,招標人有義務提供基本的技術資料,但編製成稿的工作是招標代理工作人員完成的,這點毫無疑義。

涉及設備參數、規格型號、功能等專業內容,建築工程的項目一般可以從設計圖紙中找到約束性條件作為招標文件的技術要求,由設備投標人根據自己投標產品特徵填報,由專家評審出最符合工程需要的設備。

帶有設計內容的設備標,一般是大型成套設備生產線之類的標的,這種標可以進行多階段招標,由具有豐富經驗的投標人提供設計方案(當然,投標人的設計方案都是根據自己的設備量身定做的,不具備普遍適應性),這時,評標委員會評審的重心實際上是設計方案和技術經濟指標。

單純的設備標不存在這種疑惑,一定是知道自己需要什麼樣的設備才能進入招標環節的。

⑦ 凈化工程驗收dq,fat,sat,iq,oq,pq文件怎麼填寫

URS: user requirement specification 用戶需求規格書
FAT: Factory Acceptance Test
SAT: Site Acceptance Test
DQ: Design Qualification 設計確認

IQ: Installation Qualification 安裝確認
OQ: Operation Qualification 操作(運行)確認
PQ: Performance Qualification 性能確認
SOP: Standard operation procere 標准作業程序

⑧ 如何編寫驅動程序

代碼:

#include&lt;linux/mole.h&gt;

#include&lt;linux/kernel.h&gt;

#include&lt;asm/io.h&gt;

#include&lt;linux/miscdevice.h&gt;

#include&lt;linux/fs.h&gt;

#include&lt;asm/uaccess.h&gt;

//流水燈代碼

#define GPM4CON 0x110002e0

#define GPM4DAT 0x110002e4

static unsigned long*ledcon=NULL;

static unsigned long*leddat=NULL;

//自定義write文件操作(不自定義的話,內核有默認的一套文件操作函數)

static ssize_t test_write(struct file*filp,const char __user*buff,size_t count,loff_t*offset)

{

int value=0;

int ret=0;

ret=_from_user(&value,buff,4);

//底層驅動只定義基本操作動作,不定義功能

if(value==1)

{

*leddat|=0x0f;

*leddat&=0xfe;

}

if(value==2)

{

*leddat|=0x0f;

*leddat&=0xfd;

}

if(value==3)

{

*leddat|=0x0f;

*leddat&=0xfb;

}

if(value==4)

{

*leddat|=0x0f;

*leddat&=0xf7;

}

return 0;

}

//文件操作結構體初始化

static struct file_operations g_tfops={

.owner=THIS_MODULE,

.write=test_write,

};

//雜設備信息結構體初始化

static struct miscdevice g_tmisc={

.minor=MISC_DYNAMIC_MINOR,

.name="test_led",

.fops=&g_tfops,

};

//驅動入口函數雜設備初始化

static int __init test_misc_init(void)

{

//IO地址空間映射到內核的虛擬地址空間

ledcon=ioremap(GPM4CON,4);

leddat=ioremap(GPM4DAT,4);

//初始化led

*ledcon&=0xffff0000;

*ledcon|=0x00001111;

*leddat|=0x0f;

//雜設備注冊函數

misc_register(&g_tmisc);

return 0;

}

//驅動出口函數

static void __exit test_misc_exit(void)

{

//釋放地址映射

iounmap(ledcon);

iounmap(leddat);

}

//指定模塊的出入口函數

mole_init(test_misc_init);

mole_exit(test_misc_exit);

MODULE_LICENSE("GPL");

(8)如何編寫設備dq文件擴展閱讀:

include用法:

#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。

插入頭文件的內容

#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:

1、#include&lt;文件名&gt;

2、#include"文件名"

如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:

#include&lt;math.h&gt;//一些數學函數的原型,以及相關的類型和宏

如果需要包含針對程序所開發的源文件,則應該使用第二種格式。

採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:

#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏

你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。

【例1】在#include命令中的宏

#ifdef _DEBUG_

#define MY_HEADER"myProject_dbg.h"

#else

#define MY_HEADER"myProject.h"

#endif

#include MY_HEADER

當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。

⑨ 怎麼填寫儀器設備技術檔案

一個單位的檔案應該首先從分類開始,檔案的整理就是不斷地分類和編號。單位整理檔案應該從當地的國家檔案館購買,而不應該從什麼計量協會購買。所有單位的檔案均需使用有各級各類的國家檔案館監制的檔案用品,如檔案盒、檔案袋、檔案目錄(如:設備檔案文件目錄、設備檔案案卷目錄、科技檔案分類目錄、設備檔案總目錄等),沒有聽說過什麼「檔案簿」。

以下是設備檔案分類、組卷的整理要點,分別敘述如下:

一、單位所有檔案的分類
首先應該編寫一個單位檔案的分類標准。即你們單位的檔案分為幾個一級大類幾個二級類別和三、四級類別。如一級類檔案,可以分為文書類檔案(指單位日常工作產生的文字性檔案)、科技類檔案、財會類檔案、聲像類檔案等。科技類檔案的二級類里,可以分為設備儀器類檔案、科研課題檔案、產品類檔案、基建工程檔案。設備儀器類檔案的三級類里可以按設備使用性質分類。如計算機(台式機、筆記本、上網本)、辦公設備(會議桌、辦公桌、書櫃、檔案櫃、辦公座椅等)等等
一般來說,三級或四級類就可以組成卷了。

二、設備檔案分類方法(可以選擇適合你們單位的一種進行分類)
1. 「使用性質——型號」分類法
2. 「工序——型號」分類法
3. 「車間——使用性質」分類法
4. 「使用性質」分類法
5. 不分類直接組卷

三、組卷要求
(一)組卷的含義:組卷,就是把一組有聯系的文件,以卷、冊、袋、盒等形式組合在一起,使它能夠表達一個相對獨立的概念,以便於保管、保密和利用。
(二)組卷具體要求
1. 一卷就是一組有密切聯系的文件,而不是雜亂無章地隨意堆積。
2. 每一卷都表達一個相對獨立的概念,不要一個概念(案卷標題)多個卷,卷與卷之間應當從題名到內容都是全異的關系。
3. 卷厚適度。一般不超過40mm。
4. 案卷內不應有重份文件。
5. 價值(保管期限)大體相同。設備檔案的保管期限一般為長期或定期。要根據設備儀器的使用壽命來定。

四、設備檔案組卷方法
(1)大型設備按結構組卷:即按設備的組件、部件、零件等不同可分拆的組成部分組卷。
(2)普通設備儀器按單台組卷:即1台1卷。
(3)小型設備儀器可酌情合並組卷:即2—3台組1卷。

五、卷內文件排列
(一)概念
卷內文件排列,就是按照文件的形成規律和必然聯系,系統的、有規則的進行排放,固定每份文件在卷內的恰當位置。
(二)設備文件排列方法
設備儀器檔案的組卷:按依據性材料、設備開箱驗收、設備安裝調試、設備運行維修、隨機圖樣或圖紙、說明書等。隨機圖樣如果是大張的圖紙,可以單獨組卷。
(三)卷內文字材料可參考文書檔案排列:
1. 整體上按時間(工作程序進度)。
2. 正文在前、底稿在後。
3. 正文在前、附件在後。
4. 批復在前、請示在後。
5. 原件在前、復印件在後。
6. 裝訂成本、印刷成冊的材料一般不用拆散重新排列。

六、設備檔案標題擬寫方法
型號+設備儀器名稱+文件名稱

例:XX型B超儀訂貨合同、合格證、說明書、開箱單
型號 名稱 文件名稱

七、卷內文件目錄填寫

序號 文件編號 責任者 文件材料題名 日期 頁號 備注
1 SB-1 XX科 XX型B超儀訂貨合同 20140506 1
(SB是設備的首字母)(這里不能畫出線段,所以只寫出文字)
1. 序號:即順序號。序號的給定是以一份文件或一張圖紙為單位。
(1)其中列印件與底稿,主件與附件,原件與復印件均為一份文件,給一個順序號。
(2)請示與批復視為2份文件,各編各的號(若批復不另行文,只在原請示件上批示意見的,仍做為一份文件,編一個號,但需要在題名填寫時體現出批示)。
2. 文件編號
(1)文件編號:如,請示、批復,文件編號填寫發文號。
(2)圖紙編號:填圖號,例「建施-1」,「結施01」「水施03」 ,。
(3)許可證:填證號。
3. 責任者:
(1)以落款蓋章或簽名為准,填寫文件的直接形成單位和個人;
(2)有兩個以上責任者時,盡量都填上,太多時,選擇兩個主要責任者,其餘用「等」代替。
(3)竣工圖的責任者填寫竣工圖章上的施工單位。
(4)責任者可填寫規范通用的簡稱。
4. 文件材料題名:即文件標題或圖紙的全稱。
5. 日期:文件或圖紙的形成日期。格式為20020612(8位數)。
6. 頁號:填每份文件的首尾號。
說明:(1)圖紙有圖樣目錄時,仍要編制《卷內文件目錄》,原圖紙目錄要作為卷內一份文件編頁號登入目錄;若該套圖紙需要組成幾卷,圖紙目錄放在第一卷內。
(2)卷內文件目錄排在卷內文件首頁之前。
八、填寫卷內備考表
(一)說明
包括以下內容:
1、標明卷內文件的件數與頁數;
2、說明卷內文件殘缺破損情況(無者不寫);
3、填寫立卷人、檢查人姓名及日期,日期為立卷的完成時間。
(二)互見號
填寫反映同一內容而載體不同另行保管的檔案的檔號,該檔號後應註明載體形式並用括弧括起。
九、填寫案卷封面
1.檔號:後面講。
2.檔案館號:不填。
3.案卷題名:填寫已擬寫好的案卷題名。
4.立卷單位:哪個單位組卷就填哪個單位
5.起止日期:填寫卷內文件形成的起止日期,只填年、月。
6.保管期限:①填寫劃定的永久、長期、短期;②卷內檔案材料有兩種以上保管期限時,應從長劃定。
7.密級:根據已劃定的密級填、沒有則不填,特殊情況請示有關領導再填。

十、案卷裝訂
(一)拆掉金屬物。
(二)科技檔案可採用裝訂和不裝訂兩種形式。
1. 裝訂方法:
(1)用棉線三孔一線(8字裝訂法)
(2)圖紙折疊。
①按A4圖紙大小折疊成手風琴式;
②內的圖紙左側要留出裝訂邊30mm;
②折疊圖紙時注意正面朝內,圖簽外露,以保護圖紙免受磨損並便於查看利用。
(3)圖紙裝訂要加墊紙板並包脊背。
2. 裝訂(不裝訂):
(1)卷內文字材料,要以份(件)為單位,用線裝訂。
(2)卷內圖紙要折疊成手風琴式A4大小的統一幅面,不留裝訂邊。
(3)卷內的每一件文字材料和每一張圖紙,均在右上角空白處加蓋檔號章,式樣為:

檔 號 序 號
SB3-1 1-001
(這里不能畫出線段,所以只寫出文字)
3、對破損、小於A4規格的文字材料要修復與托裱,裝訂線外有字跡的要加邊。

十一、編制檢案工具
科技檔案常用的是《科技檔案分類目錄》、《總目錄》。
(一)《科技檔案分類目錄》式樣如下:

序號 檔號 案卷標題 立卷單位 日期 期限 張(頁)數 備注
XX SB3-1 計算機類檔案 設備處 20140506 短期 150
(這里不能畫出線段,所以只寫出文字)
(二)《檔案總目錄》
1. 打破大類中二級類目及以下類目(即小類)的類別界限,以歸檔時間的先後作為登記入冊的前後順序。
2. 以打破年度的大流水號為登記的順序號。
謝謝採納為滿意答案。

閱讀全文

與如何編寫設備dq文件相關的資料

熱點內容
全新寶來儀表怎麼調 瀏覽:891
北京增值稅開票設備多少錢 瀏覽:11
上海翔添生產什麼機床 瀏覽:474
儀器乾燥有機溶劑乾燥法怎麼理解 瀏覽:566
貨車的暖氣閥門在哪裡 瀏覽:898
帶分度裝置的鑽床夾具設計 瀏覽:517
機動車儀表盤上p指什麼 瀏覽:229
HJ40機械油等於多少號 瀏覽:513
重慶大足五金市場 瀏覽:996
肇慶華粵五金製品有限公司 瀏覽:588
租房天然氣管閥門怎麼協商 瀏覽:919
和悅空調製冷是什麼原因 瀏覽:106
人工機械台班為什麼先算材料 瀏覽:622
探究力與運動的關系的實驗裝置 瀏覽:815
通用pe工具箱不能備份 瀏覽:188
機械車位可以停多少車位 瀏覽:404
機械表九月份為什麼會有31號 瀏覽:774
房屋設備情況怎麼寫 瀏覽:745
電腦怎麼禁用usb存儲設備 瀏覽:98
湖北桿端關節軸承怎麼選 瀏覽:720