組合語言程式設計A卷

2023-01-10 18:27:03 字數 2791 閱讀 1237

2011級組合語言程式設計課程試題(a卷)

合分人複查人

1.用組合語言書寫的程式叫做masm要求該檔案的副檔名是編寫32位windows應用程式應選擇儲存模型。

2.組合語言語句有兩種,分別是和3.除外設資料外的資料定址方式有3類,分別稱為

和定址。

4.進行windows應用程式開發時,需要庫檔案,執行該應用程式時,則需要對應的庫檔案。

5.組合語言與c和c++語言有兩種混合程式設計方法,分別是和

6.ia-32處理器有個32位通用暫存器,有個段暫存器,段暫存器都是位的。

1.windows的模擬dos環境與控制台環境是一樣的

2.「type dx」的結果是乙個常量,等於2

3.資料擴充套件的基本原則是位數加長,數值大小不變

4.指令的相對定址都是近轉移

5.ja和jg指令的條件都是「大於」,所以是同乙個指令的兩個助記符

6.call指令的執行必然影響堆疊指標esp

7.在巨集定義中,local偽指令宣告識別符號;而在過程定義中,local偽指令用於分配區域性變數

8.指令「out dx,ax」的兩個運算元均採用暫存器定址方式

9.masm32軟體包既支援32位圖形介面應用程式的開發,也支援控制台應用程式開發。 ( )

10.程式終止執行也就意味著彙編結束,所以兩者含義相同

1. 定義字串變數:assembly language

2. 定義20個未賦值的字變數

3. 定義符號常量str,表示字串assembly language

4. 定義用十六進製制數表示的雙字變數:20

5. 用暫存器ebx和esi的基址變址定址方式把儲存器的乙個雙字與eax暫存器的內容相加,並把結果送回儲存器中。用一條彙編指令完成該功能。

6. 用一條彙編指令實現將暫存器eax和標誌位cf、of同時清零。

1.根據資料段定義的變數,分析下列指令的執行結果並填在空格裡(每空1分,共8分)

.data

array qword 1234567887654321h

.code

mov eax,dword ptr arrayeax

mov ebx,dword ptr array+4 ;ebx

sub al,bleaxcfof

;zfsfpf

2.指出如下語句的錯誤,並改正(其中var1和var2是兩個雙字變數)(每小題2分,共8分)

① add eax,bx

② mov var1, var2

③ push al

④ mov [ebx],100

3.有如下程式片斷,請使用一條指令實現該程式段所完成的功能(每小題2分,共4分)

① mov eax,ebx

mov ebx,[edi]

mov [edi],eax

② mov al,[esi]

mov [edi],al

inc esi

inc edi

4.如下程式段實現在乙個已知長度(長度為count)的串string中查詢是否存在子串bug的功能,如果找到則顯示「y」,否則顯示「n」。請在空白處填上恰當的語句。(每空2分,共8分)

mov ecx,count

mov edi,offset string

l1: mov esi,offset bug

push edi

mov edx,sizeof bug

ln: mov al,[esi]

jne l2

inc esi

inc edi

jne ln

pop edi

mov al,'y'

l2: pop edi

loop l1

mov al,'n'

l3: call dispc

1.(5分)將呼叫字串輸入子程式readmsg編寫成乙個巨集readstring,其中巨集的引數是輸入緩衝區的名稱msg,實際輸入字元的個數存入ecx暫存器中。

2.(8分)程式設計直接呼叫windows控制台api函式顯示「hello,assembly! 」。控制台api函式位於動態連線庫中,標準輸出控制代碼值:-11,常用函式說明如下:

void exitprocess(

dword uexitcode // exit code for all threads

);handle getstdhandle(

dword nstdhandle //input,output,or error device

);writeconsole引數

第乙個:控制台輸出控制代碼例項

第二個:指向字串的指標、即緩衝區位址

第三個:指明字串長度

第四個:指向乙個整數變數,返回實際輸出的字元數

第五個:保留,設定為0

3.(10分)使用dos系統功能編寫dos應用程式,要求如下:提示「input number:0~9」,等待使用者輸入字元。

如果使用者按下數字字元則退出,如果使用者按下非數字字元則繼續等待輸入字元。要求寫出完整的源程式**,不要使用輸入輸出子程式。

dos基本功能呼叫表如下所示:

4.(12分)請用子程式實現將字串「are you sure you can pass in the assembly exam?」中的英文本母進行大小寫互換,即如果是大寫則轉換成小寫,如果是小寫則轉換成大寫。對字串中的非英文本母不做任何處理。

在主程式中顯示出轉換後的結果,要求用主程式對子程式呼叫完成,利用堆疊傳遞入口引數,寫出完整的主程式、子程式**,並加上必要的注釋。

組合語言程式設計

實驗報告 軟體學院 一 實驗目的與意義 理解並熟練掌握組合語言程式設計過程中的編輯 彙編 鏈結和除錯等各個步驟,提高對彙編課程內容的理解和組合語言的掌握,通過上機練習加深對課程內容的理解和掌握。通過組合語言編制的程式上機除錯 執行檢驗程式設計是否正確。熟悉和掌握編輯 彙編 連線和除錯四個實用程式的使...

三組合語言程式設計

軟體要求 win98或win2000 masm5.0或masm6.0 含masm link debug等程式 硬體要求 ibm pc及相容機 實驗一非壓縮bcd碼乘法 一 實驗目的 學習程式設計的基本方法和技能,熟練掌握用組合語言設計 編寫 除錯和執行程式的方法。為後續課程打下堅實的基礎。同時熟練掌...

組合語言程式設計指導手冊

微機原理與接 術 實驗指導手冊 內部資料 2009年9月 巫宗賓 薛培根 說明一 通訊專業 必做實驗1 3 4 9 10 二 電子專業 必做實驗1 3 4 5 6 8 9 10 三 計算機專業 必做實驗3 4 5 6 7 8 9 10 四 計算機 文秘 必做實驗3 4 5 6 7 8 9 10 五 ...