最新匯編語言程序設計第四版課后答案_第1頁
最新匯編語言程序設計第四版課后答案_第2頁
最新匯編語言程序設計第四版課后答案_第3頁
最新匯編語言程序設計第四版課后答案_第4頁
最新匯編語言程序設計第四版課后答案_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精品文檔精品文檔-囮裑爲檤對于程序對于程序段:匯編語言程序設計第四版【課后習題答案】第五章高級匯編語言程序設計5. 1條件表達式中邏輯與 “ &表示兩者都為真,整個條件才為真,段:.if (X=5) & (ax!=bx)inc ax.endif請用轉移指令實現上述分支結構,并比較匯編程序生成的代碼序列。解:cmp X, 5je abcjmp doneabc: cmp ax, bxjne cdejmp donecde: inc axdone:.5. 2條件表達式中邏輯與“|表示兩者之一為真,整個條件就為真,.if (X=5) | (ax!=bx)inc ax.endif請用轉移指令實現上述分支結

2、構,并比較匯編程序生成的代碼序列。 解:cmp X, 5je abcjmp donecmp ax, bxjne abcjmp doneabc: inc axdone: .5.3、對于程序段:.while ax!=10mov bx,axinc bxinc bxinc ax.endw請用處理器指令實現上述循環(huán)結構,并比較匯編程序生成的代碼序列。5.4、對于程序段:.repeatmov bx,axinc bxinc bxinc axuntil ax=10請用處理器指令實現上述循環(huán)結構,并比較匯編程序生成的代碼序列。5.5、宏是如何定義、調用和展開的?解:宏定義采用一對偽指令實現,格式如下(其中方括號

3、表示可選):宏名 macro 形參表宏定義體endm宏調用時,利用宏名帶上實參即可,格式如下: 宏名實參表5.6、宏定義中的形式參數有什么特點,它是如何進行形參和實參結合的?解:宏的參數功能非常強大,即可以沒有參數,也可以帶有一個或多個參數;而且 參數的形式非常靈活,可以是常量、變量、存儲單元、指令或它們的一部分, 還可以是表達式等。宏展開時的形參與實參結合是用位置匹配的實參對形參進行取代。實參個數與 形參個數不同時,多余的實參沒有作用,缺少的實參則用空格代替。取代時, 不進行有效性等檢查。5.7、宏結構和子程序在應用中有什么不同,如何選擇采用何種結構?解:宏匯編的特點是在匯編階段進行語句展開

4、,無需返回,不減少目標程序代 碼,執(zhí)行速度沒有改變;通過形參、實參結合傳遞參數。宏匯編適合于程序段 較短或要求執(zhí)行速度快的場合。子程序在執(zhí)行階段需要由主程序執(zhí)行調用指令CALL進行調用,進而轉入子程序執(zhí)行,子程序執(zhí)行結束執(zhí)行返回指令 RET返回主程序。子程序如果被多次 使用,則會減少目標程序代碼;主程序與子程序之間主要采用寄存器、存儲單 元、堆棧等傳遞參數。子程序適合于程序段較長或為減少目標代碼的場合5.8 沒有。5.9、對于例題5.5b的宏定義shrot,對應如下宏指令的宏展開是什么?shrot word ptr bx,4,ror解: shrot word ptr bx,4,ror1 pus

5、h cx1 mov cl,41 ror word ptr bx,cl1 pop cx5.10、 定義一個宏logical,用它代表4條邏輯運算指令:and/or/xor/test,注意需 要利用3個形式參數,并給一個宏調用以及對應宏展開的例子。解: logical macro lcode,dopd,sopdlcode dopd,sopdendm例如,如果使用“ and ax,bx指令,可以利用該宏定義,寫出宏指令如下:logical and,ax,bx初看起來,這個問題似乎比較難解決。實際上,這4條邏輯指令都具有相同的指令操作數格式,所以可以歸納為如上宏定義。5.11沒有。5.12、編寫一個宏

6、指令move doprnd,soprnd它實現任意尋址方式的字量源操作 數送到目的操作數,包括存儲單元到存儲單元的傳送功能。解:move MACRO doprnd,soprndpush axmov ax,soprndmov doprnd,axpop axENDM5.13;movstr strN, dstr,sstrlea si, sstrlea di, dstrmov cx, strNcldrep movsbendm5.14;ABSDIF Pl ,P2, DISTANCE ABSDIF BX , SI, DI1 push ax1 mov ax,P11 sub ax,P21 cmp ax,01

7、jge ? 00001 neg ax1 ? 0000答:1 push ax1 mov ax,bx1 sub ax,si1 cmp ax,01 jge ? 00001 neg ax1 ? 00001 mov DISTANCE, ax1 mov di,ax1 pop ax1 pop ax5.15; wtemp =2 repeat 100 dw 0dw wtemp wtemp =wtemp+2endm5.18; DOS21H MACRO callnum,calladdress mov ah,callnumifnbmov dx,calladdressendif int 21hENDM5.22; 1.編

8、寫主程序,并進行匯編產生 OBJ模塊;2. 編寫獨立的子程序,也進行匯編產生 OBJ模塊;3. 分別編寫主程序與子程序時,需要處理好共用變量、過程、邏輯段屬性、參 數傳遞等問題;4. 利用連接程序將主程序模塊和子程序模塊連接起來,形成完整的可執(zhí)行程序 5.28;數據段 table dw 2277,2138,1808,1709,1522,1356,1208,1139;對應中音1 7和高音i的定時器記數值;代碼段;設置定時器2工作方式;等待按鍵;判斷是否為數字18mov al,0b6hout 43h,alaga in: mov ah,1int 21hcmp al, 1jb n extcmp al, 8 ja n extsub al,30h;18的ASCII碼轉換為二進制數sub al,1;再減1,將數字18變?yōu)?7,以便查表xor ah,ahshl ax,1;乘以 2mov bx,ax;記數值表是16位數據,無法采用xlat指令mov ax,tablebx;取出對應的記數值out 42h,almov al,ah;設置定時器2的記數值out 42h,alin al,61h;打開揚聲器聲音or al,03h;使D1D0= PB1PB4 11b,其他位不變out 61h,aljmp aga in;連續(xù)發(fā)聲,直到按下另一個鍵n ext: push axin al,61h;不是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論